iOS11 JB debugserver 无法从远程 gdb 进程获得连接
iOS11 JB debugserver Failed to get connection from a remote gdb process
所以有iOS11没有substrate/cydia的越狱。
现在我想 运行 在 jb 设备之后调试服务器。
我认为我已经签署了足够的权利:
-bash-3.2# jtool --ent debugserver
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>platform-application</key>
<true/>
<key>com.apple.backboardd.debugapplications</key>
<true/>
<key>com.apple.backboardd.launchapplications</key>
<true/>
<key>com.apple.diagnosticd.diagnostic</key>
<true/>
<key>com.apple.frontboard.debugapplications</key>
<true/>
<key>com.apple.frontboard.launchapplications</key>
<true/>
<key>com.apple.springboard.debugapplications</key>
<true/>
<key>com.apple.springboard.launchapplications</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
<key>run-unsigned-code</key>
<true/>
<key>get-task-allow</key>
<true/>
<key>task_for_pid-allow</key>
<true/>
<key>com.apple.system-task-ports</key>
<true/>
</dict>
</plist>
但是当尝试 debugserver *:1234 -a UnityExample
时,它总是显示
Attaching to process UnityExample...
Listening to port 1234 for a connection from *...
Failed to get connection from a remote gdb process.
如果我把ip改成iPhone IP,比如debugserver 192.168.1.157:1234 -a UnityExample
,其实可以等:
Attaching to process UnityExample...
Listening to port 1234 for a connection from 192.168.1.157...
但显然,它只允许来自设备的连接,因此使用 mac 的 lldb 将不起作用。
我检查了内核日志,它打印:
Dec 27 10:21:54 iPhone1111 debugserver[564] <Notice>: 1 +0.000000 sec [0234/0303]: ::listen or ::bind failed err = 0x00000000
我错过了什么?谢谢。
我也是这样。
我通过以下方式解决这个问题:
- 正在使用 USB
将设备连接到 mac
- 例如使用 usbmuxd 将 mac 上的本地端口 1234 转发到远程
设备上 1234
- 然后 运行 调试服务器 localhost:1234 -a pid
- 在 lldb 中:process connect connect://localhost:1234
这应该有效。不幸的是,我只能调试自己的应用程序。例如,调试 Chrome.app 启动良好并且只要我处于初始暂停状态就可以正常工作,但是在我恢复它的那一刻失败并显示 EXC_BAD_ACCESS
在您的越狱设备上,ssh 进入设备并:
/Developer/usr/bin/debugserver 127.0.0.1:6666 -a 1393
我在使用 *:6666
时遇到了与您报告的相同的错误
你试过这篇文章了吗:
https://kov4l3nko.github.io/blog/2016-04-27-debugging-ios-binaries-with-lldb/
它解释了通过 USB 连接到越狱的 iOS 设备、将文件发送到设备、ssh 到设备以及设置调试器 (lldb)。
删除调试服务器文件
com.apple.security.network.server
com.apple.security.network.client
安全带配置文件
这三个设置,然后重新签DebugServer。
所以有iOS11没有substrate/cydia的越狱。 现在我想 运行 在 jb 设备之后调试服务器。
我认为我已经签署了足够的权利:
-bash-3.2# jtool --ent debugserver
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>platform-application</key>
<true/>
<key>com.apple.backboardd.debugapplications</key>
<true/>
<key>com.apple.backboardd.launchapplications</key>
<true/>
<key>com.apple.diagnosticd.diagnostic</key>
<true/>
<key>com.apple.frontboard.debugapplications</key>
<true/>
<key>com.apple.frontboard.launchapplications</key>
<true/>
<key>com.apple.springboard.debugapplications</key>
<true/>
<key>com.apple.springboard.launchapplications</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
<key>run-unsigned-code</key>
<true/>
<key>get-task-allow</key>
<true/>
<key>task_for_pid-allow</key>
<true/>
<key>com.apple.system-task-ports</key>
<true/>
</dict>
</plist>
但是当尝试 debugserver *:1234 -a UnityExample
时,它总是显示
Attaching to process UnityExample...
Listening to port 1234 for a connection from *...
Failed to get connection from a remote gdb process.
如果我把ip改成iPhone IP,比如debugserver 192.168.1.157:1234 -a UnityExample
,其实可以等:
Attaching to process UnityExample...
Listening to port 1234 for a connection from 192.168.1.157...
但显然,它只允许来自设备的连接,因此使用 mac 的 lldb 将不起作用。
我检查了内核日志,它打印:
Dec 27 10:21:54 iPhone1111 debugserver[564] <Notice>: 1 +0.000000 sec [0234/0303]: ::listen or ::bind failed err = 0x00000000
我错过了什么?谢谢。
我也是这样。
我通过以下方式解决这个问题:
- 正在使用 USB 将设备连接到 mac
- 例如使用 usbmuxd 将 mac 上的本地端口 1234 转发到远程 设备上 1234
- 然后 运行 调试服务器 localhost:1234 -a pid
- 在 lldb 中:process connect connect://localhost:1234
这应该有效。不幸的是,我只能调试自己的应用程序。例如,调试 Chrome.app 启动良好并且只要我处于初始暂停状态就可以正常工作,但是在我恢复它的那一刻失败并显示 EXC_BAD_ACCESS
在您的越狱设备上,ssh 进入设备并:
/Developer/usr/bin/debugserver 127.0.0.1:6666 -a 1393
我在使用 *:6666
你试过这篇文章了吗:
https://kov4l3nko.github.io/blog/2016-04-27-debugging-ios-binaries-with-lldb/
它解释了通过 USB 连接到越狱的 iOS 设备、将文件发送到设备、ssh 到设备以及设置调试器 (lldb)。
删除调试服务器文件 com.apple.security.network.server com.apple.security.network.client 安全带配置文件 这三个设置,然后重新签DebugServer。