首页
社区
课程
招聘
[原创] IDA Pro 9 安装和插件配置
发表于: 2025-2-16 16:43 93337

[原创] IDA Pro 9 安装和插件配置

2025-2-16 16:43
93337

2025.9.13文章更新如下:

添加IDA Pro 9.2.250908安装配置教程

优化IDAPython安装部分

使用便携版python而非安装版

精简插件安装部分

分为核心插件和其他插件,核心插件推荐安装,其他插件根据个人需求安装

总结IDA的优化设置

可修改ida.cfg和注册表进行优化, 已集成到打包的IDA和初始化工具中

优化初始化IDA工具

执行3个操作: 指定IDAPython路径, 禁用IDA自动更新和IDA9新式快捷键, 创建桌面快捷方式

提供打包好的IDA Pro 9.2.7z :

文件链接: 642K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3j5h3&6Q4x3X3g2T1j5h3W2V1N6g2)9J5k6h3y4G2L8g2)9J5c8Y4y4Q4x3V1j5I4x3p5I4m8x3i4c8d9f1W2q4p5i4K6g2X3k6e0q4#2x3%4q4A6M7%4W2C8k6i4m8m8i4K6y4r3M7s2N6V1i4K6y4p5L8Y4t1K6y4b7`.`.

解压后运行InitIDA.exe一键初始化即可使用

默认使用内嵌的便携版python3.11.9作为idapython

修改了ida.cfg的部分配置进行优化

默认安装了核心插件及其python依赖

Keypatch, patching, DataExportPlus, findcrypt-yara, hrtng, LazyIDA, auto-enum, bindiff

注意:

提供以下文件供师傅们自行安装配置:

文件链接: 14dK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3j5h3&6Q4x3X3g2T1j5h3W2V1N6g2)9J5k6h3y4G2L8g2)9J5c8Y4y4Q4x3V1j5I4P5V1g2d9N6@1S2g2f1@1W2F1c8X3u0V1h3r3b7^5d9g2y4f1h3W2R3H3N6#2)9K6c8Y4m8%4k6q4)9K6c8s2q4A6x3$3t1`.

声明: 文章资源仅作学习交流使用,不得用于商业或者非法用途,请测试后尽快删除,购买正版进行支持

详情请参考d45K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4K6i4K6u0W2K9r3g2^5i4K6u0V1M7X3q4&6M7#2)9J5k6h3y4G2L8g2)9J5c8Y4u0W2L8r3g2S2M7$3g2Q4x3X3c8F1L8%4c8W2M7#2)9J5c8U0W2Q4y4h3j5J5

主要更新如下:

Decompiler增强对Golang的支持

IDA 9.1分析golang程序,函数参数较为丑陋

IDA 9.2分析golang程序,结构清晰明显

UI升级

主要从QT5升级到QT6,受此影响可能导致部分插件不兼容,所以IDA官方提供了QT5兼容层PyQt5 Shims

Decompiler升级

新增Microcode Viewer使用Ctrl-Shift-F8打开,可观察到Decompiler在反汇编和伪代码生成过程中产生的微码

扩展各CPU架构的反汇编指令集

Debugger升级,调试时寄存器窗口信息更加详细美观

开源IDA SDK 2d6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6t1k6i4S2d9j5i4W2K6f1@1q4Q4x3V1k6A6k6r3q4Q4x3X3c8K6k6r3D9`.

运行安装程序后,将keygen脚本拖动到ida目录内,使用--oneshot选项执行一键patch后即可使用

43-ida92-keygen

cfg文件中主要修改以下设置

IDA的注册表键主要修改以下项目,包括指定IDAPython路径, 禁用自动更新, 禁用新版快捷键

使用pyinstaller打包以下初始化脚本为InitIDA.exe, 在IDA.exe所在目录中运行即可

使用python便携版(内嵌版)方便管理和迁移IDAPython环境,并且不修改系统配置

但安装时需要注意直接解压的便携版不包括pip,需要额外安装配置

下载并解压便携版

b50K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2H3P5i4c8Z5L8$3&6Q4x3X3g2G2M7X3N6Q4x3V1k6V1L8%4N6F1L8r3!0S2k6s2y4Q4x3V1k6%4K9h3&6V1L8%4N6K6

下载并执行get-pip脚本

011K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1L8$3!0@1M7%4c8J5j5i4m8Q4x3X3g2H3P5i4m8S2i4K6u0W2K9h3!0Q4x3V1k6Y4k6i4c8Q4x3X3c8H3K9i4m8Q4x3X3g2H3P5b7`.`.

下载后拖动到第1步解压的便携版python文件夹中,并启动cmd运行脚本

安装后会多出Lib和Scripts文件夹,pip.exe便在Scripts中,但此时无法直接使用pip

设置pth文件

打开python311._pth文件,将"import site"的注释取消

之后使用命令验证是否安装成功

如果安装成功则输出如下

如果没有设置._pth文件则会报错"No module named pip",参考fe7K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6N6r3q4U0K9$3!0$3k6i4u0X3L8r3!0%4i4K6u0W2j5$3!0E0i4K6u0r3M7i4g2W2M7%4c8A6L8$3&6K6i4K6u0r3x3K6t1$3x3K6V1H3y4K6c8Q4x3V1k6%4K9s2W2Q4x3X3c8S2L8g2)9J5k6r3W2Q4x3X3c8Y4k6i4c8@1K9h3&6Y4i4K6u0V1K9h3#2H3L8%4u0@1k6i4u0J5L8%4u0Q4x3X3c8F1L8#2)9J5k6r3#2G2k6s2g2D9k6g2)9J5k6r3&6S2L8h3g2V1i4K6u0V1M7r3W2H3i4K6u0V1M7X3W2Y4K9s2c8Q4x3X3c8S2k6Y4c8W2M7W2)9J5k6r3W2F1M7%4c8S2L8r3I4A6L8X3N6Q4x3X3c8H3K9i4l9`.

设置idapython路径

ida虽然从QT5升级为QT6,但为了插件的兼容性,提供了PyQt5 Shims兼容层

详细参考992K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4K6i4K6u0W2K9r3g2^5i4K6u0V1M7X3q4&6M7#2)9J5k6h3y4G2L8g2)9J5c8Y4g2K6k6i4u0Q4x3X3c8Y4N6h3W2V1k6g2)9J5c8Y4m8D9N6h3N6A6L8Y4y4Q4x3V1k6E0K9h3N6J5j5i4c8A6L8X3N6Q4x3X3c8H3P5i4q4@1y4g2)9J5k6r3y4G2k6r3g2Q4x3X3c8@1L8#2)9J5k6s2m8&6M7$3W2V1k6e0j5`.

开启该支持有2种方式:

等待ida检测到不兼容QT6的插件

检测到不兼容的插件时,会弹窗如下,选择Yes即可

手动设置

在ida/cfg/idapython.cfg文件中,修改最后一行的IDAPYTHON_USE_PYQT5_SHIM赋值为1即可

个人使用一段时间ida9.1后,总结出较为核心的几个插件,其余插件根据个人需要选择性安装即可

9.0 SP1还没捂热,就发布了9.1,相比之下9.1修了不少bug,分析程序更快更丝滑,还有signatures-bundle和IDA Feeds可以使用

实测9.0的patch脚本可用于9.1,并且大部分9.0的插件可用于9.1,由于二者配置方法类似便不多赘述

更新部分如下:

初始化IDA

参考Binwalker师傅编写的7.7绿色版的IDA_InitTool

使用python实现禁用IDA自动更新和设置IDAPython路径的功能(默认使用嵌入的python3.11.9)

配置和使用IDA Feeds插件

泄露文件中包括了符号库signatures-bundles-9.1.zip,物尽其用配置了一波该插件

配置和使用IDA MCP插件

实测自动化分析效果和WPeChatGPT差不多,但能看到分析过程,需要注意消耗的token更多

提供配置好的IDA9.1压缩包,初次使用前运行InitIDA.exe后即可使用(WPeChatgpt需要手动配置api和模型)

IDA Professional 9.1.7z 链接: c22K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3j5h3&6Q4x3X3g2T1j5h3W2V1N6g2)9J5k6h3y4G2L8g2)9J5c8Y4y4Q4x3V1j5I4K9p5!0z5c8X3u0H3L8U0k6A6e0%4A6J5x3q4c8g2k6h3f1J5k6o6m8e0f1g2)9K6c8Y4m8%4k6q4)9K6c8s2W2T1K9h3b7`. 提取码: ybid

声明: 文章资源仅作学习交流使用,不得用于商业或者非法用途,请测试后尽快删除,购买正版进行支持

参考Binwalker师傅IDA7.7绿色版的IDA_InitTool.exe

功能为: 修改注册表,实现禁用自动更新和设置IDAPython路径;创建桌面快捷方式

使用pyinstaller打包为InitIDA.exe

运行效果如下

如果只需要修改IDAPython可简化脚本

详情参考官网IDA Feeds

基本使用只能顺序扫描,完全使用支持并行扫描,需要配置以下依赖:

具体步骤:

首先使用idapython安装和激活idalib

使用idapython,指定pip下载idalib/python目录下setup.py指定的内容

IDA-Feeds-下载idalib

下载idafeeds的依赖(RPyc)

requirements.txt:

配置ida_feeds/config.json的flair路径

修改config.sample.json并复制一份命名为config.json即可

下载并解压signatures-bundles-9.1.zip后,将文件夹内的子文件夹符号库复制到~\IDA Professional 9.1\sig文件夹下即可

插件在Edit>plugins>IDA Feeds启动

IDA-Feeds启动插件

使用步骤:

先选择指定符号库,再选择扫描模式

选中符号库的某个符号文件,按ctrl+a选中所有符号,再点击运行探测

按住ctrl,选中所有匹配到的签名,点击Apply signatures

符号恢复效果如下,能恢复很多常见库函数符号

IDA-Feeds-符号恢复效果

参考

[分享]基于mcp-server实现的ida自动化分析

989K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0M7X3g2^5L8$3c8A6j5g2)9J5c8X3W2V1j5g2)9J5k6s2m8J5L8#2)9J5k6r3#2U0M7l9`.`.

能连接或者探测到本地mcp server的任意插件均可

到VSCode的插件商城安装Cline插件后,配置模型和API,可选择自动授权

首先使用idapython下载ida-pro-mcp程序(注意不要和系统python混淆)

之后进入IDAPython的Scripts目录运行ida-pro-mcp.exe(若IDAPython不为系统python则需要手动进入该目录运行)

需要先安装对应插件(如Cline),再运行ida-pro-mcp,否则不会生成配置文件

成功生成配置文件后,到IDA中运行MCP-Server

IDA-MCP-ida-启动mcp-server

如果Cline能检测到server则配置成功

IDA-MCP-Servers

之后提问进行自动化分析

和WPeChatgpt分析结果对比

解决办法: 使用git congig --global --get http.proxy查询网络代理,设置本地代理后即可成功拉取

报错如下:

参考IDA Pro 7.7.220118 (SP1) 全插件绿色版

cfg/ida.cfg

cfg/Chinese.clt

使用了许久的ida7.7想更新到ida9,虽然成功安装并patch但IDAPython环境和插件没有配置好用起来不顺手

本文简单介绍IDA Pro 9.0.241217 SP1的安装步骤,IDAPython的配置,以及常用插件的地址和安装方法

打包了配置好的IDA9 SP1,设置IDAPython路径即可使用,使用方法文末简介

附件:

IDAPlugins.zip

IdaPro9Beta-Keygen-iRabbit.py

IDA Professional 9.0.7z

链接: 6c8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3j5h3&6Q4x3X3g2T1j5h3W2V1N6g2)9J5k6h3y4G2L8g2)9J5c8Y4y4Q4x3V1j5I4e0$3E0o6x3U0p5H3h3p5E0i4d9f1y4I4c8g2x3#2k6W2W2w2x3W2N6D9b7g2)9K6c8Y4m8%4k6q4)9K6c8r3j5&6z5r3V1`.

地址[Disassemblers]IDA Pro 9.0.241217 SP1

参考如下步骤

IDA9-patch

keygen修补成功输出如下,windows平台patch ida.dll和ida32.dll

ida9的新快捷键用起来不习惯, 可在options>shortcuts,取消勾选use new shortcuts使用老快捷键

options>general>Number of opcode bytes, 输入10在大部分情况下够用

灵感来源IDA 9.0.20241216 (SP1)安装教程 由于不想交钱故自己折腾

大部分插件的运行依赖于IDAPython环境,而IDAPython并不神秘,使用官方的Python解释器即可

python目录内是idapython脚本相关模块

PyQt5文件夹内可以发现不同python版本的库(ida插件图形化)

所以ida9的python版本需要在3.8-3.13之间(推荐3.10和3.11)

最初我直接使用ida7.7绿色版的python3.8,大部分插件仍然可以运行,但findcrypt报错

网上冲浪听说ida9使用python 3.11更稳定,故安装该版本,下载后直接运行即可

d1aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2H3P5i4c8Z5L8$3&6Q4x3X3g2G2M7X3N6Q4x3V1k6X3N6s2m8Q4x3V1k6H3P5i4c8Z5L8$3&6Q4x3V1j5K6i4K6u0W2x3e0q4Q4x3X3f1&6i4K6u0r3M7s2W2@1K9r3!0F1i4K6u0V1x3#2)9J5k6e0p5I4i4K6u0W2z5g2)9J5k6r3q4E0k6o6j5@1i4K6u0W2k6i4S2W2

为方便使用我安装到了IDA根目录内并命名为python311(不需要添加到环境变量)

安装完python后,需要手动设置idapython路径,运行ida根目录的idapyswitch即可

可以参考IDA Pro 切换 Python 版本

以下为插件名及其功能介绍

下面简介各插件的地址,功能,安装方法

daaK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6x3y4s2W2K6i4K6u0r3e0r3q4*7P5f1W2p5b7b7`.`.

将LazyIDA.py复制到plugins目录下即可

使用前需要安装keystone-engine和six模块(py3.11自带six无需额外安装)

注意: 是keystone-engine不是keystone

项目地址: cceK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6C8k6i4W2K6N6r3!0F1k6g2)9J5k6r3g2F1k6$3W2F1k6g2)9J5c8X3E0W2P5i4m8S2N6r3y4Z5

适配IDA9的keypatch: https://bbs.kanxue.com/thread-282852.htm

将Keypatch.py复制到plugins目录下即可

176K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6Y4j5h3q4K6k6h3c8W2L8r3g2F1i4K6u0r3M7r3q4@1j5$3S2A6L8X3M7`.

将Patching文件夹和Patching.py复制到plugins目录下即可

使用前需要idapython安装yara-pyhon(注意不是yara)

地址: 172K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6H3L8$3I4&6L8h3!0J5k6W2)9J5c8X3k6A6L8X3c8U0M7Y4W2H3N6q4)9J5k6s2W2S2M7X3p5`.

将findcrypt3.py和findcrypt3.rules复制到ida/plugins目录下即可

注意: 该插件在python3.8环境下无法运行

去除OLLVM混淆,如果安装了Hrtng可以不安装该插件

使用前需要idapython安装z3

下载地址

将d810文件夹和d810.py复制到plugins目录下即可

自动恢复常见函数的枚举

200K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6B7N6h3&6J5L8$3&6Q4x3V1k6S2N6i4c8G2i4K6u0V1k6h3&6#2L8b7`.`.

下载后将项目plugin目录内的所有文件:

enumlib

auto_enum.py

ida-plugin.json

复制到ida/plugins下即可

高亮括号,重定义关键函数声明,栈字符串识别,反ollvm等功能

c68K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6w2j5i4y4H3k6i4u0K6K9%4W2x3j5h3u0Q4x3V1k6Z5M7Y4c8F1k6H3`.`.

下载release包后解压,复制plugins/windows/9.0/hrtng.dll到ida/plugins目录下即可

773K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6Z5k6i4u0G2M7$3W2Q4x3V1k6U0L8r3q4K6M7$3W2F1k6X3!0J5L8h3g2J5

反编译C++时, 可以根据RTTI等信息综合恢复类Class的相关信息,例如继承信息,类名等。

下载release包后将Classinformer64.dll复制到ida/plugins目录下即可

ea4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6V1j5h3&6A6k6$3q4J5k6%4g2Q4x3V1k6V1k6g2u0q4k6X3g2J5k6h3&6U0K9h3&6Y4

调试时使用,追踪栈和寄存器指向的内容

将dereferencing.py和dereferencing文件夹复制到ida/plugins

自动识别结构体,显示C++虚函数,生成函数结构树等

226K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3f1#2x3Y4m8G2K9X3W2W2i4K6u0W2j5$3&6Q4x3V1k6X3L8%4u0#2L8g2)9J5k6i4m8Z5M7q4)9K6c8X3#2G2k6q4)9K6c8s2k6A6k6i4N6@1K9s2u0W2j5h3c8Q4x3U0k6S2L8i4m8Q4x3@1u0@1K9h3c8Q4x3@1b7I4z5e0V1&6z5e0l9#2i4K6t1$3j5h3#2H3i4K6y4n7K9r3W2Y4K9r3I4A6k6$3S2@1i4K6y4p5d9r3g2^5f1X3q4&6M7@1y4G2k6r3g2j5M7r3I4G2M7X3g2J5

4a0K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6w2M7X3W2W2N6s2Z5%4i4K6u0r3d9f1c8m8i4K6u0V1c8r3q4@1j5f1g2^5M7r3!0J5N6q4m8D9N6i4x3`.

shift+e 数据提取强化版,将DataExportPlus.py复制到plugins目录下即可

项目地址fb8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6b7M7U0l9J5x3e0c8Q4x3V1k6X3K9h3&6V1K9r3q4K6K9l9`.`.

该插件可以搜索出被魔改的哈希算法

把findhash.xml和findhash.py复制到plugins目录下即可

项目地址 364K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6i4f1r3g2S2j5$3g2Q4x3X3c8t1j5@1S2Q4x3V1k6i4f1r3g2o6K9r3q4@1c8#2m8f1 该项目基于**Gepetto**

安装插件依赖

依赖文件requirements.txt内容如下

修改WPeChatGPT.py

默认支持OpenAI和DeepSeek模型,修改PLUGIN_NAME和model_api_key即可切换模型

由于OpenAI API不易申请,DeepSeek关闭了申请渠道,故使用火山引擎的API(后文介绍)

使用其他模型需要手动添加以下两个elif分支(根据自己的模型设置)

复制WPeChatGPT.py和Auto-WPeGPT_WPeace到ida/plugins

使用效果如下

该插件使用OpenAI SDK,默认支持OpenAI和DeepSeek模型,使用前需要申请api

推荐火山引擎,每个模型送50万免费token cc6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2$3L8$3I4U0k6h3&6Y4K9h3&6W2i4K6u0W2j5$3!0E0i4K6u0o6 使用时注意token用量,扣钱了阿giao连蛋都不给你补

模型广场中,选择需要的模型,点击立即体验

模型广场

立即体验默认提供GUI界面,选择API接入

API接入

创建API Key,名称任意,创建后复制并保存API Key,后续使用模型依赖该Key(注意不要泄露)

APIKey

之后选择自定义推理接入点>创建推理接入点

创建推理接入点

自行设置接入点名称,模型,确认接入

选择模型

选择模型

创建好后复制模型id和之前的API Key

模型id

填充model_api_key和MODEL后,重启IDA即可使用插件

下载地址[下载]bindiff_binexport for windows

将binexport12_ida64.dll和bindiff8_ida64.dll复制到ida/plugins

或C:\Users\用户名\AppData\Roaming\Hex-Rays\IDA Pro\plugins下即可

同时支持32和64位样本

问题描述: 报错如下

推测是该路径为ida默认的设置路径,ida9.0和ida7.7的设置发生了冲突

备份保存一份7.7的IDA Pro设置后,删除C:\Users\admin\AppData\Roaming\Hex-Rays\IDA Pro\plugins下的文件即可解决报错

但是支持IDA9 SP1的插件没有找到,只有适用于RC1的:4aaK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6*7K9r3g2X3L8%4S2Q4x3V1k6n7K9h3&6V1K9h3k6X3i4K6g2X3k6X3!0J5i4K6g2X3d9f1c8m8z5g2)9J5k6e0l9`.

如果大佬们有适用于SP1的bindiff麻烦分享一下

解压IDA Professional 9.0.7z后,运行根目录的idapyswitch设置idapython路径即可使用

首次打开文件时,会询问是否使用新快捷键,选择No

RevisedShortcut

之后弹出许可证协议,选择Agree

LicenseAgreement

连接ida server更新,直接点ok

STORE_USER_INFO = YES -> NO          // 关闭idb存储用户信息
OPCODE_BYTES = 0 -> 10                   // 反汇编界面显示10字节指令硬编码
INDENTION = 16 -> 0                  // 硬编码和汇编指令的间距设置为0
SHOW_BASIC_BLOCKS = NO -> YES            // 在基本块的末尾生成一个空行
SHOW_XREFS = 2 -> 16                     // 增加交叉引用显示数
SHOW_SOURCE_LINNUM  = NO -> YES      // 显示源码行号
SHOW_SP = NO -> YES                  // 显示SP指针偏移
ENCODING_CULTURES 添加 GB2312: Chinese  // 开启中文字符串显示
STORE_USER_INFO = YES -> NO          // 关闭idb存储用户信息
OPCODE_BYTES = 0 -> 10                   // 反汇编界面显示10字节指令硬编码
INDENTION = 16 -> 0                  // 硬编码和汇编指令的间距设置为0
SHOW_BASIC_BLOCKS = NO -> YES            // 在基本块的末尾生成一个空行
SHOW_XREFS = 2 -> 16                     // 增加交叉引用显示数
SHOW_SOURCE_LINNUM  = NO -> YES      // 显示源码行号
SHOW_SP = NO -> YES                  // 显示SP指针偏移
ENCODING_CULTURES 添加 GB2312: Chinese  // 开启中文字符串显示
# 以下注册表键均位于HKEY_USERS\HKEY_CURRENT_USER\SOFTWARE\Hex-Rays\IDA下
 
# Python3TargetDLL          IDAPython路径
# AutoCheckUpdates -> 0      关闭自动检查更新
# AutoRequestUpdates -> 0    关闭自动请求更新
# AutoUseLumina -> 0     关闭自动使用Lumina
# Use90ShortcutSet -> 0      关闭IDA9的新快捷键,默认使用经典快捷键
# 以下注册表键均位于HKEY_USERS\HKEY_CURRENT_USER\SOFTWARE\Hex-Rays\IDA下
 
# Python3TargetDLL          IDAPython路径
# AutoCheckUpdates -> 0      关闭自动检查更新
# AutoRequestUpdates -> 0    关闭自动请求更新
# AutoUseLumina -> 0     关闭自动使用Lumina
# Use90ShortcutSet -> 0      关闭IDA9的新快捷键,默认使用经典快捷键
import os
import winreg
import win32com.client
 
key_path = r"SOFTWARE\Hex-Rays\IDA"
cwd = os.getcwd()
choice_yes_items=('','y','Y','yes')
 
# 配置IDAPython路径
def set_idapy_path(idapy_path):
    try:
        key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, key_path)
        with key:
            # 存在python3.dll
            idapy_dll_path=os.path.join(idapy_path,"python3.dll")
            print(f"Setting IDAPython path to: {idapy_dll_path}")
            if idapy_dll_path and os.path.isfile(idapy_dll_path):
                winreg.SetValueEx(key, "Python3TargetDLL", 0, winreg.REG_SZ, idapy_dll_path)
                print("Setted IDAPython path successfully.")
        return True
    except Exception as e:
        print(f"Failed to set IDAPython path: {e}")
        return False
     
# 禁用IDA自动更新
def ban_ida_auto_update(disable):
    try:
        key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, key_path)
        with key:
            if disable:
                winreg.SetValueEx(key, "AutoCheckUpdates", 0, winreg.REG_DWORD, 0)
                winreg.SetValueEx(key, "AutoRequestUpdates", 0, winreg.REG_DWORD, 0)
                winreg.SetValueEx(key, "AutoUseLumina", 0, winreg.REG_DWORD, 0)
        print("Disabled IDA auto update successfully.")
        return True
    except Exception as e:
        print(f"Failed to disable IDA auto update: {e}")
        return False
 
# 禁用IDA9快捷键
def ban_ida90_shortcut(unable):
    try:
        key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, key_path)
        with key:
            if unable:
                winreg.SetValueEx(key, "Use90ShortcutSet", 0, winreg.REG_DWORD, 0)
                print("Disabled IDA90 Shortcut Style successfully.")
        return True
    except Exception as e:
        print(f"Failed to set IDA shortcut style: {e}")
        return False
     
# 配置IDA注册表
def set_ida_regs(default):
    if default:
        print("\nSetting IDA Registries...")
        set_idapy_path(os.path.join(cwd, r"python311")) # 默认使用内嵌的python3.11.9
        ban_ida_auto_update(True)
        ban_ida90_shortcut(True)
    else:
        idapy_path=input("\nInput your IDAPython path: ")
        set_idapy_path(idapy_path)
 
        au_choice=input("\nDisable IDA auto update?(Y/N y/n): ").lower()
        if au_choice in choice_yes_items:
            ban_ida_auto_update(True)
 
        sc_choice=input("\nUse old-style shortcut?(Y/N y/n): ").lower()
        if sc_choice in choice_yes_items:
            ban_ida90_shortcut(True)
         
    print("All IDA registry settings are done.")
 
# 创建桌面快捷方式
def create_shortcut(target):
    name="IDA Pro 9.2"
    try:
        # 通过注册表获取Desktop路径
        key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,r"Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders")
        desktop_path, _ = winreg.QueryValueEx(key, "Desktop")
        winreg.CloseKey(key)
        desktop=os.path.expandvars(desktop_path) # 展开可能的环境变量
        #desktop = os.path.join(os.path.expanduser("~"), "Desktop") # 获取当前用户的主目录路径
        shortcut_path = os.path.join(desktop, f"{name}.lnk")
         
        shell = win32com.client.Dispatch("WScript.Shell")
        shortcut = shell.CreateShortcut(shortcut_path)
        shortcut.TargetPath = target
        shortcut.WorkingDirectory = os.path.dirname(target)
        shortcut.Description = "The Interactive Disassembler"
        shortcut.Save()
        print("Created shortcut on Desktop successfully.")
    except Exception as e:
        print("Failed to create a shortcut.", e)
    return True
 
def main():
    print("========================================================================")
    print("         IDA Initilizer created by OrientalGlass (2025-09-13)           ")
    print("========================================================================")
 
    # 构建路径配置
    ida_path = os.path.join(cwd, "ida.exe")          # IDA主程序
 
    # 检测IDA路径
    if os.path.exists(ida_path) ==False:
        print("Error: please run this initilizer in IDA directory")
        return
    else:
        print(f"IDA Path: {ida_path}")
 
    # 主配置流程
    print("\n------------------------------------------------------------")
    choice = input("\nUse default initialization settings?(Y/N y/n): ").lower()
     
    if choice in choice_yes_items:
        set_ida_regs(True)
        create_shortcut(ida_path)
    else:
        # 手动配置模式
        set_ida_regs(False)
        sc_choice = input("\nCreate desktop shortcut?(Y/N y/n): ").lower()
        if sc_choice in choice_yes_items:
            create_shortcut(ida_path)
 
if __name__ == "__main__":
    main()
import os
import winreg
import win32com.client
 
key_path = r"SOFTWARE\Hex-Rays\IDA"
cwd = os.getcwd()
choice_yes_items=('','y','Y','yes')
 
# 配置IDAPython路径
def set_idapy_path(idapy_path):
    try:
        key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, key_path)
        with key:
            # 存在python3.dll
            idapy_dll_path=os.path.join(idapy_path,"python3.dll")
            print(f"Setting IDAPython path to: {idapy_dll_path}")
            if idapy_dll_path and os.path.isfile(idapy_dll_path):
                winreg.SetValueEx(key, "Python3TargetDLL", 0, winreg.REG_SZ, idapy_dll_path)
                print("Setted IDAPython path successfully.")
        return True
    except Exception as e:
        print(f"Failed to set IDAPython path: {e}")
        return False
     
# 禁用IDA自动更新
def ban_ida_auto_update(disable):
    try:
        key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, key_path)
        with key:
            if disable:
                winreg.SetValueEx(key, "AutoCheckUpdates", 0, winreg.REG_DWORD, 0)
                winreg.SetValueEx(key, "AutoRequestUpdates", 0, winreg.REG_DWORD, 0)
                winreg.SetValueEx(key, "AutoUseLumina", 0, winreg.REG_DWORD, 0)
        print("Disabled IDA auto update successfully.")
        return True
    except Exception as e:
        print(f"Failed to disable IDA auto update: {e}")
        return False
 
# 禁用IDA9快捷键
def ban_ida90_shortcut(unable):
    try:
        key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, key_path)
        with key:
            if unable:
                winreg.SetValueEx(key, "Use90ShortcutSet", 0, winreg.REG_DWORD, 0)
                print("Disabled IDA90 Shortcut Style successfully.")
        return True
    except Exception as e:
        print(f"Failed to set IDA shortcut style: {e}")
        return False
     
# 配置IDA注册表
def set_ida_regs(default):
    if default:
        print("\nSetting IDA Registries...")
        set_idapy_path(os.path.join(cwd, r"python311")) # 默认使用内嵌的python3.11.9
        ban_ida_auto_update(True)
        ban_ida90_shortcut(True)
    else:
        idapy_path=input("\nInput your IDAPython path: ")
        set_idapy_path(idapy_path)
 
        au_choice=input("\nDisable IDA auto update?(Y/N y/n): ").lower()
        if au_choice in choice_yes_items:
            ban_ida_auto_update(True)
 
        sc_choice=input("\nUse old-style shortcut?(Y/N y/n): ").lower()
        if sc_choice in choice_yes_items:
            ban_ida90_shortcut(True)
         
    print("All IDA registry settings are done.")
 
# 创建桌面快捷方式
def create_shortcut(target):
    name="IDA Pro 9.2"
    try:
        # 通过注册表获取Desktop路径
        key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,r"Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders")
        desktop_path, _ = winreg.QueryValueEx(key, "Desktop")

传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2025-11-27 13:26 被东方玻璃编辑 ,原因: 修复文章附件链接
上传的附件:
收藏
免费 123
支持
分享
最新回复 (114)
雪    币: 4488
活跃值: (4982)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
感谢分享。
2025-2-16 20:45
0
雪    币: 14593
活跃值: (7244)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

又可以好好的玩了,多谢楼主分享哟
2025-2-16 20:54
0
雪    币: 9
活跃值: (591)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
当对比 xxxx.i64 时,IDA Pro 9.0.241217 SP1 用 bindiff8 异常的一个解决方案是:在安装目录下,将 ida.exe 拷贝一份重命名为 ida64.exe
2025-2-16 21:31
0
雪    币: 6485
活跃值: (7331)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
5
keepingrun 当对比 xxxx.i64 时,IDA Pro 9.0.241217 SP1 用 bindiff8 异常的一个解决方案是:在安装目录下,将 ida.exe 拷贝一份重命名为 ida64.exe

复制了没有解决,启动ida时便报错找不到指定模块,请问师傅这个情况如何处理

2025-2-16 21:41
0
雪    币: 551
活跃值: (410)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
bindiff8可以试试https://bbs.kanxue.com/thread-283804.htm这个帖子下的,用着感觉没问题(?)
2025-2-17 04:03
0
雪    币: 216
活跃值: (56)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感谢分享。
2025-2-17 09:39
0
雪    币: 9
活跃值: (591)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
东方玻璃 复制了没有解决,启动ida时便报错找不到指定模块,请问师傅这个情况如何处理
大佬,这个问题,我也没解决,目前是加载只有不带 "64" 的 dll 正常。我上面的回复有误,应该是 IDA Pro 9.0.241217 SP1 反汇编生成的 xxxx.i64 在使用 bindiff8 进行补丁对比时,出现异常,可以在安装目录下,将 ida.exe 拷贝一份重命名为 ida64.exe,就可以正常进行补丁对比。
2025-2-17 11:39
0
雪    币: 6485
活跃值: (7331)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
9
浮岸 bindiff8可以试试https://bbs.kanxue.com/thread-283804.htm这个帖子下的,用着感觉没问题(?)
之前用支持rc1的不行,这个可以使用了,谢谢师傅
2025-2-17 13:32
0
雪    币: 6485
活跃值: (7331)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
10
keepingrun 大佬,这个问题,我也没解决,目前是加载只有不带 "64" 的 dll 正常。我上面的回复有误,应该是 IDA Pro 9.0.241217 SP1 反汇编生成的 xxxx.i64 ...
谢谢师傅,另一个师傅提供的https://bbs.kanxue.com/thread-283804.htm也可以试试,我这边直接把两个dll复制到plugins,不需要复制ida64.exe也可以使用,实测同时支持32/64位样本
2025-2-17 13:33
1
雪    币: 2553
活跃值: (3439)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
点个赞, keystone那个我当初好像也被坑过
2025-2-17 17:25
0
雪    币: 4932
活跃值: (2230)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
感谢分享宝贵的经验。
2025-2-18 09:01
0
雪    币: 1277
活跃值: (6658)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
13

挺好的

主要是收集了不少插件可以直接用。非常感谢楼主。

最后于 2025-2-18 13:41 被IamHuskar编辑 ,原因:
2025-2-18 13:37
2
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
师傅,我输入idapyswitch.exe --force-path ./python311/python3.dll之后没有任何反应。有什么解决办法吗?
2025-2-18 15:45
0
雪    币: 6485
活跃值: (7331)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
15
da1sy 师傅,我输入idapyswitch.exe --force-path ./python311/python3.dll之后没有任何反应。有什么解决办法吗?
没有输出是正常的,ida分析样本时可以看output框的python版本是否正确
2025-2-18 16:52
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
好的,感谢师傅
2025-2-19 08:55
0
雪    币: 4595
活跃值: (5813)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
17
感谢师傅
2025-2-23 15:25
0
雪    币: 426
活跃值: (1896)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
a 64-bit moudule has been detected  运行ida.exe会提示这个 这是什么意思呢
2025-2-23 16:45
1
雪    币: 6485
活跃值: (7331)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
19
Je2em1ah a 64-bit moudule has been detected 运行ida.exe会提示这个 这是什么意思呢
检测到加载的样本是64位的
2025-2-23 17:05
0
雪    币: 30
活跃值: (1478)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
20
请问DeepSeek 接入之后 可以应用在哪些方面,有没有实际应用的例子
2025-2-23 20:42
0
雪    币: 6485
活跃值: (7331)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
21
uvbs 请问DeepSeek 接入之后 可以应用在哪些方面,有没有实际应用的例子
仅作辅助分析,例如分析函数功能,推测程序整体功能,实测手动恢复部分符号后辅助分析效果更好
2025-2-23 21:23
0
雪    币: 418
活跃值: (351)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
感谢大佬分享~非常非常的好
2025-2-27 08:53
0
雪    币: 4289
活跃值: (6230)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
23
接入AI,分析准确吗
2025-3-3 09:48
0
雪    币: 6485
活跃值: (7331)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
24
badboyl 接入AI,分析准确吗
辅助用,不好说准不准
2025-3-3 10:00
0
雪    币: 51
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
大佬,能打包一份,发个网盘吗?
2025-3-3 10:15
0
游客
登录 | 注册 方可回帖
返回