h4ck1nH4ck1n  2022-07-28 10:17 字节时代 隐藏边栏 |   1 条评论  745 
文章评分 1 次,平均分 5.0

概述

  • IDA 只给我们提供了一个类似于命令行的窗口来实时编写脚本,在编写功能比较复杂的脚本时非常繁琐
  • 本篇文章将配置一个 IDA 脚本的开发环境,使用 VSCode 远程连接 IDA,进行脚本的运行和调试

环境

  • Windows 10 专业版
  • Python 3.8.5,安装目录 C:\Python38
  • IDA Pro 7.6 SP1
  • VSCode 1.69.2
  • IDACode 0.3.0

配置 Python

安装必备的库

利用配置在 IDA Pro 中使用的Python来安装组件:

cd C:\Python38
python.exe -m pip install --user debugpy tornado -i https://mirrors.aliyun.com/pypi/simple

配置环境变量

修改PYTHONPATH环境变量。安装Python时默认是不会自动进行配置的,所以如果没有的话要先新建一个:

将下面这些路径加入到PYTHONPATH下面:

配置 VSCode

VSCode中运行IDA脚本是通过一个叫IDACode的插件实现的。

VSCode中搜索安装IDACode

配置项很简单,如果写脚本的机器和运行 IDA 的机器是同一台的话保持默认即可。

配置 IDA

为正常使用IDACode,还需要安装相应的 IDA 插件,在这里下载插件 ida.zip。

下载完成后直接解压到%IDAPATH%/plugins或者%APPDATA%\Hex-Rays\IDA Pro\plugins中:

编辑idacode_utils/settings.py,把 Python 的可执行文件路径改为自己电脑上 Python 的路径:

此时已经大功告成了,打开 IDA ,随便打开一个文件,如果 Output Window 有如下的提示就说明已经安装成功:

按照提示的方式运行 IDACode Server,服务器就开始监听了:

使用教程

由于调试脚本并不是使用传统的 F5 进行,所以有几点需要注意一下。

测试代码

import idautils
import idaapi
import idc
print("running idapython")
print("after breakpoint")

与 Server 建立连接

回到 VSCode,CTRL+SHIFT+P,选择图中所示的 Connect & Attach:

如果之前的设置都正确,那么会有如下的提示:

运行脚本

由于插件有保存后直接发送到 IDA 中运行的功能,所以按下Ctrl+S就能看到脚本被执行:

调试

  • 由于我们并不是直接在VSCode环境中运行脚本,所以传统方式设置的断点是断不到的,应该手动使用breakpoint()来设置断点
  • breakpoint()不能作为最后一条语句,否则无法生效
  • 设置断点之前,必须使用VSCode打开需要调试的脚本所在的目录,否则断点不会生效

运行后成功捕获到断点,各种变量的值也能正确地读取,可以说是非常方便。

注意别点击下图右上角的断开调试按钮,否则需要关掉IDA Pro重新打开进行配置。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

h4ck1n
H4ck1n 关注:0    粉丝:0
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到

  1. I
    iyuer 中国 Microsoft Edge 124.0.0.0 Windows 11 x64 Edition

    socket在使用后没有关闭,在VScode上断开调试之后,socket端口持续占用

扫一扫二维码分享