使用Python脚本强化LLDB调试器

1.     https://github.com/superkhung/lldbinit

#lldbinit Init script for lldb

##Install:

git clone https://github.com/superkhung/lldbinit ~/.lldb
echo "command script import ~/.lldb/lldbinit.py" >> ~/.lldbinit
echo "Done!"

##Features

##Screenshot 


LLDB是Xcode自带的调试器,作为一个iOS应用开发程序员,平时我在开发应用时会使用LLDB来调试代码。在逆向应用时,也会用到LLDB来跟踪应用的执行过程。

LLDB还内置了一个Python解析器,使用Python脚本可以方便LLDB的调试,比如自动化执行一些命令,或者自动化处理数据之类的,具体说明可以参考官方的文档:LLDB Python Reference

以下就以一个具体的例子来演示一个Python脚本的编写过程:

一、获取方法的偏移地址

运行系统自带的计算器Calculator.app

可以看到计算器的菜单里有一个“关于计算器”的选项:

如果我们要在点击“关于计算器”事件断下来的话,就要给这个方法设置一个断点。

先找到计算器的可执行文件的路径,路径为:/Applications/Calculator.app/Contents/MacOS/Calculator
打开Hopper Disassembler反汇编调试器,将可执行文件拖进去,等待Hopper分析完成。

在左侧的搜索框输入”showabout”,会搜索到一个结果:

点击这个结果,会跳转到该方法的汇编代码处:

 
 
 
  1. -[CalculatorController showAbout:]:
  2. 00000001000093dd push rbp ; Objective C Implementation defined at 0x1000188d0 (instance)
  3. 00000001000093de mov rbp, rsp
  4. 00000001000093e1 mov rdi, qword [ds:objc_cls_ref_NSDictionary] ; objc_cls_ref_NSDictionary, argument "instance" for method imp___got__objc_msgSend
  5. 00000001000093e8 mov rsi, qword [ds:0x10001b6f0] ; @selector(dictionaryWithObject:forKey:), argument "selector" for method imp___got__objc_msgSend
  6. 00000001000093ef lea rdx, qword [ds:cfstring_2000] ; @"2000"
  7. 00000001000093f6 lea rcx, qword [ds:cfstring_CopyrightStartYear] ; @"CopyrightStartYear"
  8. 00000001000093fd call qword [ds:imp___got__objc_msgSend]
  9. 0000000100009403 mov rdi, rax
  10. 0000000100009406 pop rbp
  11. 0000000100009407 jmp imp___stubs__NSShowSystemInfoPanel
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以通过以下步骤在VSCode中下载LLDB调试器: 1. 首先,你需要下载并安装VSCode。你可以在官网上下载Visual Studio Code。 2. 安装完成后,打开VSCode并进入扩展商店。你可以通过在VSCode左侧的侧边栏中点击扩展图标来找到扩展商店。 3. 在扩展商店的搜索栏中输入"CodeLLDB"并点击搜索。CodeLLDB是一个支持LLDB调试器的扩展。 4. 在搜索结果中找到"CodeLLDB"扩展并点击安装。如果因为网络问题无法安装,你可以尝试手动下载该扩展。 5. 安装完成后,你就可以在VSCode中使用LLDB调试器进行C语言调试了。 请注意,LLDB调试器可以同时支持Windows、Linux和MacOS平台的C语言调试。在安装和配置LLDB调试器时,你需要根据你的操作系统和编译器版本进行相应的设置。 参考文献: https://zhuanlan.zhihu.com/p/486021900 https://code.visualstudio.com/ https://zhuanlan.zhihu.com/p/486021900<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vscode使用lldb调试C++程序](https://blog.csdn.net/itas109/article/details/122677006)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [vscode开调试](https://blog.csdn.net/qq_21237549/article/details/127273684)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值