运行时动态修复dex

本文介绍了Android运行时动态修复DEX的方法,通过ForceApkObj、FixDex和DynamicDex三个工程实现。首先,ForceApkObj生成classes.dex,FixDex将其分离为classes_fix.dex和data.so。接着,替换原始APK中的classes.dex并重新签名。最后,DynamicDex动态加载修复后的APK。源代码已上传至GitHub,适用于Android 2.3模拟器。
摘要由CSDN通过智能技术生成

    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的代码如下:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值