Windows下使用VSCode搭建IDA Python脚本开发环境
由于本人是VSCode的重度沉迷用户,需要写代码时总会想起这个软件,因此选择在VSCode中搭建IDA Python的开发环境
本文适用的环境如下:
1.操作系统 windows
2.Python3
3.IDA Pro 7.7(7.5以上应该都行)
4.VSCode 1.73.1 更新于2022.11.09(这个版本不影响,能用的VSCode都可以)
在IDA中安装IDA Python的插件
插件仓库的地址:https://github.com/ioncodes/idacode
从仓库中将所有文件都下载下来
1.将下载文件中的ida里面的内容(不是ida这个文件夹)全部放到本地IDA的Plugins文件夹下,例如D:\tools\IDA Pro7.7.7\plugins,注意路径中不要包含中文,否则可能出现奇怪的玄学bug。
2.修改上述文件中的idacode_utils/settings.py,将里面PYTHON设置为本地机器所使用的解释器路径,如果找不到路径,可以通过以下python代码打印出来
import sys print(sys.executable)
此外,还可以使用windows + r,在打开的运行窗口中输入cmd后按回车打开命令行,输入where python即可
3.安装所需要的依赖
python -m pip install --user debugpy tornado
4.重启IDA,随意打开一个二进制文件,点击左上角的edit->plugins->IDA Code,查看下方的交互窗口,提示[IDACode] Listening on 127.0.0.1:7065,说明安装成功。
在IDA中使用IDA Python
IDA Python安装完成后,可以使用IDA提供的界面使用IDA Python,有三种方式:
1.主界面下方的窗口
在最下方的输入栏中输入python的代码按回车即可运行,这种方式适用于简单测试,不适合写代码量较多的脚本。
2.IDA 左上角 file->Script Command
可以在这里编写脚本,点击run即可在Output窗口观察到输出,运行前记得在左下角Scripting language选框中选择Python
3.IDA 左上角file->Script file
这里可以导入写好的外部脚本运行。
在VSCode中开发IDA Python
1.安装IDA Code插件
在VSCode左侧点击插件按钮,或者按ctrl+shift+x呼出插件框,搜索IDACode插件点击安装
2.配置IDA Python自动补全
在VSCode 的settings(以json方式编辑)中添加本地IDA Python的库。ctrl+shift+p打开搜索框,输入open user settings(json)打开设置,在里面添加两行代码
"python.autoComplete.extraPaths": [ "D:\\tools\\IDA Pro7.7.7\\python\\3" ], "python.analysis.extraPaths": [ "D:\\tools\\IDA Pro7.7.7\\python\\3" ],
这里的路径是你的IDA中的路径,务必找到IDA文件夹下的python\\3,此时在vscode中编辑ida python的代码,就可以根据库中有的类和函数选择补全
3.连接vscode和ida
ctrl+shift+p打开搜索框,输入IDA,能够搜索到四个选项:Execute script in IDA; Connect to IDA;Attach a debugger to IDA;Connect and attach a debugger to IDA
它们分别是用于执行当前脚本,连接vscode到ida,连接调试器到ida
首先选择Connect to IDA,在此之前,需要在IDA Pro中的plugins里点击IDA Code,让IDA进入等待连接的状态
然后编写脚本,编写完成后,点击Execute script in IDA,此时就可以在IDA 的Output窗口中看到输出了
4.IDA code 保存时执行设置
如果你的VSCode设置了自动保存,那么建议在IDACode的配置中关闭Execute On Save,否则你每对脚本进行一次修改,修改后的脚本就会被执行,右下角还会有成功发送到IDA的提示框(我亚雷,真的很烦)
以上,完成在VSCode中开发IDA Pyhon的环境配置。
调试IDA Python脚本
上述步骤完成后,可以在开发好的脚本中打断点,方式为在需要断下的语句前面加一行breakpoint(),程序在调试时会断在该行的下一行处。使用python自带的代码左端的小红点打断点无效,目前没找到解决方式。
然后ctrl+shift+p,依次选择Attach a debugger to IDA和Execute script in IDA进入调试模式,之后的步骤和在IDA中调试相同。