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


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

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

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

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

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

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

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

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

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

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

    修复后的代码比较

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

    总会有不期而遇的温暖. 和生生不息的希望。
  • 相关阅读:
    数据库入门
    小米笔试题
    苏宁笔试:UML类图中的关系
    动态规划
    快手笔试题
    二叉树与双向链表的转换
    招银网络科技笔试题
    map的运用
    string类型的常用方法
    string类型和int类型之间的转换
  • 原文地址:https://www.cnblogs.com/devi1/p/13486421.html
Copyright © 2020-2023  润新知