快捷搜索: 王者荣耀 脱发

在 VSCode 中调试 IDAPython 脚本

概述

    IDA 只给我们提供了一个类似于命令行的窗口来实时编写脚本,这样在编写功能比较复杂的脚本时会特别难受 这篇教程可以帮助你配置一个 IDA 脚本的开发环境,可以使用 VSCode 远程连接 IDA,进行脚本的调试

环境

    Windows10 Pro 20H2 Python 3.7.9(不太清楚别的会不会有问题,但是版本尽量不要太高,否则会有兼容性问题) IDA 7.5 VSCode

配置 Python

安装必备的库

pip install tornado
pip install debugpy==1.0.0rc2 
# 必须安装这个版本,最新版的 api 变了,会导致调试功能无法正常使用

配置环境变量

    修改 PYTHONPATH 环境变量。安装 Python 时默认是不会自动进行配置的,所以如果没有的话要先新建一个 将下面这些路径加入到 PYTHONPATH 下面 这时候尝试 import idc,报错 这应该是从外部调用 IDA 时会出现的一个 bug,这个变量应该在 __main__ 模块里被设置的。看名字应该是为了兼容之前的 api。 修改 C:Program FilesIDA_7.5python3ida_idaapi.py 这个文件,在里面加上一行代码 如果设置为 False 则传统的 api 写法就不能使用了,还是挺难受的。 此时就可以正常导入了。

配置 VSCode

    在 VSCode 中运行 IDA 脚本是通过一个叫 IDACode 的插件实现的。首先在 VSCode 中安装 配置项很简单,如果写脚本的机器和运行 IDA 的机器是同一台的话保持默认即可。

配置 IDA

    为正常使用 IDACode ,还需要安装相应的 IDA 插件。下载链接 下载完成后直接解压到 %IDAPATH%/plugins 中 编辑 idacode_utils/settings.py,把 Python 的可执行文件路径改为自己电脑上 Python 的路径 此时已经大功告成了,打开 IDA ,随便打开一个文件,如果 Output Window 有如下的提示就说明安装成功了 按照提示的方式运行 IDACode Server

使用教程

    由于调试脚本并不是使用传统的 F5 进行,所以有几点需要注意一下 测试代码 import idautils import idaapi import idc print("running idapython") print("after breakpoint")

与运行在 IDA 里的 Server 建立连接

    回到 VSCode,选择图中所示的 Connect & Attach 如果之前的设置都正确,那么会有如下的提示

运行脚本

    由于插件有保存后直接发送到 IDA 中运行的功能,所以按下 Ctrl+S 就能看到脚本被执行 也可以在 VSCode 的命令窗口中显式的执行脚本

调试

    由于我们并不是直接在 VSCode 环境中运行脚本,所以传统方式设置的断点是断不到的,应该采用如下的方式设置断点 运行后成功捕获到断点,各种变量的值也能正确的读取,可以说是非常方便了
经验分享 程序员 微信小程序 职场和发展