由于本人是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. tar.gz方式安装nacos设置使用systemct进行service方式的管理并设置开机自启动--废弃不用这个

    nacos解压缩目录是:/opt/nacos 编写shell脚本 # vim /opt/nacos/bin/nacos.sh #!/bin/bash source /etc/profile workD ...

  2. Beats:为 Beats => Logstash => Elasticsearch 架构创建 template 及 Dashboard

    文章转载自:https://elasticstack.blog.csdn.net/article/details/115341977 前一段时间有一个开发者私信我说自己的 Beats 连接到 Logs ...

  3. Java 基础三、接口与内部类

    1.   在Java程序语言中,接口是对类的一种描述.例如Arrays类中sort方法声明可以对对象进行排序,但前提是对象所属的类必须实现Comparable接口. public interface ...

  4. Docker MySql 查看版本的三种方法

    目录 Docker MySql 查看版本的三种方法 1.mysql -V命令查看版本 2.status命令查看版本 3.version命令查看版本 Docker MySql 查看版本的三种方法 1.m ...

  5. ImGUI 1.87 绘制D3D外部菜单

    ImGUI 它是与平台无关的C++轻量级跨平台图形界面库,没有任何第三方依赖,可以将ImGUI的源码直接加到项目中使用,该框架通常会配合特定的D3Dx9等图形开发工具包一起使用,ImGUI常用来实现进 ...

  6. 利用POI遍历出层级结构的excel表格

    import java.util.ArrayList; import java.util.List; import org.apache.poi.ss.util.CellRangeAddress; p ...

  7. .NET 5 设计 API (资源站)

    跟新于 2022-11日 数据抓取端 随着数据的增多,问题也越来越多 用redis 主要是为了 以后进行,多个数据库写入. 例如我搭建一个 别的数据库论坛,我直接拿数据去redis里面拿,就不用跨库查 ...

  8. KVM导入Ubuntu Cloud 镜像创建虚机及调整磁盘大小

    Ubuntu Cloud Images Ubuntu官网会给各种公有云平台提供cloud镜像, 例如AWS, MS Azure, Google Cloud, 以及本地虚机环境例如 QEMU, VMwa ...

  9. OCI runtime exec failed: exec failed: unable to start container process: exec: "mongo": executable file not found in $PATH: unknown

    前言: 今天按照以往在Docker安装MongoDB的方式安装,但是到最后使用mongo命令执行mongodb命令的时候一直执行不成功,最后还是按照官网的Issues解决了. 创建并运行一个Mongo ...

  10. Invalid bound statement (not found)出现原因和解决方法

    Invalid bound statement (not found)出现原因和解决方法 前言: 想必各位小伙伴在码路上经常会碰到奇奇怪怪的事情,比如出现Invalid bound statement ...