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中调试相同。
Windows下使用VSCode搭建IDA Python脚本开发环境的更多相关文章
- Windows下,配置VS Code的Java开发环境
Windows下,配置VS Code的Java开发环境 前言 最近痴迷于VS Code的开发环境配置,原因就在于它的轻巧和免费,还能当一个非常棒的文本编辑器.如果之前你配置过VS Code并且失败了, ...
- 如何在Windows平台使用VS搭建C++/Lua的开发环境
转自:http://ju.outofmemory.cn/entry/95358 本文主要介绍如何在Windows平台利用VS搭建C++/Lua开发环境.这里的“C++/Lua开发环境”主要指的是C++ ...
- Mac下使用Brew搭建PHP(LNMP/LAMP)开发环境
Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容 ...
- Mac下用brew搭建PHP(LNMP/LAMP)开发环境
Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容 ...
- 转:windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
原文来自于:http://www.cnblogs.com/zhuyp1015/archive/2012/06/16/2552269.html 使用gvim在windows环境下搭建简单的IDE环境可以 ...
- [原创]win7环境下搭建eclipse+python+django开发环境
一)工具下载 a)eclipse(最新版4.3.1)官网下载地址 http://www.eclipse.org/downloads/ b)python (2.X版本)官网下载地址 http://pyt ...
- Windows 7旗舰版搭建andriod 4.0开发环境记录
搭建Android环境步骤(仅供参考): 官方搭建步骤: http://developer.android.com/index.html 搭建环境之前需要下载下面几个文件包: 一.安装Java运行环境 ...
- Mac下使用brew搭建PHP7+nginx+mysql开发环境
http://blog.csdn.net/mysteryhaohao/article/details/52230634 HomeBrew brew的安装,直接上官网:http://brew.sh/ 一 ...
- Windows平台上安装搭建iPhone/iPad的开发环境
http://www.cnblogs.com/hanxianlong/archive/2015/09/20/4824227.html http://blog.csdn.net/yahohi/artic ...
- 【转】windows和linux中搭建python集成开发环境IDE
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
随机推荐
- 部署文件:filebeat->kafka集群(zk集群)->logstash->es集群->kibana
该压缩包内包含以下文件: 1.install_java.txt 配置java环境,logstash使用 2.es.txt 三节点的es集群 3.filebeat.txt 获取日志输出到kafka集群 ...
- 用prometheus监控Nginx
GitHub上官方地址:https://github.com/knyar/nginx-lua-prometheus 告警规则地址:https://awesome-prometheus-alerts.g ...
- 服务器设置X-Frame-Options Header响应头(Tomcat,服务器,项目)
解决方案(修改tomcat配置文件) 打开Tomcat配置文件(conf\web.xml)搜索 httpHeaderSecurity有两处地方 <!--第一处将注释放开--> <fi ...
- Android 使用压缩纹理
本文介绍了什么是压缩纹理,以及加载压缩纹理的核心步骤.并在 Android OpenGLES 平台上实现了压缩纹理的显示. 一.压缩纹理概念 传统的图片文件格式有 PNG . JPEG 等,这种类型的 ...
- 编写一个应用程序,在主类Test1类中,创建两个链表List<E>对象,分别存储通过键盘输入的字符串内容
题目1:编写一个应用程序,在主类Test1类中,创建两个链表List<E>对象,分别存储通过键盘输入的字符串内容--"chen","wang",&q ...
- 在PE文件中简单注入代码,实现在启动前弹窗
获得的新知识: 1.kernel32.dll,user32.dll,ntdll.dll等一些dll在同一个PC环境下的映射到虚拟内存基址是一样的. 2.在win8以上系统上,更改PE文件的入口点要大于 ...
- POJ1094 Sorting It All Out (floyd传递闭包)
关系具有传递性,可以用floyd解决. 将关系都看做i<j的形式,令d[i][j]=1,如果d[i][j]=d[j][i]=1,说明矛盾:d[i][j]=d[j][i]=0,说明i与j的关系无法 ...
- SpringBoot(二) - 核心配置文件
1.application.properties 和 application.yml 配置文件格式区别 1.1 文件格式 application.properties # 端口号 server.por ...
- IDEA中设置背景图片(超详细)
文章目录 1.效果图 2.详细设置过程 1.效果图 2.详细设置过程
- python实现鼠标手动截图(类似于QQ截图)
由于在网上找了很久,只找到按像素位置截图和全屏截图的,所以决定自己写一个. 本程序实现原理是现用PIL里的ImageGrab进行全屏截图,然后通过模拟鼠标操作,进行截图,最后删除全屏截图,只留下鼠标截 ...