今天讲的以前大部分都记录过了。简单写一下以前没记录的。
保护和对抗
干扰反编译
利用反编译工具的bug或漏洞
• AndroidManifest.xml
• dex
• So
转换成伪代码时的bug
• Smali -> Java
• Arm指令 -> C++
链接资源文件时的bug
• 特殊的资源文件
• 超长的资源id
对抗
反编译时不链接资源文件 -no-resource
使用新版本的反编译工具
硬怼汇编
打造自己的逆向工具链
代码混淆
变量名,类名,方法名混淆
超长名字 相似字符
特定含义的代码
特殊编码 难以阅读的字符
字符串加密
控制流混淆
代码混淆工具 :
Java代码:
ProGuard
DexGuard
C++代码
:OLLVM