LLDB动态调试

1、连接iPhone手机

ssh root@123.123.12.123

2、找到启动的进程

ps aux

3、找到目标进程,根据进程名称进行调试

debugserver localhost:1234 -a jinchengmingcheng

或 根据进程号进行调试

debugserver localhost:1234 -a jinchenghao即PID例如6666

此时终端结果

debugserver-@(#)PROGRAM:LLDB  PROJECT:lldb-123.3.23
 for arm64.
Attaching to process jinchengmingcheng...
Listening to port 1234 for a connection from localhost...
Waiting for debugger instructions for process 0.

注意:如果此时不用usb调试,需把localhost改为*或对应手机IP地址,
命令如下:
debugserver *:1234 -a jinchengmingcheng

但这样经常报错
lldb报错:
error: failed to get reply to handshake packet
debugserver报错:
error: rejecting incoming connection from

4、用usb调试,因为wifi调试非常慢,且经常报错,所以这里做端口转发后,再连接

4.1、下载http://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.bz2

4.2、进入cd到下载usbmuxd-1.0.8.tar.bz2的目录中,并执行如下命令

tar xjfv usbmuxd-1.0.8.tar.bz2
cd usbmuxd-1.0.8/python-client
python tcprelay.py -t 1234:1234

执行结果

Forwarding local port 1234 to remote port 1234
Incoming connection to 1234
Waiting for devices...
Connecting to device <MuxDevice: ID 456 ProdID 0x7890 Serial 'jfieaojgiajgieiajgiajgijafiojeihguabghfhuehfuaeufu' Location 0x12340000>
Connection established, relaying data
Connection closed

5、新建终端

lldb

6、连接

(lldb) process connect connect://localhost:1234

注意:如果此时不做端口转发,即不走第4步,需要把localhost改成真实的手机IP地址,
可以用如下命令
process connect connect://123.123.12.123:1234
但这样经常遇到连接失败,报错如下
error:failed to get reply to handshake packet

等一会就会出现

Process 6985 stopped
* thread #1, stop reason = signal SIGSTOP
    frame #0: 0x00000001b29000f4 libsystem_kernel.dylib`mach_msg_trap + 8
libsystem_kernel.dylib`mach_msg_trap:
->  0x1b29000f4 <+8>: ret    

libsystem_kernel.dylib`mach_msg_overwrite_trap:
    0x1b29000f8 <+0>: mov    x16, #-0x20
    0x1b29000fc <+4>: svc    #0x80
    0x1b2900100 <+8>: ret    
Target 0: (picsmagicartae) stopped.

此时输入

c

能让程序继续运行响应外部事件

内存真实地址 = Hopper或IDA中获取的方法对应的地址 + 模块加载的基地址

7、对内存真实地址设置调试断点

b 0x000000000008932c

最后注意
实际操作中发现,上述方法有时仍然报错
error:failed to get reply to handshake packet
此时 先用真机和XCode自己编译一个程序,然后先用上述方法调试自己编译的程序,成功后,再去编译从App Store上下载的其他程序,成功率有提高。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值