首先下载Anacoda工具,该工具用于管理本地多版本python
https://www.anaconda.com
安装后将绿色版ida自带python拷贝到Anacoda虚拟环境目录下
反编译查看吾爱给的IDA初始化工具,实际上关键步骤就是设置了IDA的注册表,设置几个IDA关键键值。关闭自动请求更新值,将Python虚拟机dll添加到Python3TargetDLL子键下
查看注册表几个关键字段值:
AutoCheckUpdates 自动更新检查
AutoRequestUpdates 自动请求更新(这就是所谓的断IDA的局域网)
AutoUseLumina 自动使用Lumina服务器
DefaultDebuggers 默认本地调试器
Python3TargetDLL IDA从哪里寻找python环境目录,我这里已经改成了Anacoda下的虚拟目录,这个就是idaswitch.exe切换python环境所做的事,修改的注册表键值指向对应环境的python虚拟机dll
进入IDA自带的python目录下的Scripts子目录,将二进制文件中的python目录修改。所有的python移植都有这种通病,需要手动修改Script目录下的二进制文件才能做到移植。如果不改就无法使用pip等Script下工具
删除IDA目录下的python38目录,保留python目录。python目录下存放着ida插件相关python文件
启动anacoda并激活ida自带python查看是否移植成功。虚拟环境名就是envs下对应python的目录名,我这里为了方便将目录改为py38。
conda activate py38
pip list
可以看到成功激活ida自带的python环境,pip list成功代表pip移植成功,但这是这么做还是会产生其他问题,建议使用本机自身的python环境
完美多环境配置方法
首先安装对应python版本的Anacoda,最新的Anacoda自带python3.9.IDA7.7绿色版本会出问题,建议安装历史版本的Anacoda,或者自己创建一个python3.8.10的虚拟环境
conda create -n py38 python=3.8.10
conda activate py38
不要忘记修改IDA虚拟机注册表,指向自己用的python环境。吾爱破解里面的swtich ida python程序就是修改了这个注册表键值
使用pip list手动安装所有idapython所需的模块
certifi==2021.10.8
charset-normalizer==2.0.12
idna==3.3
keystone-engine==0.9.2
requests==2.27.1
setuptools==61.0.0
six==1.16.0
urllib3==1.26.9
wheel==0.37.1
yara-python==4.2.0
由于conda配置PYTHONHOME变量会产生冲突,建议使用BAT脚本启动IDA。只需要将环境变量修改成正确的python3.8环境即可
@set path=F:xxxxAnaconda;F:xxxAnacondaScripts;F:xxxxAnacondaLibrarybin;F:xxxxAnacondaLib;F:xxxxAnacondaDLLs;F:xxxxIDA_Pro_7.7python3;%path%;
@set PYTHONPATH=F:xxxxAnacondaLib;F:xxxxAnacondaDLLs;F:xxxxAnacondaLiblib-tk;
@start F:xxxIDA_Pro_7.7ida.exe
接下来删除IDA自带python即可,这样我们下载python模块就无需指定-m参数,方便了许多
仍然可以正常启动IDA,完美解决多环境python
这就是这篇的全部内容。
原文始发于微信公众号(安全狗的自我修养):逆向实战3-配置IDAPython多版本python环境
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论