主页
1.1.
前言
1.2.
iOS逆向心得概述
1.2.1.
总体对策
1.3.
iPhone
1.3.1.
初始化开发环境
1.3.2.
常用目录
1.4.
app
1.4.1.
plist文件
1.4.2.
相关文件目录和数据
1.4.2.1.
Bundle
1.4.2.2.
Data
1.4.2.3.
Shared AppGroup
1.4.3.
二进制文件路径
1.4.4.
app卸载
1.4.4.1.
残留数据
1.4.5.
Keychain数据库
1.4.5.1.
字段含义
1.5.
ObjC
1.5.1.
Class
1.5.1.1.
成员属性
1.5.1.1.1.
公开成员属性
1.5.1.1.2.
私有成员属性
1.5.1.2.
扩展属性
1.5.1.3.
类、实例、状态
1.5.2.
属性值
1.5.2.1.
获取变量值
1.5.2.1.1.
dict字典
1.5.2.2.
计算类的属性值
1.5.2.3.
Xcode和Frida属性值不一致
1.6.
动态调试
1.6.1.
调试代码逻辑
1.6.1.1.
寻找函数触发时机
1.6.1.1.1.
alloc和init和new
1.6.1.1.2.
重装和spawn方式
1.6.1.2.
寻找变量改动时机
1.6.1.2.1.
wivar
1.6.1.3.
改变运行逻辑
1.6.1.3.1.
修改寄存器值
1.6.1.3.2.
hook函数返回值
1.6.2.
Xcode调试
1.6.2.1.
Attach调试
1.6.2.2.
函数调用堆栈
1.6.2.2.1.
函数名不一致
1.6.2.3.
查看当前所有变量值
1.6.2.4.
Fetching Variables on iPhone
1.6.2.5.
汇编代码窗口保持打开状态
1.6.2.6.
2个调试目标:arm64和arm64e
1.6.2.7.
xm文件无法定位到源代码位置
1.6.2.8.
实时调试hook代码
1.6.3.
LLDB
1.6.3.1.
正则搜索
1.6.4.
iOSOpenDev
1.7.
Mach-O
1.7.1.
image base基地址
1.8.
log日志
1.8.1.
超过1K的日志打印
1.9.
头文件
1.9.1.
试试新旧不同版本
1.10.
抓包
1.10.1.
request和response
1.11.
tweak插件
1.12.
crash崩溃
1.12.1.
崩溃日志解析工具
1.12.2.
从崩溃信息找崩溃所在位置
1.13.
通用
1.13.1.
从汇编反推代码逻辑
1.13.2.
必要时hook多个目标
1.13.3.
特殊的参数传递
1.13.4.
hook代码没生效
1.13.5.
hook导致很慢和卡死
1.14.
附录
1.14.1.
参考资料
本书使用 HonKit 发布
动态调试
动态调试
results matching "
"
No results matching "
"