有没有反汇编程序可以与 IDA Pro 竞争?

逆向工程 工具 艾达 反汇编者
2021-07-08 00:06:17

在功能上是否有仅次于 IDA 的反汇编器(不仅是实时调试器)?IDA 很棒,而且它在逆向方面的强大和有用程度令人惊讶。然而,适当地许可是相当昂贵的。是否有任何可行的替代方案,或者 IDA 是否垄断了这个市场?

我不指望有替代品能像 IDA 一样好,只是寻找可能更实惠、足够有用的其他选择

编辑:最好应该存在多平台支持,尽管这是可选的。MIPS、ARM、x86 和 x86-64 会很好,但是处理其中任何一个的反汇编器是了解的不错选择。

4个回答

您没有提到平台(Windows、Linux、macOS 等),但这里有一些很棒的反汇编程序。

吉德拉

Ghidra 是由美国国家安全局研究局创建和维护的软件逆向工程 (SRE) 框架。Windows、Mac 操作系统和 Linux。

功能包括反汇编、汇编、反编译、绘图和脚本编写,以及数百种其他功能。Ghidra 支持各种流程指令集和可执行格式,并且可以在用户交互和自动化模式下运行。用户还可以使用 Java 或 Python 开发自己的 Ghidra 插件组件和/或脚本。

雷达2

Radare2 是一个开源工具,用于反汇编、调试、分析和操作二进制文件。

它实际上支持许多架构(x86{16,32,64}、Dalvik、avr、ARM、java、PowerPC、Sparc、MIPS)和几种二进制格式(pe{32,64}、[fat]mach0{32,64} 、ELF{32,64}、dex 和 Java 类),此外还支持文件系统映像和更多功能。

它在命令行上运行,但它有一个名为Cutter的图形界面,该界面已经支持其某些功能。

二进制忍者

Binary Ninja 是一个逆向工程平台。它专注于一个干净且易于使用的界面,它具有基于自定义 IL 构建的强大多线程分析,以快速适应各种架构、平台和编译器。在 macOS、Windows 和 Linux 上运行。

料斗

Hopper 是适用于 macOS 和 Linux 的逆向工程工具,可让您反汇编、反编译和调试(仅限 OS X)您的 32/64 位 Intel Mac、Windows 和 iOS (ARM) 可执行文件。

x64dbg

适用于 Windows 的开源 x64/x32 调试器。

免疫数据库

Immunity Debugger 是 OllyDbg v1.10 的一个分支,内置对 Python 脚本等的支持。

PE Explorer 的反汇编器

与其他反汇编程序相比,PE Explorer 反汇编程序设计得更易于使用。为此,其他产品中的一些功能被排除在外,以保持流程简单快速。虽然与更昂贵的专用反汇编程序一样强大,但 PE Explorer 专注于易用性、清晰度和导航。

顾名思义,Hiew 是一款出色的反汇编程序,专为黑客设计。它支持三种模式 - 文本、十六进制和解码(反汇编)模式。

官方发展援助

Online Disassembler 是一个免费的基于 Web 的逆向工程平台,支持来自所有主要操作系统的 60 多种架构和目标文件格式,包括 Windows、Mac OS X、Linux 和移动平台。

依赖

Relyze 是用于 x86、x64 和 ARM 软件的商业交互式反汇编器,带有 PE 或 ELF 文件格式的加载程序。它支持反汇编的交互式平面和图形视图,生成调用和引用图,对两个可执行文件进行二进制比较,探索可执行文件的结构和 Ruby 插件 API。它还可以处理符号 (PDB)、函数局部变量、switch 语句、异常处理程序、静态库识别等内容。

如果你正在寻找一个竞争者,我相信ImmunityDebuggerOllyDbg的可竞争部分料斗 部分是为了.

也就是说,您使用上述软件和 IDA 获得的功能之间存在很大差距。

IDA Pro 的功能非常独特,如果您将 Hex-Rays 反编译器插件添加到等式中,对于那些想成为竞争者的人来说,事情看起来很黯淡。然而,对于那些不愿意为 IDA Pro 支付数百美元的人来说,对于随意的反汇编甚至是一些反编译 Hopper 似乎是一个不错的选择。如果你想搭便车,radare2可能是下一个,但需要一些时间来适应。

作为学生获得了我的第一个 IDA Pro Standard 许可证后,我不得不承认价格很贵,但值得每一分钱。当我开始从事与 RCE 相关的专业工作时,我先升级到“普通”许可证,然后升级到 IDA Pro Advanced 以获得 x64 支持。

还要记住,IDA一个免费软件版本,有许可证限制(但适合爱好者或学生)和功能限制。

其他一些反汇编器/反编译器

W32Dasm
W32DASM 是一个优秀的 16/32 位 Windows 反汇编程序,似乎不再开发了。可用的最新版本是 2003 年的

Capstone
Capstone 是一个轻量级的多平台、多架构的反汇编框架。

BORG 反汇编器
BORG 是一个优秀的带有 GUI 的 Win32 反汇编器。

DSM Studio Disassembler
DSM Studio 是一个易于使用且功能全面的应用程序,可以帮助您反汇编和检查为 Intel x86 架构构建的可执行文件。

Decompiler
Decompiler 是一个易于使用且简单的应用程序,旨在读取程序二进制文件和反编译可执行文件或 DLL 文件。该应用程序旨在为任何处理器架构反编译可执行文件,而不是绑定到特定的指令集。尽管目前仅实现了 x86 前端,但如果您需要,则不会阻止您实现 68K、Sparc 或 VAX 前端。

Lida - linux 交互式反汇编器 Lida
是一个快速功能打包的交互式 ELF 反汇编器/代码-/cryptoanalyzer 基于混蛋 libdisasm

BugDbg x64 v0.7.5
BugDbg x64 是一个用户端调试器,旨在调试本地 64 位应用程序。BugDbg 作为免费软件发布。

distorm3
适用于 x86/AMD64 的轻量级、易于使用且快速的反汇编器/分解器库

Udis86
Udis86 是一个易于使用、简约的反汇编程序库 (libudis86),适用于 x86 类指令集架构。它有一个方便的界面,可用于二进制代码的分析和检测。

BeaEngine
这个项目是一个包含多平台 x86 和 x64 反汇编库的包(Solaris、MAC OSX、AIX、Irix、OS/2、Linux、Windows)

C4反编译器

  • C 反编译器的通用机器码
  • 免费的 Windows I64 目标版
  • 交互式 Windows GUI

REC Studio 4 - 逆向工程编译器
REC Studio 是一个交互式反编译器。它读取 Windows、Linux、Mac OS X 或原始可执行文件,并尝试生成用于构建可执行文件的代码和数据的类 C 表示。它旨在读取为许多不同目标生成的文件,并且已在多个主机系统上编译。

Retargetable Decompiler
一种可重定向反编译器,可用于源代码恢复、静态恶意软件分析等。反编译器应该不受任何特定目标架构、操作系统或可执行文件格式的限制。

miasm
Miasm 是一个用 Python 编写的免费开源 (GPLv2) 逆向工程框架。Miasm 旨在分析/修改/生成二进制程序。

免费代码操作库
这是一个用于 IA-32 和 Intel 64 架构的通用机器代码操作库。该库支持类 UNIX 系统以及 Windows,并且具有高度的可移植性。

英特尔® X86 编码器解码器软件库
英特尔® XED 是一个用于编码和解码 X86(IA32 和 Intel64)指令的软件库(和相关头文件)。

angr
angr 是一个用于分析二进制文件的框架。它侧重于静态和动态符号(“concolic”)分析,使其适用于各种任务。

JEB Decompiler
JEB 是一个逆向工程平台,用于手动或作为分析管道的一部分对代码和文档文件进行反汇编、反编译、调试和分析。

Cutter
用于radare2 逆向工程框架(最初是Iaito)的Qt 和C++ GUI。Cutter 不针对现有的radare2 用户。相反,它侧重于那些由于学习曲线、不喜欢 CLI 应用程序或因为radare2 的困难/不稳定性而尚未成为radare2 用户的用户。

REDasm
REDasm 是一个交互式多架构反汇编程序,使用 Qt5 作为 UI 框架,用 C++ 编写。它的核心是轻量级和简单的,它可以扩展以支持新的指令集和文件格式。

另一个需要检查的框架是Vdb 和 Vivisect

  • Vdb - 基于 Python 的调试器和程序化调试 API
    • VdbTargetVMWare32 - 使用 vmware 管理程序进行内核调试
    • VdbOnAndroid - 使用 vdb 调试 android 进程
  • Vivisect - 基于 Python 的静态分析和仿真框架