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

来源:互联网 发布:ubuntu 16.04 中文字体 编辑:程序博客网 时间:2024/04/20 03:05
  1. 对抗反编译
    通过反编译工具不支持的操作码等, 对抗反编译, 意义不大
  2. 对抗静态分析
    1. 代码混淆
    2. NDK保护
      适合关键代码, 但总感觉舍近求远
    3. 外壳保护
      加壳原理及技术之一
  3. 对抗动态调试

    1. 检测调试器

      android.os.Debug.isDebuggererConnected()
    2. 检测模拟器

      1. ro.product.model 在模拟器中为sdk
      2. ro.build.tags在模拟器中为test-keys
      3. ro.kernel.qemu在模拟器中为1, 在正常手机里没有
  4. 防止重编译
    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值
0 0
原创粉丝点击