iOS 越狱开发那些事儿之五
来源:互联网 发布:php简历真实 编辑:程序博客网 时间:2024/04/29 12:45
LLDB + IDA 双剑合璧
参考书籍:《iOS应用逆向工程 分析与实战》(沙梓社,吴航)
参考书籍:《iOS应用逆向工程(第2版)》(沙梓社,吴航)
用debug server启动或附加进程
debug server最常用的两种场景,就是启动和附加进程,命令也都很简单,分别是:
A:debug server会启动executable,并开启port端口,等待LLDB接入:
debugserver -x backboard IP:port /path/to/executable
B:debug server会附加ProcessName,并开启port端口,等待LLDB接入:
debugserver IP:port -a “ProgressName”
启动LLDB接入进程
在终端输入:
lldb
(lldb)process connect connect://iOSIP:1234
LLDB+IDA开始调试
(1)image list
用于列举当前进程中所有模块(image),使用命令如下:
(lldb) image list -o -f
第一列是序列号,第二列是模块在虚拟内存中的起始地址因LSAR产生随机偏移(简称ASLR偏移),第三列是模块的全路径,括号里是偏移之后的起始地址.
偏移后模块基地址 = 偏移前模块基地址 + ASLR偏移
在IDA中,
偏移后符号基地址 = 偏移前符号基地址 + 符号所在模块的ASLR偏移
偏移后指令基地址 = 偏移前指令基地址 + 指令所在模块的ASLR偏移
要记住:偏移前基地址从IDA里看,ASLR偏移从LLDB里看,两者相加就是偏移后基地址.
(2)breakpoint
用于设置断点,一般用到的是:
b function
或
br s -a address
以及
br s -a ‘ASLRoffset+address’
前者在函数起始位置设置断点,后两者在地址处设置断点
例:
1 用IDA查看偏移前基地址第一条指令”push…”的偏移前基地址是0x17730
2 用LLDB查看ASLR
ASLR偏移是0xb5000
3设置并触发断点
(lldb) br s -a ‘0x17730 + 0xb5000’
程序停下来后用”c”命令继续运行
禁用某个断点的命令: (lldb) br dis 6
禁用所有断点命令: (lldb) br dis
启用所有断点命令: (lldb) br en
启用某个断点命令: (lldb) br en 6
删除所有断点命令: (lldb) br del
删除某个断点命令: (lldb) br del 6
另一个常用命令,是指定在某个断点得以触发的时候,执行预先设置的指令:
(lldb) br com add 1
执行这条命令后,LLDB会要求我们设置一系列指令,以”DONE”结束
po [$r0 class]
p (char *)$r1
c
DONE
(4)next与stepi
用于执行下一条机器指令,区别是前者不进入函数体,后者进入函数体,简写ni ,si
(5)register write
用于给指定寄存器赋值,(lldb) register write r0 1
- iOS 越狱开发那些事儿之五
- iOS 越狱开发那些事儿之二
- iOS 越狱开发那些事儿之三
- iOS 越狱开发那些事儿之四
- iOS 越狱开发那些事儿之六---Frida篇
- iOS越狱开发那些事儿之一
- IOS开发那些事儿
- 程序员那些事儿之初学IOS开发思路篇
- iOS开发之WWDC2016开发者需要知道的那些事儿
- 关于ios越狱开发的那些事
- 嵌入式开发的那些事儿(五)
- C语言的那些事儿之五
- iOS越狱开发之--TheOS
- iOS开发那些悲剧的事儿
- android开发那些事儿(五)-通用流行框架大全
- iOS越狱开发之MobileSubstrate介绍
- IOS越狱开发之开机启动APP
- iOS越狱开发之MobileSubstrate介绍
- 【Android】如何解决dex方法数超过64k(The number of method references in a .dex file cannot exceed 64K)及连带问题
- 内存
- bzoj1029: [JSOI2007]建筑抢修
- Xcode8模拟器警告与iOS10真机调试NSLog无效
- vue.js的devtools安装
- iOS 越狱开发那些事儿之五
- 走楼梯
- JAVA异常参考网站
- Leetcode 108. Convert Sorted Array to Binary Search Tree
- MyEclipse快捷键大全(绝对全)
- 扩展框架分析
- url
- 使用NFS挂载根文件系统到2440开发板
- PHP结合memcacheq消息队列解决并发问题