主页
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 发布
Fetching Variables on iPhone
Fetching Variables on iPhone
之前调试期间,遇到一个情况:
当:部分函数汇编代码非常长,时,触发了断点后,会出现:
卡死现象 == 等待期间,右上角状态会显示:
Fetching Variables on iPhone
此处等待一段时间后,获取完成后,正常显示触发断点处的代码:
results matching "
"
No results matching "
"