由于本人是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. Elasticsearch:shard 分配感知

  2. 组件化开发1-git命令简洁版

    1-给项目添加git git init 2-查询当前状态,(红色显示的为在工作区,绿色为暂缓区) git status 3-提交到暂缓区 git add . 4-提交到本地仓库('xxxx'里面为注释 ...

  3. java中的自动拆装箱与缓存(Java核心技术阅读笔记)

    最近在读<深入理解java核心技术>,对于里面比较重要的知识点做一个记录! 众所周知,Java是一个面向对象的语言,而java中的基本数据类型却不是面向对象的!为了解决这个问题,Java为 ...

  4. EF在二手市场中的使用

    二手市场这个小项目是我第一次用EF,边学边写边记录吧 首先明确几个知识点 存储过程 存储过程简单来说,就是为以后的使用而保存的一条或多条SQL语句的集合.可将其视为批件,虽然它们的作用不仅限于批处理. ...

  5. KubeEdge SIG AI发布首个分布式协同AI Benchmark调研

    摘要:AI Benchmark旨在衡量AI模型的性能和效能. 本文分享自华为云社区<KubeEdge SIG AI发布首个分布式协同AI Benchmark调研>,作者:KubeEdge ...

  6. JavaScript基础&实战 JS中正则表达式的使用

    文章目录 1.正则表达式 1.1 代码 1.2 测试结果 2.splict | search 2.1 代码 2.2 测试结果 1.正则表达式 1.1 代码 <!DOCTYPE html> ...

  7. 5.websocket原理

      websocket协议原理 1.WebSocket协议是基于TCP的一种新的协议.WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符.它实现了浏览器与 ...

  8. java中GC的日志认识详解

    不同的垃圾回收器 他们的日志都是完成不一样的,看懂日志是解决和发现问题的重中之重. Parallel Scavenge + Parallel Old 日志 启动参数 -XX:+UseParallelG ...

  9. ubuntu下Mysql安装与root密码重置

    一.安装 1.首先更新本地存储库索引,执行sudo apt update 2.从APT存储库安装MySQL,执行sudo apt install MySQL-server,在安装过程中,可能会出现[Y ...

  10. maven-入门到入土

    详情见代码重工:连接http://heavy_code_industry.gitee.io/code_heavy_industry/pro002-maven/