应用安全 --- 一个so或dex文件如何被加固的,漫谈
一般来讲一个原始的dex文件会被加密保存在assest目录下,并将解密的方法保留在现在的dex文件中。在运行时解密。解密后的java代码可能包含root检测,frida检测,模拟器检测,签名验证等等。
一个so文件内部代码会被加密压缩保存在内部,在运行时解密。解密后的so文件可能包含指令集虚拟化vmp,ollvm的控制流混淆,字符串混淆等常见的加密方法。
对抗的方法有:
隐藏手机的root,frida工具,模拟器特征擦除,等
dex和so在内存中dump出来,就是解密后的。
vmp的方法只能dump所有执行的汇编代码进行指令还原。
ollvm的控制流混淆,字符串混淆等目前没有办法