如何通过IDACode与IDA和VS Code联调IDAPython脚本

admin 2025年6月15日02:29:09评论22 views字数 1986阅读6分37秒阅读模式

 关于IDACode 

IDACode是一款功能强大的代码执行和调试工具,该工具可以帮助广大研究人员在IDA环境中执行和调试Python脚本,而且无需频繁切换窗口,也无需离开Visual Studio Code。注意,该项目的VS code插件可以直接在官方插件市场中下载安装。

当前版本的IDACode仍处于前期开发阶段,因此可能会出现一些bug,不过别担心,我们的开发人员会在短时间内进行修复,也欢迎大家积极提交各种issue。

 功能介绍 

速度快:支持快速创建和执行脚本。

调试功能强大:可随时添加Python调试器

兼容性:IDACode不要求我们以特定的方式修改脚本,所有脚本都可以在IDA中执行,无需做任何更改。

模块化:IDACode没有在线程同步中使用安全封装工具,这将允许我们在任何给定的时间从任何路径导入任何模块。而IDACode会将脚本执行线程与IDA主线程同步,以避免性能和其他意外问题。

同步:由于IDACode使用debugpy进行通信,它可以直接将输出窗口与VS Code的输出面板同步。

注意:IDACode同时支持Python 2和Python 3。

 工具安装 

首先,我们需要安装好DIA插件运行所需的依赖环境。确保使用了正确的Python版本,IDACode支持最新版本的的debugpy(v3.0.0),请确保环境完成升级。

python -m pip install --user debugpy tornado

接下来,访问该项目的【Releases页面】下载项目代码,或者使用下列命令将该项目源码克隆至本地:

git clone https://github.com/ioncodes/idacode.git

然后将ida.zip文件中的所有内容拷贝到IDA插件目录下。

下一步,就是要设置符合我们环境的配置文件了。根据你的实际情况编辑

idacode_utils/settings.py文件:

HOST:主机地址,一般为127.0.0.1,除非你使用了远程地址。

PORT:IDA需要监听的端口号,主要用于IDA和VS Code之间的Websocket通信。

DEBUG_PORT:需要监听的传入调试会话端口

PYTHON:IDA所使用的Python发行版安装绝对地址。

LOGGING:决定调试器是否将信息记录至文件中,当我们的代码遇到问题时,这个功能就非常有用了。日子文件地址位于你设备的临时目录中,Windows的话就是“%TEMP%”,日子文件命名规则为“debugpy.*.log”。

此时,你就可以在工具的插件菜单中点击“IDACode”来开启插件了。

 工具使用 

IDA

点击插件菜单中的“IDACode”,此时你将会看到如下所示的信息:

IDACode listening on 127.0.0.1:7065

VS Code

当前版本的IDACode支持默认开启“Execute on save”功能,VS Code将会自动在保存(比如说按下CTRL + S)了当前脚本文档之后在IDA中执行你的脚本代码。

工具提供了四个可用命令以供使用:

如何通过IDACode与IDA和VS Code联调IDAPython脚本

接下来,打开一个文件夹,把你的脚本放进去,然后连接IDA即可。请记住,在重新启动IDA之前,调试会话是永久存在的。一旦调试器启动,就不能更改工作区文件夹了。

因此,你需要确保工作区文件夹是主脚本所在的文件夹。一旦连接建立成功,就可以在IDA中选择执行脚本了。

 调试功能 

IDACode使用了VS Code的远程调试器连接到IDA,并支持VS Code的全部功能。但是,我们还需要使用到Python的内置功能来指定脚本的入口点,比如断点功能。这个功能可以告诉调试器暂停执行,如果没有调试器,它将忽略该功能。

IDACode还会导入一个名为dbg的辅助功能包,该包实现了一个名为bp的断点重载功能,并且支持日志记录和条件设置:

name = idc.get_segm_name(segment)dbg.bp(name==".text", f"found {name} at {segment}")

项目地址

https://github.com/ioncodes/idacode

参考资料

https://marketplace.visualstudio.com/items?itemName=Layle.idacode

https://github.com/ioncodes/idacode/releases

https://marketplace.visualstudio.com/items?itemName=Layle.idacode

‍https://github.com/ioncodes/idacode/tree/master/idacode#extension-settings

原文始发于微信公众号(FreeBuf):如何通过IDACode与IDA和VS Code联调IDAPython脚本

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月15日02:29:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何通过IDACode与IDA和VS Code联调IDAPython脚本https://cn-sec.com/archives/819340.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息