0x00
本文的源代码已经上传至github,地址为https://github.com/jltxgcy/DynamicFixDex。在Android2.3模拟器上可以运行。
ForceApkObj:用于动态加载的apk。类似于Android中的Apk的加固(加壳)原理解析和实现一文中的ForceApkObj工程。
FixDex:用于分离ForceApkObj里面的classes.dex,把他分离为classes_fix.dex和data.so,具体情况我们后来介绍。
DynamicDex:用于动态加载ForceApkObj工程生成的ForceApkObj.apk,也就是脱壳程序,类似于Android中的Apk的加固(加壳)原理解析和实现一文中的ReforceApk工程。
0x01
使用步骤:
1、将ForceApkObj工程生成的classes.dex拷贝到/sdcard/payload/目录下。
2、Run FixDex工程,点击Button按钮,此时在/sdcard/payload/目录下生成了classes_fix.dex和data.so。
3、把classes_fix.dex更名为classes.dex,然后替换ForceApkObj.apk里面的classes.dex,然后重新签名,生成新签名的ForceApkObj.apk。
4、把ForceApkObj.apk和data.so放入/sdcard/payload/目录中,运行DynamicDex工程。
0x02
ForceApkObj工程很简单,主MainActivity界面点击屏幕会打开SubActivity,SubActivity的代码如下: