关于MacOS 与lldb 相爱相杀的故事

目的

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

测试环境

  • iphone6 12.4(已越狱)
  • macOS 10.15.5 Catalina
  • lldb 1103.0.22.4

步骤1

  • iproxy 2222 22:端口转发
  • 打开一个新命令窗口
  • ssh -p 2222 root@127.0.0.1:执行后进入到iphone命令窗口
  • debugserver -x backboard *:1234 /path/to/app/executable:先启动进程然后注入,注入后会挂起进程
  • or ./debugserver *:1234 -a "YourAPPName":注入已运行进程
  • 打开一个新命令窗口
  • iproxy 1234 1234
  • 打开一个新命令窗口
  • lldb(执行后进入lldb命令窗口)
  • platform select remote-ios
  • process connect connect://localhost:1234q1
  • 接下来就可以输入调试命令操作了

调试

  • c:继续运行
  • r:重启
  • si:指令级步入
  • ni:指令级步过
  • return:退出子函数(测试好像没有这个命令)
  • breakpoint set -a 0x012345:在函数地址下断
  • dis -a 0x12345:从某地址开始反汇编
  • eg dis -a $pc:从当前欲要执行地址开始反汇编
  • image list:获取执行文件基址
  • or image list -f -o WhatsApp:增加过滤选项

script:导入python脚本4

  • command srcipt import pyFilePath

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

  • git clone https://github.com/snare/voltron.git
  • cd voltron
  • ./install.sh:这里执行之后会返回一个entry path,稍后会用到
  • 打开一个新命令窗口
  • lldb
  • command srcipt import {entry path}:entry path 就是上面的,执行之后会显示voltron loaded
  • voltron init
  • 打开一个新窗口
  • voltron view register:显示寄存器窗口q2
  • voltron view stack:显示堆栈窗口q2
  • voltron view disasm显示汇编窗口q2
  • voltron view backtrace:显示调用栈q2
  • 切换到lldb窗口
  • platform select remote-ios
  • process connect connect://localhost:1234q1
  • 这时再切换到voltron窗口就可以看到效果了

问题

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jitcor

觉得有用,不赏点?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值