概述
- IDA 只给我们提供了一个类似于命令行的窗口来实时编写脚本,在编写功能比较复杂的脚本时非常繁琐
- 本篇文章将配置一个 IDA 脚本的开发环境,使用 VSCode 远程连接 IDA,进行脚本的运行和调试
环境
- Windows 10 专业版
- Python 3.8.5,安装目录 C:\Python38
- IDA Pro 7.6 SP1
- VSCode 1.69.2
- IDACode 0.3.0
配置 Python
安装必备的库
利用配置在 IDA Pro 中使用的Python
来安装组件:
cd C:\Python38
python.exe -m pip install --user debugpy tornado -i https://mirrors.aliyun.com/pypi/simple
配置环境变量
修改PYTHONPATH
环境变量。安装Python
时默认是不会自动进行配置的,所以如果没有的话要先新建一个:
配置 VSCode
在VSCode
中运行IDA
脚本是通过一个叫IDACode
的插件实现的。
配置项很简单,如果写脚本的机器和运行 IDA 的机器是同一台的话保持默认即可。
配置 IDA
为正常使用IDACode
,还需要安装相应的 IDA 插件,在这里下载插件 ida.zip。
下载完成后直接解压到%IDAPATH%/plugins
或者%APPDATA%\Hex-Rays\IDA Pro\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")
与 Server 建立连接
回到 VSCode,CTRL+SHIFT+P
,选择图中所示的 Connect & Attach:
运行脚本
由于插件有保存后直接发送到 IDA 中运行的功能,所以按下Ctrl+S
就能看到脚本被执行:
调试
- 由于我们并不是直接在
VSCode
环境中运行脚本,所以传统方式设置的断点是断不到的,应该手动使用breakpoint()
来设置断点 breakpoint()
不能作为最后一条语句,否则无法生效- 设置断点之前,必须使用
VSCode
打开需要调试的脚本所在的目录,否则断点不会生效
运行后成功捕获到断点,各种变量的值也能正确地读取,可以说是非常方便。
注意别点击下图右上角的断开调试按钮,否则需要关掉IDA Pro重新打开进行配置。
本文为原创文章,版权归字节时代所有,欢迎分享本文,转载请保留出处!
socket在使用后没有关闭,在VScode上断开调试之后,socket端口持续占用