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后即可使用
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指定的内容
下载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启动
使用步骤:
先选择指定符号库,再选择扫描模式
选中符号库的某个符号文件,按ctrl+a选中所有符号,再点击运行探测
按住ctrl,选中所有匹配到的签名,点击Apply signatures
符号恢复效果如下,能恢复很多常见库函数符号
参考
[分享]基于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
如果Cline能检测到server则配置成功
之后提问进行自动化分析
和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
参考如下步骤
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 Key,名称任意,创建后复制并保存API Key,后续使用模型依赖该Key(注意不要泄露 )
之后选择自定义推理接入点>创建推理接入点
自行设置接入点名称,模型,确认接入
选择模型
创建好后复制模型id和之前的API Key
填充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
之后弹出许可证协议,选择Agree
连接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 // 开启中文字符串显示
import os
import winreg
import win32com.client
key_path = r"SOFTWARE\Hex-Rays\IDA"
cwd = os.getcwd()
choice_yes_items=('','y','Y','yes')
def set_idapy_path(idapy_path):
try:
key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, key_path)
with key:
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
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
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
def set_ida_regs(default):
if default:
print("\nSetting IDA Registries...")
set_idapy_path(os.path.join(cwd, r"python311"))
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:
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)
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")
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')
def set_idapy_path(idapy_path):
try:
key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, key_path)
with key:
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
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
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
def set_ida_regs(default):
if default:
print("\nSetting IDA Registries...")
set_idapy_path(os.path.join(cwd, r"python311"))
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:
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
被东方玻璃编辑
,原因: 修复文章附件链接
上传的附件: