行业解决方案
查看所有行业解决方案
IDA 用于解决软件行业的关键问题。
发布时间:2023-10-26 09: 00: 00
IDA Pro 做为逆向工程领域必备工具,除了拥有强大的自身功能外,其开放的环境也为各类第三方提供了绝佳的插件开发支持,IDA Pro官方每年都会举办面向全球开发者的插件大赛,评选出一二三等奖,并分享给所有 IDA Pro 的用户。
今天我们要分享的是2022年插件大赛优秀参赛作品,一款叫做 ida_bochs_windows 的插件。ida_bochs_windows 是在本地 Bochs 调试器上使用 IDA Pro 调试 Windows 内核的辅助脚本(包括 PDB 符号)。ida_bochs_windows 插件可用于在 Bochs 调试时加载模块与符号信息,方便调试。


ida_bochs_windows插件安装说明
与其他常见插件一样,我们只需要下载文件,解压后统一放在IDA pro程序的插件目录里即可,没有太多额外的情况咯。
ida_bochs_windows插件使用方法
注意:在打开 IDA 之前,必须将 env var: _NT_SYMBOL_PATH 转换成windows 符号,例如

1、编辑 :"C:\Program Files\IDA Pro 7.7\cfg\dbg_bochs.cfg"

编辑后,打开 IDA PRO,转到调试器 -> 运行 -> 本地 Bochs 调试器。
2、申请:依次点击调试选项 -> 设置特定选项 -> 选择磁盘映像。

启动调试会话并依次点击文件 -> 脚本文件 -> ida_bochs_windows.py,这个 idapython 脚本会要求你提供 bochs 符号文件。
3、将 IDA 名称导出到文件,用于原始 Bochs 调试
(1)打开 IDA PRO,启动调试会话并一场点击文件 -> 脚本文件 -> ida_bochs_windows.py。
(2)执行 ida_names_too_bochs_sym.py,然后选择要保存信息的文件。
(3)在 Bochs 调试器中使用生成的文件(dsym 全局 + 文件路径),例如:

4、将 IDA 片段导出到文件,用于原始 Bochs 调试
(1)打开 IDA PRO,启动调试会话并依次点击文件 -> 脚本文件 -> ida_bochs_windows.py。
(2)执行 ida_segs_too_bochs_sym.py,然后选择要保存信息的文件。
(3)在 Bochs 调试器中使用生成的文件(dsym 全局 + 文件路径),例如:加入 bochs_segs.txt 和 bochs_syms.txt。

5、将段落 + 符号放在一起会很有用:

现在,当指令超出已知区段时,就很容易查看了:

IDA官方对ida_bochs_windows插件的点评
在 Bochs 仿真器中调试 Windows 时,ida_bochs_windows插件可添加模块和符号信息。符号还可以从 IDA 导出到映射文件,以便在 Bochs 调试器中使用。这些功能在使用 Bochs 的定制版本(例如带有附加仪器的版本)时尤其有用。
请点击下方【下载完整资料】按钮获取插件安装包
展开阅读全文
︾
读者也喜欢这些内容:
IDA Pro怎么安装插件 IDA Pro插件安装后无法加载如何处理
IDA Pro插件可以扩展反汇编分析、调试辅助、脚本自动化和二进制安全分析等功能。不同插件可能采用Python脚本、Python模块或编译动态库形式,因此安装方式和运行环境要求也存在差异。插件安装完成后无法加载时,需要先确认插件文件是否被IDA识别,再检查插件目录、IDAPython版本、依赖组件以及插件自身兼容性。...
阅读全文 >
IDA Pro F5插件怎么安装 IDA Pro F5插件加载失败如何排查
IDA Pro中按F5打开伪代码,调用的是Hex-Rays反编译器;其他修改伪代码、恢复类型或增强导航的工具,才属于第三方插件。处理“IDA Pro F5插件怎么安装IDA Pro F5插件加载失败如何排查”时,应先确认缺少的是反编译器还是扩展插件,再检查处理器架构、IDA版本、许可证和依赖环境。...
阅读全文 >
IDA Hex-Rays伪代码怎么刷新 IDA Hex-Rays伪代码变量名怎么整理
用Hex-Rays看伪代码时,很多人不是不会点功能,而是顺序没走对。改了类型以后没刷新,看到的还是旧结果;先急着改变量名,结果类型还没理顺,越改越乱。官方文档其实把这套流程写得很明白,伪代码窗口支持手动重编译,局部变量也可以直接重命名、改类型、做变量映射,只是这些动作要按顺序配合着用,效果才会稳定。...
阅读全文 >
IDA C反编译怎么看指针结构体 IDA C反编译结构体怎么重建字段
在IDA里看C反编译结果时,结构体相关内容之所以会显得乱,很多时候不是反编译器完全看不出来,而是当前变量还停留在无类型指针、整数偏移或不完整联合体的状态。Hex-Rays官方文档明确提到,Set type可以显著改变输出结果并减少多余强转;反过来,如果对象还是void指针或类型信息不足,反编译结果的可读性就会明显下降。...
阅读全文 >