用pdb中的源和行号信息注释ida

annotate-lineinfo的Python项目详细描述


注释线条信息

这个IDapython脚本/插件将解析加载的可执行文件的PDB,并用源代码和行号信息注释反汇编。

WinDbg TTD tutorial sample screenshot

用法

脚本

  • 选项1)作为常规IDapython脚本运行annotate_lineinfo.py

  • 选项2)从另一个脚本或IDapython控制台:

importannotate_lineinfoannotate_lineinfo.ida_annotate_lineinfo()

插件

安装

  • 选项1)运行python setup.py install --install-ida-plugin=PATHannotate_lineinfo_plugin.py安装到PATH\plugins
    • 如果未指定PATH,将首先尝试%IDAUSR% 如果不存在,则默认为
  • 选项2)手动将annotate_lineinfo_plugin.py放在ida安装的plugins目录中。

注释整个文件

  • 使用快捷键Alt-Shift-A或从Edit->Annotate lineinfo菜单运行。

反汇编视图弹出菜单

  • 在函数内部单击鼠标右键,选择“注释”
  • 选择一系列说明,单击鼠标右键,选择“注释”

功能视图弹出菜单

  • 选择一个或多个函数,单击鼠标右键,选择“批注”

上述每个操作都有相应的remove annotations操作。

加载时,annotate_lineinfo尝试在以下位置定位PDB:

  • _NT_SYMBOL_PATH如果设置
  • ida的默认pdb下载目录%TEMP%\ida
  • msdia defaults-可执行文件调试目录中的路径,与可执行文件的路径相同

您可以手动指定pdb路径,或者请求另一个自动定位尝试(例如,在ida下载pdb之后)。 从Edit->Annotate lineinfo菜单。

注意事项

只在Windows上运行。此脚本使用msdia[ver].dll提供的COM API解析PDB。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java例外。Lang.Stringindexoutofboundsexception索引超出范围(0)   java Spring引导Freemarker从2.2.0升级失败   重构Java反模式名称?包含对象的对象包含。。。等   用java处理JDBC可能出现的死锁的最佳方法   java无法访问主线程上的数据库,因为它可能会在很长一段时间内锁定UI   java如何将固定大小的画布包装在边框窗格中的滚动窗格居中?   java解析xsd文件后得到空结果   在html页面中表示XML文件的java   socketjava对象流   sql Java越界异常数据库   JavaJBoss7.1.1不会在Mavericks上启动   Twincat ADS事件驱动读取在一段时间后停止工作(Java)   java MyBatis使用生成的ID插入所有   Mojave上缺少MacOS Java控制面板   JavaGuice:如果多次注入相同的依赖项,是否注入了该依赖项的相同实例?