shlu's note

LLDB | 在macOS 使用lldb借助USB接口传输ssh通信协议远程调试iphone app

测试环境

环境配置

debugserver

ref: https://book.crifan.org/books/ios_re_debug_debugserver_lldb/website/debugserver/

安装原版debugserver:在设备连接过一次Xcode,并在Window->Devices中添加此设备后,debugserver才会被Xcode安装到iOS/Developer/usr/bin/下(该路径没在系统PATH下,不能直接调用debugserver,需要全路径)

修补debugserver(不修补的没法正常调试其它app):

# ssh 端口映射
iproxy 2222 22
# 复制到mac
scp -P 2222 root@127.0.0.1:/Developer/usr/bin/debugserver ./
# 创建entitlements
nano debugserver.entitlements

加入如下内容

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.springboard.debugapplications</key>
    <true/>
    <key>com.apple.backboardd.launchapplications</key>
    <true/>
    <key>com.apple.backboardd.debugapplications</key>
    <true/>
    <key>com.apple.frontboard.launchapplications</key>
    <true/>
    <key>com.apple.frontboard.debugapplications</key>
    <true/>
    <key>com.apple.private.logging.diagnostic</key>
    <true/>
    <key>com.apple.private.memorystatus</key>
    <true/>
    <key>com.apple.private.cs.debugger</key>
    <true/>
    <key>get-task-allow</key>
    <true/>
    <key>task_for_pid-allow</key>
    <true/>
    <key>run-unsigned-code</key>
    <true/>
</dict>
</plist>

image-20241212142529687

# 重新签名
codesign -f -s - --entitlements debugserver.entitlements debugserver
# 复制回iphone的/usr/bin/目录下
scp -P 2222 ./debugserver root@127.0.0.1:/usr/bin/

步骤1

调试

script:导入python脚本4

voltron:调试辅助工具(for macOS)

问题

参考

声明:转载请注明出处,原文地址:shlu's note