由于本人是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脚本开发环境的更多相关文章

  1. Windows下,配置VS Code的Java开发环境

    Windows下,配置VS Code的Java开发环境 前言 最近痴迷于VS Code的开发环境配置,原因就在于它的轻巧和免费,还能当一个非常棒的文本编辑器.如果之前你配置过VS Code并且失败了, ...

  2. 如何在Windows平台使用VS搭建C++/Lua的开发环境

    转自:http://ju.outofmemory.cn/entry/95358 本文主要介绍如何在Windows平台利用VS搭建C++/Lua开发环境.这里的“C++/Lua开发环境”主要指的是C++ ...

  3. Mac下使用Brew搭建PHP(LNMP/LAMP)开发环境

    Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容 ...

  4. Mac下用brew搭建PHP(LNMP/LAMP)开发环境

    Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容 ...

  5. 转:windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)

    原文来自于:http://www.cnblogs.com/zhuyp1015/archive/2012/06/16/2552269.html 使用gvim在windows环境下搭建简单的IDE环境可以 ...

  6. [原创]win7环境下搭建eclipse+python+django开发环境

    一)工具下载 a)eclipse(最新版4.3.1)官网下载地址 http://www.eclipse.org/downloads/ b)python (2.X版本)官网下载地址 http://pyt ...

  7. Windows 7旗舰版搭建andriod 4.0开发环境记录

    搭建Android环境步骤(仅供参考): 官方搭建步骤: http://developer.android.com/index.html 搭建环境之前需要下载下面几个文件包: 一.安装Java运行环境 ...

  8. Mac下使用brew搭建PHP7+nginx+mysql开发环境

    http://blog.csdn.net/mysteryhaohao/article/details/52230634 HomeBrew brew的安装,直接上官网:http://brew.sh/ 一 ...

  9. Windows平台上安装搭建iPhone/iPad的开发环境

    http://www.cnblogs.com/hanxianlong/archive/2015/09/20/4824227.html http://blog.csdn.net/yahohi/artic ...

  10. 【转】windows和linux中搭建python集成开发环境IDE

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

随机推荐

  1. 使用Prometheus和Grafana监控nacos集群

    官方文档:https://nacos.io/zh-cn/docs/monitor-guide.html 按照部署文档搭建好Nacos集群 配置application.properties文件,暴露me ...

  2. K8s deployments的故障排查可视化指南已更新(2021 中文版)

    转载自:https://mp.weixin.qq.com/s/07S930e6vsN2iToo0gP0zg 英文版 高清图地址:https://learnk8s.io/a/a-visual-guide ...

  3. 在K8S中安装jenkins

    以 NFS 为存储卷的示例,将在 NFS 存储卷上创建 Jenkins 目录,然后创建 NFS 类型的 PV.PVC. 1.NFS 存储卷创建 Jenkins 目录 进入 NFS Server 服务器 ...

  4. Pod的dns记录怎么组成的

    Pod的dns记录怎么组成的 <Pod Name>.<service name>.<namespace name>.svc.cluster.local Pod的Na ...

  5. 【可视化大屏教程】用Python开发智慧城市数据分析大屏!

    目录 一.开发背景 二.讲解代码 2.1 大标题+背景图 2.2 各区县交通事故统计图-系列柱形图 2.3 图书馆建设率-水球图 2.4 当年城市空气质量aqi指数-面积图 2.5 近7年人均生产总值 ...

  6. Raft 共识算法

    转载请注明出处:https://www.cnblogs.com/morningli/p/16745294.html raft是一种管理复制日志的算法,raft可以分解成三个相对独立的子问题: 选主(L ...

  7. proxy解决跨域问题

    首先我们在本地开发,域名都是localhost,当我们需要请求后台数据时,就会出现跨域的问题 下面就是在vue.config.js配置文件里: devServer: {     proxy: {    ...

  8. 插件化编程之WebAPI统一返回模型

    WebApi返回数据我们一般包裹在一个公共的模型下面的,而不是直接返回最终数据,在返回参数中,显示出当前请求的时间戳,是否请求成功,如果错误那么错误的消息是什么,状态码(根据业务定义的值)等等.我们常 ...

  9. 一文读懂 MySQL 索引

    1 索引简介 1.1 什么是 MySQL 的索引 官方定义:索引是帮助 MySQL 高效获取数据的数据结构 从上面定义中我们可以分析出索引本质是一个数据结构,他的作用是帮助我们高效获取数据,在正式介绍 ...

  10. elementUi使用dialog的进行信息的添加、删除表格数据时进行信息提示。删除或者添加成功的信息提示(SpringBoot+Vue+MybatisPlus)

    文章目录 1.添加新用户,通过dialog的弹窗形式 1.1 添加的按钮 1.2 调用方法设置窗口可见 1.3 窗口代码 1.4 提交注册信息方法 1.5 使用mybatisPlus方法进行添加信息到 ...