论坛首页 安全工具分享区 阅读主题

[原创] ιldb 脚本 —— 你才叫 lldb,我叫 "约塔 ldb"

117 浏览 14 回复
#1 楼主 2026-06-01 21:09:17
ιldb 是一个基于 LLDB 的调试脚本工具,提供了多种便捷的调试命令和命令管理功能。它通过模块化设计,将常用的调试操作封装为简单易用的命令,并支持命令的保存、显示、删除和执行。如果这些命令的命名方式与您使用的习惯不符合,也可以通过修改 cmd_config.json 来实现个性化定制。ιldb 内置命令保存与注释功能,可告别「调试命令 / 地址复制到文本、再从文本粘贴调用」的繁琐流程,实现命令的快速执行与管理。后续笔者有时间了也会继续完善和优化,并且已经发布在 github 以及 gitee 上,欢迎大家共同讨论和学习。如果你等不及想添加自己的命令,也可以研究一下源码,主要就是修改 ιldb/src/core/ 目录下的 lldb_script_handler.py ,这里面是所有 lldb 脚本的具体实现。utils.py 是一些通用的工具类函数,比如确保地址以 0x 开头等,data_handler.py 主要用于维护一些全局变量,json 就是从这里读取并缓存的。ιldb 在 gitee 的项目地址:93cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8W2k6g2)9J5k6h3y4G2L8g2)9J5c8Y4W2G2N6i4u0Q4x3X3c8Y4K9i4c8Q4x3V1k6&6N6h3g2@1j5g2)9J5k6r3I4V1j5W2)9J5c8R3`.`.ιldb 在 github 的项目地址:84aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6&6L8%4g2J5i4K6u0V1k6$3W2@1i4K6u0r3P5i4g2W2N6r3q4Q4x3X3c8D9k6r3t1`.将 ιldb.py 文件放置在您的 LLDB 插件目录中在 ~/.lldbinit/ 文件中添加以下命令加载脚本:加载成功后,您将看到所有已注册的命令列表 保存 LLDB 历史命令到 cmd_record.json 文件中,支持多种格式:显示已保存的所有命令及其描述:输出示例:根据序号删除已保存的命令:删除后会自动显示更新后的命令列表。根据序号执行已保存的命令:执行时会显示命令内容及其描述。指定当前调试的模块,后续的 mark 命令将基于该模块计算偏移地址:基于指定模块的偏移地址设置断点,支持多地址:IDA 中 encryptWithChaCha20Poly1305 函数的偏移地址是 A8F4,那么可以使用 mark 快速打上断点基于动态地址设置断点,支持多地址:基于 using 指定的模块 来计算偏移的动态内存地址:基于当前模块计算静态偏移地址:对指定地址进行内存修改,默认会执行端序转换:注意:地址和机器码不一定要以 0x 开头,默认是十六进制。读取内存内容,支持多种格式:将指定地址的内存填充为 NOP 指令:获取地址中的指针地址:尝试将寄存器中的内容解析为 Swift String 字符串,只需要指定一个寄存器,另外一个寄存器内部会自动取读取
ιldb 使用两个主要的配置文件:存储命令配置信息,包括:cmd_script: 命令脚本映射cmd_alias: 命令别名映射cus_cmd: 自定义命令列表cmd_notes: 命令注释列表存储用户保存的命令记录,每个记录包含:为了提高使用效率,ιldb 提供了以下命令映射:ιldb 支持通过修改 cmd_config.json 文件添加自定义命令和别名,实现个性化定制。【 2025年12月20号 】1、修复 ptr 命令 和 memread -ptr 命令的相关问题;2、新增 ss 和 sd 命令,可以用于解析 Swift String 对象和 Data 对象。# ***/ 替换为你自己的路径

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-289492.htm
#2 2026-06-01 21:09:17
感谢分享
#3 2026-06-01 21:09:17
感谢分享
#4 2026-06-01 21:09:17
看看
#5 2026-06-01 21:09:17
支持
#6 2026-06-01 21:09:17
不明觉厉
#7 2026-06-01 21:09:17
感谢分享
#8 2026-06-01 21:09:17
要是有trace 指令 就更好了
#9 2026-06-01 21:09:17
guijian


要是有trace 指令 就更好了

还真有,不过我需要优化一下
#10 2026-06-01 21:09:17
是参考的  《 脚本工具:基于lldb的trace脚本 》 这篇文章,你要是感兴趣,可以提前看看

最后于 2025-12-22 15:13
被αβγδεξπ编辑

,原因:
#11 2026-06-01 21:09:17
哈哈,我也这么用的。除了扩展命令,我还增加了一个加载的脚本的, 有点像是ollydbg的脚本。
#12 2026-06-01 21:09:17
毕索


哈哈,我也这么用的。除了扩展命令,我还增加了一个加载的脚本的, 有点像是ollydbg的脚本。

什么叫“加载的脚本的”,是一个加载其他脚本的功能吗
#13 2026-06-01 21:09:17
大佬,能解开钱包被恶意多签吗
#14 2026-06-01 21:09:17
感谢分享
#15 2026-06-01 21:09:17
感谢分享

请登录后参与讨论

立即登录 注册账号