您的位置:首页 > 移动开发 > Android开发

Android逆向分析基础-反破解技术

2016-03-18 13:48 886 查看
对抗反编译

通过反编译工具不支持的操作码等, 对抗反编译, 意义不大

对抗静态分析

代码混淆

NDK保护

适合关键代码, 但总感觉舍近求远

外壳保护

加壳原理及技术之一

对抗动态调试

检测调试器

android.os.Debug.isDebuggererConnected()


检测模拟器

ro.product.model 在模拟器中为sdk

ro.build.tags在模拟器中为test-keys

ro.kernel.qemu在模拟器中为1, 在正常手机里没有

防止重编译

检查签名

public int getSignature() {
PackageManager pm = getPackageManager();
PackageInfo pi;
int sig;
try {
pi = pm.getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
Signature[] s = pi.signatures;
sig = s[0].hashCode();
Toast.show(s[0].toString());
} catch (Exception e1) {
sig = 0;
e1.printStackTrace();
}
return sig;
}


2. 校验保护
检查classes.dex的MD5或CRC值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: