Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ipyida — 为IDA Pro提供IPython控制台集成 | Kitploit
工具/GitHubGitHub/eset/ipyida
逆向工程脚本与自动化二进制分析
GitHubeset/ipyida

ipyida

为IDA Pro提供IPython控制台集成

查看仓库
850762个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

= IPyIDA

IPyIDA 是一个纯 Python 解决方案,用于为 IDA Pro 添加 IPython 控制台。使用 <Shift-.> 可打开一个嵌入了 Qt 控制台 的窗口。随后你便可以享受 IPython 的自动补全、在线帮助、等宽字体输入框、图表等功能。

你也可以在 IDA 之外使用 ipython console --existing 连接到该内核。

image::ipyida-screenshot.png[IPyIDA screenshot,width=100%]

== 安装

IPyIDA 应当兼容 Windows、OS X 和 Linux 上的 IDA 6.6 及更高版本。它已在最高至 IDA 9.2 的版本上测试通过。

=== 快速简便安装

我们提供了一个脚本,用于从 IDA 控制台全自动安装 IPyIDA 及其依赖项。只需将以下命令行复制到 IDA 控制台即可。

.Python 2 [source,python]

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

.Python 3 [source,python]

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

在 macOS 上,Python3.framework 不提供受信任的 CA 文件。你可以使用系统级文件 /etc/ssl/cert.pem。

[source,python]

import urllib.request; exec(urllib.request.urlopen('https://github.com/eset/ipyida/raw/stable/install_from_ida.py', cafile="/etc/ssl/cert.pem").read())

该脚本将执行以下操作:

  1. 安装 pip(如果尚未安装)
  2. 从 https://pypi.org/project/ipyida/[PyPi] 安装 ipyida 包
  3. 将 ipyida_plugin_stub.py 复制到用户的 plugins 目录
  4. 加载 IPyIDA 插件

如果你想确切了解它的作用,可以查看 link:install_from_ida.py[] 脚本。

==== 升级

重新运行安装脚本以更新到最新版本,然后重启 IDA。

=== 按 IDA 的方式安装

如果你更愿意自己管理依赖项和更新,可以将 ipyida_plugin_stub.py 和 ipyida 目录复制到 IDA 的 plugins 目录内。

此方法要求你自行管理依赖项。IPyIDA 需要 ipykernel 和 qtconsole 包;如果使用 ipykernel 5 或更高版本,则还需要 qasync 包。

== Jupyter Notebook 集成

IPyIDA 包含一个魔术命令 %open_notebook,用于打开一个浏览器窗口,其中带有连接到 IPyIDA 的 notebook。该命令会在首次运行时负责安装依赖项,并在没有 Notebook 服务器已在运行的情况下启动一个。输入 %open_notebook? 查看命令帮助,以了解其他选项。

== 自定义 IPython 控制台

默认情况下,控制台中没有任何可用的全局变量。如果你希望在控制台打开之前导入某些模块,IPyIDA 会从 IDA 用户目录(idaapi.get_user_idadir())读取 ipyidarc.py 文件。你在此文件中导入的任何内容都将在 IPython 控制台中可用。

这与 idapythonrc.py 文件类似。

=== 深色模式

在 IDA Pro 使用深色主题时,让 IPython 控制台也采用深色主题会更方便。要激活 qtconsole 内置的深色主题,请在 ipyidarc.py 中添加以下内容:

[source, python]

import qtconsole.styles import ipyida.ida_qtconsole ipyida.ida_qtconsole.set_widget_options(dict( style_sheet = qtconsole.styles.default_dark_style_sheet, syntax_style = qtconsole.styles.default_dark_syntax_style ))

== IDE 集成

iPyIDA 值得一提的特性之一是与 PyCharm IDE 集成的能力。这可以实现单步调试代码、语法高亮、GitHub CoPilot 集成等功能。要使用此功能,只需启动 IDA 并打开一个数据库,在 PyCharm 中创建一个 Jupyter Notebook,添加一些代码,然后点击运行即可。IPyIDA 会在后台完成所有神奇的工作。

image::pycharm-screenshot.png[IPyIDA screenshot,width=100%]

== 注意事项

=== 如果 IDA 窗口在后台停留过久,外部控制台将无响应

此问题特定于 OS X 10.9 及更高版本中的 App Nap 功能。在运行时为 IDA Pro 禁用 App Nap 似乎可以修复该问题,但这目前只是一个 hack,并且会使笔记本电脑更耗电,我们应该找到一个更好的解决方案。

以下是禁用 IDA Pro 的 App Nap 的方法:

[source,bash]

defaults write com.hexrays.idaq NSAppSleepDisabled -bool YES defaults write com.hexrays.idaq64 NSAppSleepDisabled -bool YES

== 类似项目

@james91b 也成功地在 IDA 中集成了 IPython 内核。由于我是非 Windows 平台的 IDA 用户,我需要一个跨平台的解决方案,因此采用了纯 Python 的方法来实现。尽管部分实现思路来自该项目,但 IPyIDA 是从零开始编写的。向 @james91b 和所有 IDA_IPython 贡献者致敬。IDA_IPython 可在 https://github.com/james91b/ida_ipython 上获取。

下载工具