学逆向论坛

找回密码
立即注册

只需一步,快速开始

发新帖

2万

积分

41

好友

1157

主题
发表于 2020-12-15 22:04:46 | 查看: 2495| 回复: 4
[LEAKED] IDA Pro 7.5 + HexRays (x86/x64/ARM/ARM64)
Happy New Year!

Part1 (IDA PRO 7.5 (x86, x64, ARM, ARM64).7z.001): https://www.sendspace.com/file/gf62hi
Part2 (IDA PRO 7.5 (x86, x64, ARM, ARM64).7z.002): https://www.sendspace.com/file/5czov8

IDA Pro 7.5 + HexRays (x86/x64/ARM/ARM64)

 IDA Pro 7.5 + HexRays (x86/x64/ARM/ARM64)
原贴:https://forum.reverse4you.org/t/ ... x64-arm-arm64/12220
绿色版解压即用,注意路径不要有中文,安全性未知,建议虚拟机运行

IDA Pro 7.5 + HexRays (x86/x64/ARM/ARM64)

 IDA Pro 7.5 + HexRays (x86/x64/ARM/ARM64)
游客,如果您要查看本帖隐藏内容请回复

温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的认可,还可以获得学币奖励,请尊重他人的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
论坛交流群:672619046
发表于 2020-12-17 14:11:07
IDA7.5 启动基础配置
摘要:文本以解决IDA7.5的启动为问题导向。相应IDA7.5版本请购买官方正版或渠道测试版。

前言:
    IDA7.5的安装路径不建议有非英文字符;空格一般不影响IDA的运行,但若IDASDK的放置路径有空格,可能会在开发native插件时带来额外的配置麻烦,这时一般在编译配置路里给带空格的路径加上双引号【“”】可解决。IDA7.0、IDA7.2、IDA7.5的测试样例都是64位的,所以python和涉及的第三方都需要是64位的安装版。

一、官方说明
    IDA7.5目录下README_python3.txt文件已经说得比较清楚。
1
2
3
4
5
6
7
8
9
目的是让IDA找到[lib]python.[dll|so|dylib],大意是:
1、IDA7.5默认使用Python3.x,除非下述目录有use_python2文件存在,这时使用Python2.7
    * IDA's install path:  path/to/ida_install/python/use_python2
    * The 'IDAUSR' directory:
       +  ~/.idapro/python/use_python2 (on Linux/OSX)
       + %APPDATA%\Hex-Rays\IDA Pro\python\use_python2 (on Windows)
       + [...or any other directory if the environment variable $IDAUSR is set
2、Python2只支持一个版本,即2.7版;Python3.x则支持多个x版本,
    这时候需要运行IDA7.5目录下官配的idapyswitch.exe进行选择


二、启动配置
    如果修改系统全局环境变量,可能会影响其他版本的IDA或影响其他软件的配置,为了使得各个版本的IDA和其他软件都相安无事,
一直以来都通过批文件bat简单配置需要的环境然后间接启动IDA。

1、IDA7.0 32-bit-addr和Anaconda2的启动配置7032.bat文件内容如下,
    (1.1)文件位于IDA7.0目录下,其快捷方式位置随意,如桌面。
    (1.2)因为我给Anaconda2安装的一些模块使用了graphviz,所以path多了自己编译的graphviz路径
    (1.3)若是其他的python2,把其中的【D:\ProgramData\Anaconda2】替换即可
1
2
3
4
@set path=D:\ProgramData\graphviz_my\bin;%path%
@set path=D:\ProgramData\Anaconda2;D:\ProgramData\Anaconda2\Scripts;D:\ProgramData\Anaconda2\Library\bin;D:\ProgramData\Anaconda2\Lib;D:\ProgramData\Anaconda2\DLLs;D:\Program Files\IDA 7.0\python;%path%
@set PYTHONPATH=D:\ProgramData\Anaconda2\Lib;D:\ProgramData\Anaconda2\DLLs;D:\ProgramData\Anaconda2\Lib\lib-tk;
@start ida.exe

2、IDA7.0 64-bit-addr和Anaconda2的启动配置7064.bat文件内容如下,
    同理,只是把ida.exe改为ida64.exe
1
2
3
4
@set path=D:\ProgramData\graphviz_my\bin;%path%
@set path=D:\ProgramData\Anaconda2;D:\ProgramData\Anaconda2\Scripts;D:\ProgramData\Anaconda2\Library\bin;D:\ProgramData\Anaconda2\Lib;D:\ProgramData\Anaconda2\DLLs;D:\Program Files\IDA 7.0\python;%path%
@set PYTHONPATH=D:\ProgramData\Anaconda2\Lib;D:\ProgramData\Anaconda2\DLLs;D:\ProgramData\Anaconda2\Lib\lib-tk;
@start ida64.exe


IDA7.2的启动配置与IDA7.0的启动配置基本相同,python相关的路径设置不变。
【D:\Program Files\IDA 7.0\python】改为【D:\Program Files\IDA 7.2\python】

3、IDA7.2 32-bit-addr和Anaconda2的启动配置7232.bat文件内容如下,
    (1.1)文件位于IDA7.2目录下,其快捷方式位置随意,如桌面。
    (1.2)因为我给Anaconda2安装的一些模块使用了graphviz,所以path多了自己编译的graphviz路径
    (1.3)若是其他的python2,把其中的【D:\ProgramData\Anaconda2】替换即可
1
2
3
4
@set path=D:\ProgramData\graphviz_my\bin;%path%
@set path=D:\ProgramData\Anaconda2;D:\ProgramData\Anaconda2\Scripts;D:\ProgramData\Anaconda2\Library\bin;D:\ProgramData\Anaconda2\Lib;D:\ProgramData\Anaconda2\DLLs;D:\Program Files\IDA 7.2\python;%path%
@set PYTHONPATH=D:\ProgramData\Anaconda2\Lib;D:\ProgramData\Anaconda2\DLLs;D:\ProgramData\Anaconda2\Lib\lib-tk;
@start ida.exe

4、IDA7.2 64-bit-addr和Anaconda2的启动配置7264.bat文件内容如下,
    同理,只是把ida.exe改为ida64.exe
1
2
3
4
@set path=D:\ProgramData\graphviz_my\bin;%path%
@set path=D:\ProgramData\Anaconda2;D:\ProgramData\Anaconda2\Scripts;D:\ProgramData\Anaconda2\Library\bin;D:\ProgramData\Anaconda2\Lib;D:\ProgramData\Anaconda2\DLLs;D:\Program Files\IDA 7.2\python;%path%
@set PYTHONPATH=D:\ProgramData\Anaconda2\Lib;D:\ProgramData\Anaconda2\DLLs;D:\ProgramData\Anaconda2\Lib\lib-tk;
@start ida64.exe

对于python2,IDA7.5的启动配置与IDA7.0的启动配置基本相同,python相关的路径设置不变。
A、【D:\Program Files\IDA 7.0\python】改为【D:\Program Files\IDA 7.5\python\2】,注意后面的子目录“2”
B、我们增加了use_python2文件生成命令【echo . > "D:\Program Files\IDA 7.5\python\use_python2"】,
    user_python2文件可以生成在上面【一】官方说明提到的任意一个路径,这里放在IDA7.5目录下的python目录中,
    请根据IDA7.5的目录按实际情况修改生成命令

5、IDA7.5 32-bit-addr和Anaconda2的启动配置7532_27.bat文件内容如下,
    (1.1)文件位于IDA7.5目录下,其快捷方式位置随意,如桌面。
    (1.2)因为我给Anaconda2安装的一些模块使用了graphviz,所以path多了自己编译的graphviz路径
    (1.3)若是其他的python2,把其中的【D:\ProgramData\Anaconda2】替换即可
1
2
3
4
5
@set path=D:\ProgramData\graphviz_my\bin;%path%
@set path=D:\ProgramData\Anaconda2;D:\ProgramData\Anaconda2\Scripts;D:\ProgramData\Anaconda2\Library\bin;D:\ProgramData\Anaconda2\Lib;D:\ProgramData\Anaconda2\DLLs;D:\Program Files\IDA 7.5\python\2;%path%
@set PYTHONPATH=D:\ProgramData\Anaconda2\Lib;D:\ProgramData\Anaconda2\DLLs;D:\ProgramData\Anaconda2\Lib\lib-tk;
@echo . > "D:\Program Files\IDA 7.5\python\use_python2"
@start ida.exe

6、IDA7.5 64-bit-addr和Anaconda2的启动配置7564_27.bat文件内容如下,
    同理,只是把ida.exe改为ida64.exe
1
2
3
4
5
@set path=D:\ProgramData\graphviz_my\bin;%path%
@set path=D:\ProgramData\Anaconda2;D:\ProgramData\Anaconda2\Scripts;D:\ProgramData\Anaconda2\Library\bin;D:\ProgramData\Anaconda2\Lib;D:\ProgramData\Anaconda2\DLLs;D:\Program Files\IDA 7.5\python\2;%path%
@set PYTHONPATH=D:\ProgramData\Anaconda2\Lib;D:\ProgramData\Anaconda2\DLLs;D:\ProgramData\Anaconda2\Lib\lib-tk;
@echo . > "D:\Program Files\IDA 7.5\python\use_python2"
@start ida64.exe


对于python3,IDA7.5的启动配置与IDA7.0的启动配置基本相同,python相关的路径设置根据实际安装路径配置。
A、【D:\Program Files\IDA 7.0\python】改为【D:\Program Files\IDA 7.5\python\3】,注意后面的子目录“3”
B、我们增加了use_python2文件删除命令【@del "D:\Program Files\IDA 7.5\python\use_python2"】,
    请根据IDA7.5的目录按实际情况修改删除命令
C、由于是python3,这里需要多一步前面【一】官方说明的使用官方自带的idapyswitch.exe选择系统里已经存在的心中嘱意的python3.x版本,
    例如下述cmd中在IDA7.5目录下运行idapyswitch.exe,列出了系统有的几个版本,有py39,py38,微软IDE某年月装的py36等,这里选择1.
    其实际是patch了【D:\Program Files\IDA 7.5\python\3\PyQt5\sip.pyd】来选中我们嘱意的版本。
    python3配置必执行配置命令,除非版本与官方sip.pyd选中的版本相同,目测官方选的是py38。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(base) D:\Program Files\IDA 7.5>idapyswitch.exe
Checking installs from "Python Software Foundation"
Checking "Python 3.6 (64-bit)" (3.6)
Found: "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\" (version: 3.6.6 ('3.6.6150.1013'))
Checking installs from "Continuum Analytics, Inc."
Checking "Anaconda 5.2.0" (3.6)
Found: "D:\ProgramData\Anaconda3" (version: 3.6.5 ('3.6.5150.1013'))
Checking "Anaconda 2020.07" (3.8)
Found: "C:\py38_x86_64\anaconda3" (version: 3.8.3 ('3.8.3150.1013'))
Checking installs from "Python Software Foundation"
Checking "Python 3.6 (64-bit)" (3.6)
Found: "D:\ProgramData\Python36_amd64\" (version: 3.6.7 ('3.6.7150.1013'))
Checking "Python 3.9 (64-bit)" (3.9)
Found: "C:\Python39-64\" (version: 3.9.0 ('3.9.101.1013'))
The following Python installations were found:
    #0: 3.9.0 ('3.9.101.1013') (C:\Python39-64\python3.dll)
    #1: 3.8.3 ('3.8.3150.1013') (C:\py38_x86_64\anaconda3\python3.dll)
    #2: 3.6.7 ('3.6.7150.1013') (D:\ProgramData\Python36_amd64\python3.dll)
    #3: 3.6.6 ('3.6.6150.1013') (C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python3.dll)
    #4: 3.6.5 ('3.6.5150.1013') (D:\ProgramData\Anaconda3\python3.dll)
Please pick a number between 0 and 4 (default: 0)
1
Applying version 3.8.3 ('3.8.3150.1013')

然后还是正常配置我们的启动配置

7、IDA7.5 32-bit-addr和Anaconda3的启动配置7532_38.bat文件内容如下,
    (1.1)文件位于IDA7.5目录下,其快捷方式位置随意,如桌面。
    (1.2)因为我给Anaconda2安装的一些模块使用了graphviz,所以path多了自己编译的graphviz路径
    (1.3)若是其他的python2,把其中的【C:\py38_x86_64\anaconda3】替换即可
1
2
3
4
@del "D:\Program Files\IDA 7.5\python\use_python2"
@set path=C:\py38_x86_64\anaconda3;C:\py38_x86_64\anaconda3\Scripts;C:\py38_x86_64\anaconda3\Library\bin;C:\py38_x86_64\anaconda3\Lib;C:\py38_x86_64\anaconda3\DLLs;D:\Program Files\IDA 7.5\python\3;%path%
@set PYTHONPATH=C:\py38_x86_64\anaconda3\Lib;C:\py38_x86_64\anaconda3\DLLs;C:\py38_x86_64\anaconda3\Lib\lib-tk;
@start ida.exe

8、IDA7.5 64-bit-addr和Anaconda3的启动配置7564_38.bat文件内容如下,
    同理,只是把ida.exe改为ida64.exe
1
2
3
4
@del "D:\Program Files\IDA 7.5\python\use_python2"
@set path=C:\py38_x86_64\anaconda3;C:\py38_x86_64\anaconda3\Scripts;C:\py38_x86_64\anaconda3\Library\bin;C:\py38_x86_64\anaconda3\Lib;C:\py38_x86_64\anaconda3\DLLs;D:\Program Files\IDA 7.5\python\3;%path%
@set PYTHONPATH=C:\py38_x86_64\anaconda3\Lib;C:\py38_x86_64\anaconda3\DLLs;C:\py38_x86_64\anaconda3\Lib\lib-tk;
@start ida64.exe


最后,如果IDA7.0、IDA7.2、IDA7.5都齐全,大概桌面有这八个双击启动文件的快捷方式:

463990_KCQAMUX8Q3XRKBU.jpg
463990_MEPKNAJHWSSDDSK.jpg


三、第三方模块的配置
    一般unicorn、capstone、keystone等都是属于python的配置,与ida无关。
    qiling框架如果不使用IDA相关的操作,也与ida无关,可以根据python3独立安装配置。

(3.1)ipyida
    官方安装说明也简单,一键安装,就是在启动IDA7.5后,在IDAPython里执行一键安装命令
    (3.1.1.1)python2
1
import urllib.request; exec(urllib.request.urlopen('https://github.com/eset/ipyida/raw/stable/install_from_ida.py').read())

    (3.1.1.2)python3
1
import urllib.request; exec(urllib.request.urlopen('https://github.com/eset/ipyida/raw/stable/install_from_ida.py').read())

一键命令的核心操作实际就是【pip install ipyida】和【复制 ipyida_plugin_stub.py文件到IDA7.5的plugins目录中,其在plugins目录中重命名为ipyida.py】

(3.1.2)windows的安装可能会遇到的一些问题,没有遇到,则忽略
    (3.1.2.1)NotImplementedError(这应该属于jupyter的bug)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  File "C:\py38_x86_64\anaconda3\Lib\asyncio\events.py", line 501, in add_reader
    raise NotImplementedError
NotImplementedError

app.shell.set_completer_frame()
AttributeError: 'NoneType' object has no attribute 'set_completer_frame'

解决办法:
在tornado\platform\asyncio.py文件中,在import asyncio之后添加下述修复代码,如(C:\py38_x86_64\anaconda3\Lib\site-packages\tornado\platform\asyncio.py)

import sys
if sys.platform == 'win32':
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

如何定位asyncio位置?
简单运行python,然后即可查阅
import asyncio
print(asyncio.__file__)

463990_PTEKD7CDGWTTK8P.jpg
    (3.1.2.2)【IDA 7.5/plugins/ipyida_plugin_stub.py】或【IDA 7.5/plugins/ipyida.py】加载失败问题:encoding declaration in Unicode string,如
    一般是使用IDA7.5的python2时触发此问题,python2和python3时独立通过pip install ipyida的,但需要共享plugins\ipyida.py
1
2
3
4
5
6
D:\Program Files\IDA 7.5\plugins\ipyida_plugin_stub.py: encoding declaration in Unicode string (D:/Program Files/IDA 7.5/plugins/ipyida_plugin_stub.py, line 0)
Traceback (most recent call last):
  File "D:\Program Files\IDA 7.5\python\2\ida_idaapi.py", line 643, in IDAPython_ExecScript
    code = compile(raw.decode(encoding), script, 'exec')
  File "D:/Program Files/IDA 7.5/plugins/ipyida_plugin_stub.py", line 0
SyntaxError: encoding declaration in Unicode string

要实现python2和python3共享plugins\ipyida.py,则对plugins\ipyida.py删除首行的encoding声明,并去掉Author作者的特殊字符即可。
1
2
3
4
通过pip安装的ipyida,可通过
import ipyida
print(ipyida.__file__)
查询对应python安装的ipyida目录下的ipyida_plugin_stub.py,复制一份到plugins\ipyida.py即可,然后做下图修改

463990_STTMB2H75W8TDNA.jpg
    (3.1.2.3)ipyida的from PyQt5 import QtCore, QtSvg, QtWidgets, QtGui, QtPrintSupport问题,此问题一般是早期版本的python2触发
        因为ipyida比较新,要求qtconsole>=4.6,而最新的5.0又对python2不友好(没有提供相应版本)所以高不成,低不就的错误。
        一般通过pip uninstall qtconsole,重新装各python2友好的最高版,官方最后支持python2的是4.7.7。
1
2
3
4
5
6
通过curl或直接下载qtconsole-4.7.7-py2.py3-none-any.whl
curl https://files.pythonhosted.org/packages/c1/35/0479d9707e3c459901a64dd49843b2f06a65a647dc2bcee7b8bfe3560da1/qtconsole-4.7.7-py2.py3-none-any.whl -oqtconsole-4.7.7-py2.py3-none-any.whl
然后安装
pip install qtconsole-4.7.7-py2.py3-none-any.whl
最后测试
from PyQt5 import QtCore, QtSvg, QtWidgets, QtGui, QtPrintSupport

题外,一般不要尝试将ipyida装到7.0或7.2版本,本身ipyida是针对7.4以上的,7.4以下可考虑ida_ipython。
    (3.2)sark
python3 安装
1
2
3
git clone https://github.com/tmr232/Sark.git
cd Sark
python setup.py install

sark最新支持IDA7.4以上,但不要尝试在IDA7.5的python2中使用sark,api不兼容。
一般python2使用sark,就在IDA7.4以下版本的IDA,而python3使用sark,就在IDA7.4以上。

最后,IDA7.5的python2的配置虽然有提供参考,应该作为备用缓解使用。
建议在IDA7.4以上版本积极拥抱python3,而在IDA7.4以下版本怀旧python2.

发表于 2020-12-16 11:51:03
支持学逆向论坛,资源不错!
发表于 2021-1-8 00:06:15
感谢楼主分享ida
发表于 2022-4-22 20:59:46
下载一个,谢谢

小黑屋|手机版|站务邮箱|学逆向论坛 ( 粤ICP备2021023307号 )|网站地图

GMT+8, 2024-3-29 16:31 , Processed in 1.116724 second(s), 60 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表