无法使用命令行"进程连接连接://iOSIP:端口"进行远程调试



我正在阅读iOS逆向工程书中的LLDB和调试服务器主题,并遇到以下详细信息错误。

所有配置都很好。 但是当我使用 Xcode5 或 Xcode6 的 lldb 时,该命令process connect connect:iOSIP:Port显示如下错误,

(LLDB) 进程连接 connect://10.18.136.168:1234 断言失败: (pointer_byte_size== m_host_arch。GetAddressByteSize()), 函数 获取主机信息,文件/SourceCache/lldb/lldb-300.2.53/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp, 第 1266 行。中止陷阱:6

当我使用 Xcode8 的 lldb 时,该命令process connect connect:iOSIP:Port显示如下错误,

(LLDB) 进程连接 connect://10.18.136.168:1234 进程 8147 停止 * 线程 #1,停止原因 = 信号 SIGSTOP 帧 #0:0x00000001987ace0c错误:内存读取失败0x1987ace00

环境:

  1. macOS Sierra
  2. Xcode 8.3.2
  3. Xcode 6.0.1
  4. Xcode 5.0.2
  5. iOS 8.2越狱

我已经使用命令行尝试了三个版本的 Xcode 的 lldbprocess connect connect://10.18.136.168:1234,都失败了。

过了一会儿,我找到了一个解决方案,我想在这里分享。

解决方案链接: http://bbs.iosre.com/t/failed-to-remote-debugging-on-using-command-line-process-connect-connect-iosip-port/8259/4

问题在于设备的体系结构。当我使用armv7s架构精简debugserver时,它无法附加process.

但是,有一个网页在功能GetHostInfo链接到 https://reviews.llvm.org/file/data/j3cbbw4262e57hrbundw/PHID-FILE-vojdaczcpqpc5h2sl6hl/filepointer_byte_size == m_host_arch.GetAddressByteSize()显示。

所以我通过使用arm64输出一个新的debugserver来精简它,命令如下所示

LIPO -薄型 ARM64 调试服务器 - 输出调试服务器 codesign -s - --entitlements ent.plist -f debugserver

最后,它适用于我的iPhone 5,调试任何应用程序都可以顺利。

最新更新