越狱设备LLDB连接

LLDB连接的教程网上有很多,本文主要记录LLDB连接过程中的一些问题

前置条件

1、越狱设备一台(iPhone6s iOS12.1.2)
2、脱壳App若干(Wechat、Mirror、VlogNow)
3、usbmuxd-1.0.8

实战

1、SSH的USB连接--usbmuxd
2、配置debugserver
3、debugserver的开启与LLDB的连接
其中第三步这边遇到了一些问题,这边详细操作一波。
debugserver的开启与LLDB的连接的大致思路
1、手机端终端指定app及端口(1234)监听连接(Mirror第三方app包名)

iphone6s-test:~ root# debugserver 127.0.0.1:1234 -a Mirror
debugserver-@(#)PROGRAM:LLDB  PROJECT:lldb-900.3.86
 for arm64.
Attaching to process Mirror...
Listening to port 1234 for a connection from localhost...

2、打开一个新的终端,使用usbmuxd的tcprelay.py映射手机端口和mac端口(python-client为usbmuxd子目录)

XXX-Mac:python-client ABC$ ./tcprelay.py -t 1234:1234
Forwarding local port 1234 to remote port 1234
Incoming connection to 1234
Waiting for devices...

3、再打开一个新的终端,进入lldb模式执行process connect connect://127.0.0.1:1234

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

- Hook 1 (expr -- @import UIKit)

- Hook 2 (target stop-hook disable)
Process 13686 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
    frame #0: 0x000000018d77bea4 libsystem_kernel.dylib`mach_msg_trap + 8
libsystem_kernel.dylib`mach_msg_trap:
->  0x18d77bea4 <+8>: ret    

libsystem_kernel.dylib`mach_msg_overwrite_trap:
    0x18d77bea8 <+0>: mov    x16, #-0x20
    0x18d77beac <+4>: svc    #0x80
    0x18d77beb0 <+8>: ret    
Target 0: (Mirror) stopped.

如果你看到上述log,那么恭喜你,连接成功。执行image list -o -f试试。

采坑回放

1、查看第三方app包名,这个目前没有找到什么好的方式。用了蠢方法,在越狱设备上打开目标app。执行ps -e 查看当前进程信息。
13543 ?? 0:59.53 /var/containers/Bundle/Application/1136DE04-DFE8-432A-8DDE-62A8155DDEE6/Mirror.app/Mirror。当然了,你也可以直接将ipa解压,然后看Payload里面可执行文件的名称
2、Segmentation fault: 11 问题

iphone6s-test:~ root# debugserver *:1234 -a "VlogNow"
debugserver-@(#)PROGRAM:LLDB  PROJECT:lldb-900.3.86
 for arm64.
Attaching to process VlogNow...
Segmentation fault: 11

谷歌了一下,说是对应app设置了ptrace反调试。

你可能感兴趣的:(越狱设备LLDB连接)