LLDB动态调试

1、连接iPhone手机

ssh root@123.123.12.123

2、找到启动的进程

ps aux

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

debugserver localhost:1234 -a jinchengmingcheng

或 根据进程号进行调试

debugserver localhost:1234 -a jinchenghao例如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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 说起动态调试,大家普遍第一反应是通过Xcode 安装应用到真机,然后通过添加断点,添加打印等方式来动态的调试...
    mark666阅读 1,596评论 0 0
  • 1. 前言 若干年前,大家看到iPhone互相问好的第一件事是“你越狱了吗”。据不完全统计,早期有80%左右的iP...
    Wind_Z阅读 13,589评论 3 40
  • Reveal 简介 Xcode6开始苹果已经将Reveal查看自己开发程序界面信息的功能集成到了Xcode中, 程...
    stockholder阅读 1,519评论 0 0
  • 1.需要一台越狱的iPhone手机 最好是完美越狱的,越狱比较简单,直接下载爱思助手或者是PP助手都可以一键越狱,...
    九龙阅读 1,325评论 0 0
  • 1. 前言 若干年前,大家看到iPhone互相问好的第一件事是“你越狱了吗”。据不完全统计,早期有80%左右的iP...
    nongjiazhen阅读 4,076评论 0 5

友情链接更多精彩内容