IDA快手上手
- iOS逆向
- 常用:(Mac中)用IDA分析代码
- 下载和安装IDA
- 找到要分析的iOS的app的二进制文件
- 拖动二进制到IDA中
- 等待分析完毕
- 利用各种功能,研究代码逻辑
- 常用功能
- 字符串
- 搜索感兴趣的关键字
- 比如:越狱对应的单词:
jailbreak
、jail
、jb
等
- 函数
- 伪代码
- 当打开函数后,默认是汇编代码,按
F5
即可打开伪代码
- 近似于自己写的源码,人类可读的那种,就可以分析代码,搞懂函数的基本(甚至全部的)逻辑了
- 结构体:类的定义
- 结构体定义的来源
- 有些是自动分析出来的
- 有些需要自己额外新增类的定义
- 效果
- 如果类的结构体定义是正确的话,那么伪代码中,自动会解析出,类的函数和属性的调用,即可大大增加伪代码的可读性
- 之后的重点
- IDA的静态分析:
IDA
的F5伪代码
,查看伪代码的大概逻辑
- Xcode的动态调试:iOS逆向的
Xcode+
+MonkeyDev
+LLDB
的动态调试,通过hook等手段,确认调用了哪些函数,参数值如何等等
- 互相配合:把Xcode中的实时的汇编代码 和 IDA中伪代码,互相对应起来,便于理解代码逻辑
- 后续的优化代码逻辑:在逐渐搞懂更多代码逻辑后,继续给IDA中的
伪代码
去优化代码,主要是给参数、变量、函数等改名,以及更进一步的,新增或修改类的结构体定义,使得伪代码中自动解析出正确的类的函数和属性的调用等内容。
- 偶尔用:用IDA调试二进制