美文网首页
LLDB为SpringBoard app添加断点

LLDB为SpringBoard app添加断点

作者: C_HPY | 来源:发表于2019-11-02 01:27 被阅读0次

小黄书中指导的是为[SpringBoard _menuButtonDown:]方法添加断点,
在IDA中解包SpringBoard后并没有发现书中所说的方法名,猜想是因为旧方法名已被废弃,我的越狱设备是iOS 12.2,书中是针对的iOS 8.0,尴尬!
非常想尝试为app动态添加断点,并验证ASLR后自己计算的偏移后地址是否正确,在IDA中找到这样一个方法:
[SBUIController handleHomeButtonDoublePressDown]
根据方法名可能是双击home键触发?
添加断点:

(lldb) br s -a 0x100a27724
Breakpoint 4: where = SpringBoard`___lldb_unnamed_symbol6598$$SpringBoard, address = 0x0000000100a27724

很明显添加成功了,双击home键,断点触发,断点触发之后可以输入continue继续往下执行。
值得强调的是添加断点时的地址一定要计算正确,不正确的时候是这样的:

(lldb) br s -a 0x200167724
Breakpoint 3: address = 0x0000000200167724

即没有很多提示信息,这个也可以从侧面反映地址可能计算错误。
计算偏移后地址的万能公式(模块儿、符合基地址、指令基地址均适用):
偏移后地址 = 偏移前地址 + ASLR偏移
IDA中分析的是静态的二进制文件,所以IDA中看到的地址一定是偏移前地址,另外,LLDB调试的二进制文件一定要是跟IDA分析的是同一个文件,牢记这几点,计算的地址一般不会错。

相关文章

  • LLDB为SpringBoard app添加断点

    小黄书中指导的是为[SpringBoard _menuButtonDown:]方法添加断点,在IDA中解包Spri...

  • Swift的高级技巧 - 动态注入和更改代码

    虽然Xcode为lldb命令提供了几个可视化抽象,例如通过单击代码行添加断点并通过单击播放按钮来运行,但lldb提...

  • LLDB调试命令

    一.常用的LLDB命令 1. 断点设置相关 1.1 给指定方法添加断点(自动新建一个断点组) breakpo...

  • 调试工具chisel的安装和使用

    Xcode中lldb的使用 安装facebook Chisel [1]添加符号断点viewDidLoad来在进入相...

  • iOS LLDB调试

    一、简介 LLDB全称是Low Lever Debug。 下断点快捷键command + \ 二、LLDB断点设置...

  • Xcode的控制台调试命令

    控制台调试命令前缀为lldb 在Debug模式下,如果你的程序在运行中崩溃(Crash)掉,或者你添加了断点(De...

  • iOS断点调试

    1.断点调试App a.设置常规断点 添加断点:在xcode中代码编辑器中右边单击你想调试的代码处就可以添加断点,...

  • LLDB(Low Lever Debug)

    LLDB(Low Lever Debug) 断点 设置断点$breakpoint set -n XXXset 是子...

  • 汇编之常识(六)MachOView&LLDB

    007--LLDB(Low Lever Debug) 断点 设置断点$breakpoint set -n XXXs...

  • LLDB使用

    007--LLDB(Low Lever Debug) 断点 设置断点$breakpoint set -n XXXs...

网友评论

      本文标题:LLDB为SpringBoard app添加断点

      本文链接:https://www.haomeiwen.com/subject/heccbctx.html