android 逆向需要学习的知识及目标

  1.  学习方法:
    1. 边用边学。
  2. 安卓逆向
    1. 脱壳至二次打包可用
      1. 正向加壳可以做的事情
        1. 代码抽取到jni里
        2. 代码抽取及还原。参考网址:https://m.wang1314.com/doc/webapp/topic/17363230.html
        3. 代码混淆,增加阅读难度,不影响运行。
        4. vmp, 将代码抽取到jni里使用汇编实现(个人理解,肯定有误)。
        5. 动态加载dex
        6. 反调试
      2. 逆向被加壳的app
        1. 使用fart修复apk
          1. 先使用脱壳机获得apk和代码指令的txt格式
          2. 使用fart.py进行修复dex文件
          3. 重新打包成apk,使用安卓monitor分析log
          4. 如果有反调试的话,使用01editor修改dex或者so文件,直到可以二次打包
          5. 二次打包,直到可以正常运行,如果失败的话,重复3的步骤
    2. 算法还原
      1. 这里默认需要还原的代码在jni里
        1. 使用ida进行静态分析,找到要分析的方法
        2. 动态调试
          1. 使用ida_server 动态调试
            1. 进入调试窗口
            2. 使用ida-trace,调用方法,打印被trace 的指令到文本中
            3. 按照trace到的指令进行还原算法,直到还原完一个版本
            4. 分别多次调用实际的算法和自己还原的,直到返回结果一致
            5. 多次调用步骤4,直到结果都一致。
          2. 使用unidbg模拟动态调试
            1. 使用unidbg模拟环境,调用到需要测试的jni方法并实现hook,
            2. 使用unidbg进行traceCode
            3. 按照trace到的code进行算法还原,直到还原完一个版本
            4. 分别多次调用实际的算法和自己还原的,直到返回结果一致
            5. 多次调用步骤4,直到结果都一致。
  3. 逆向工具
    1.  jnitrace  可以打印方法及方法里的参数等。
      1. 参考官网https://pypi.org/project/jnitrace/
      2. 自行找视频或者音视频学习。
      3. 等分享
    2. frida  轻量级hook工具,参考官网https://frida.re/docs/javascript-api/
      1. 网上大多时介绍安装的,比较简单。可以找个参考下安装
      2. 学习hook,可以参考下这个https://reao.io/archives/90/
    3. unidbg
      1. 官网地址:https://github.com/zhkl0228/unidbg
      2.  学习hook,可以参考下这个https://reao.io/archives/90/

    4. IDA

      1. 需要学习静态分析

      2. 需要学习动态调试

      3. 需要学习trace code

      4. 参考资料

      5. 链接:https://pan.baidu.com/s/1U6UgZzhDRDlhfxRf1KgzzA 
        提取码:rsuh

    5. ARM反汇编

      1. 我参考的时这个博客,https://blog.csdn.net/zlmm741/article/details/105160970/,我们重点关注的时反汇编。

      2. 如果再有时间可以读下《汇编语言(第3版) 王爽著》,

        1. 链接:https://pan.baidu.com/s/1oEMR6iC9vSV0keL-HgzYcw
          提取码:jp3w

    6. xpose 

      1. 学习xpose可以参考我的这个博客,https://blog.csdn.net/xubaoyong/article/details/122134698

    7. 安卓源码阅读网站:

      1. http://aospxref.com/

    8. 实战例子

      1. x手

      2. x音

      3. x红书  这些是期望达到的。

Guess you like

Origin blog.csdn.net/xubaoyong/article/details/122261207