【移动安全基础篇】——25、IDAOdex修复脚本编写

1. Odex 转 转 dex
参考 Android 源代码,完成逆转换
2. Demo  演示(阿里壳)
安装、开启调试端口、端口转发、反编译、挂接

运行脚本,识别出了 4 个 dex 数据,前两个为自行输入的,第三个是壳的入口点,最后一个是内存中解码获取的数据

将最后的一组数据 dump 出来,然后将 dump 出来的数据进行反编译

反编译因为阿里壳生成的一个类而出现异常,需要进行手动修复

这个错误是由于解析位于该地址的内存数据时出现异常,这部分数据不正确

发现了阿里填充的非法数据,将其改为 0

然后重新进行反编译,反编译成功,打开之前报错的类,里面的函数能够正常识别

将反编译后的 smali 代码替换原代码,删掉 android:name 后重新编译

编译出错,根据错误提示定位到出错代码,发现错误是由于优化后的代码不能够正常编译导致的。

需要对优化后的 Odex 进行修复
Odex 修复脚本

修复后的代码比较

对修复后的 smali 代码进行编译,编译成功,查看 smali 代码发现已经完成了修复

总会有不期而遇的温暖. 和生生不息的希望。
原文地址:https://www.cnblogs.com/devi1/p/13486421.html