抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

下载与安装

根据网上泄露的资源,这里下载到的是 IDA Pro 7.6.210427 SP1 x64 + Hexrays, Hexarm & Hexmips Decompilers.7z

压缩包内有两个文件夹,一个是 Other,另一个是 Software。将 Software 中的内容全部解压出来,IDA 的本体就可以使用了。

Python 配置

修改 IDA 文件

IDA 默认不支持 Python 3.9 版本。在压缩包的 Others 文件夹下有一个 ida76sp1_python39_win 目录。将其中的内容拖动到根目录,会有文件覆盖提示,依次覆盖即可。

下载 Python 本体

不建议使用系统 Python,容易引起环境之间的干扰。而且系统 Python 占用空间非常大,排起错来非常麻烦。

压缩包内并没有放置 Python 的文件,所以需要自行到官网下载。下载时选择 Windows embeddable package (64-bit)。这里直接下载 python-3.9.8-embed-amd64.zip

注:

  • 经过测试,IDA 32位版也可以正常使用 Python 64位版。
  • 经过测试,Python 3.8 也可以正常使用。

修改路径

  1. 下载后解压到根目录下,与 python 同目录,重命名文件夹为 python39

  2. 进入注册表 计算机\HKEY_CURRENT_USER\Software\Hex-Rays\IDA\,新建(修改) Python3TargetDLL 使其值为 C:\Program Files\IDA\python39\python39.dll

  3. 这个时候打开根目录下的 idapyswitch.exe 可以看到 IDA 已经选中了下载的 Python。打开 IDA 也不会弹出错误。

安装 pip

默认的 Python 是不带 pip 的。

  1. 先去官网下载 get-pip.py。为了方便起见,直接放到 python39 目录下。

  2. python39 目录下打开终端,运行 ./python.exe get-pip.py

    必须输入 ./ 否则会调用系统安装的 Python。

  3. 这个时候尝试运行 pip 会提示找不到模块。排查后发现是找不到路径,所以还需要配置库文件的路径。

  4. python39 目录下存在 python39._pth 的文件,用记事本打开后,新增一行指向库文件。这里新增 C:\Program Files\IDA\python39\Lib\site-packages

  5. 重新打开 pip 就可以正常使用了。

IPyIDA 插件安装

IPyIDA 可以引入类似于 Jupyter Notebook 的功能,在逆向时十分有用。

根据官方指引,在 IDA 运行如下命令即可。

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

但是总是会安装不成功。所以需要手动安装。

观察脚本,可以发现总共做了三件事:安装 pip,安装 IPyIDA,安装插件。

  1. 安装 pip 上面已经安装了。

  2. 安装 IPyIDA 直接执行 ./python -m pip install ipyida

  3. 安装插件调用原脚本中 108行 至结尾。

    if not os.path.exists(idaapi.get_user_idadir()):
        os.makedirs(idaapi.get_user_idadir(), 0o755)
    
    ida_python_rc_path = os.path.join(idaapi.get_user_idadir(), "idapythonrc.py")
    rc_file_content = ""
    
    if os.path.exists(ida_python_rc_path):
        with open(ida_python_rc_path, "r") as rc:
            rc_file_content = rc.read()
    
    if "# BEGIN IPyIDA loading" in rc_file_content:
        print("[.] Old IPyIDA loading script present in idapythonrc.py. Removing.")
        in_ipyida_block = False
        for line in fileinput.input(ida_python_rc_path, inplace=1, backup='.ipyida_old'):
            if line.startswith("# BEGIN IPyIDA loading code"):
                in_ipyida_block = True
            elif line.startswith("# END IPyIDA loading code"):
                in_ipyida_block = False
            elif not in_ipyida_block:
                sys.stdout.write(line)
    
    ipyida_stub_target_path = os.path.join(idaapi.get_user_idadir(), "plugins", "ipyida.py")
    if not os.path.exists(os.path.dirname(ipyida_stub_target_path)):
        os.makedirs(os.path.dirname(ipyida_stub_target_path), 0o755)
    
    # Make sure ipyida module is not the ipyida.py in the plugins folder, otherwise
    # pkg_resources will try to get file from there. This happends when package is
    # uninstalled, but ipyida.py is still in the plugin folder.
    if 'ipyida' in sys.modules:
        del sys.modules['ipyida']
    
    shutil.copyfile(
        pkg_resources.resource_filename("ipyida", "ipyida_plugin_stub.py"),
        ipyida_stub_target_path
    )
    print("[+] ipyida.py added to user plugins")
    
    idaapi.load_plugin(ipyida_stub_target_path)
    
    _ida_version = pkg_resources.parse_version(idaapi.get_kernel_version())
    
    if os.name == 'nt' and _ida_version < pkg_resources.parse_version("7.4"):
        # No party for Windows with old IDA
        print("[+] IPyIDA Installation successful. Use <Shift+.> to open the console.")
    else:
        print("[] IPyIDA Installation successful. Use <Shift+.> to open the console.")
    

    或者直接在 IDA 中执行

    import urllib.request; exec(urllib.request.urlopen('https://gcore.jsdelivr.net/gh/kazutoiris/ipyida@master/install_from_ida.py').read())
    

  4. 按下 Shift+. 检查是否安装完成

Lumina 配置

Lumina 可以在线识别知名函数的元数据(函数名称,原型,注释,操作数类型和其他信息),不用再去手动标注,非常方便。

Lumina 目前暂时未对免费用户开放,所以在压缩包内配置了另一个免费服务器,测试效果还行。

但是压缩包内的服务器信息过于陈旧,需要更新

  1. 修改 cfg/ida.cfg

    LUMINA_HOST = "lumen.abda.nl";
    LUMINA_PORT = 1235
    
  2. 更新证书

    下载最新 hexrays.crt,替换根目录下原先的证书。

  3. 测试是否可以正常使用




博客内容遵循 [署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh)
本站总访问量为 访客数为
本站使用 Volantis 作为主题