是否有功能仅次于IDA的反汇编程序(不仅是实时调试器)? IDA非常出色,并且在逆转方面具有多么强大和有用的功能也令人惊讶。但是,正确许可非常昂贵。有没有可行的替代方案,或者IDA是否在这个市场上独占?头?足够有用。

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

评论

除了IDA,我不知道任何其他用于静态分析的工具。但是,对于实时调试,有许多更好的选择,x64dbg是其中之一。 IDA的用户界面笨拙且缺乏。

#1 楼

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

Ghidra是创建和维护的软件逆向工程(SRE)框架。由国家安全局研究局。 Windows,Mac OS和Linux。功能包括反汇编,汇编,反编译,制图和脚本编写,以及数百种其他功能。 Ghidra支持多种过程指令集和可执行格式,并且可以在用户交互和自动模式下运行。用户还可以使用Java或Python开发自己的Ghidra插件组件和/或脚本。

radare2

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的图形界面,该界面已经支持其某些功能。

二进制忍者

二进制忍者是一个反向工程平台。它着重于一个干净且易于使用的界面,并在自定义IL上构建了强大的多线程分析,以快速适应各种体系结构,平台和编译器。可在macOS,Windows和Linux上运行。

Hopper

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

x64dbg

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

ImmunityDbg

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


PE Explorer的反汇编程序

与其他拆卸器相比,PE Explorer拆卸器的设计易于使用。为此,在其他产品中发现的某些功能
被省略,以保持该过程的简单和快速。尽管与更昂贵的专用反汇编程序一样强大,但PE Explorer注重易用性,清晰度和导航功能。

Hiew

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

ODA

在线反汇编程序是基于Web的免费反向工程该平台
支持所有主要操作系统(包括Windows,Mac OS X,Linux和移动平台)中的60多种体系结构和目标文件格式。

Relyze

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


评论


我也会添加HIEW,因为您包括了PE Explorer。我总是觉得今天做起来非常好,尽管需要更新。

–达斯塔
13年4月17日在1:55



我对ImmunityDebugger和OllyDbg不在此列表中感到有些惊讶。是否因为它们不是多平台的?

–恐怖
13年4月17日在9:09

根据我的经验,radare2比料斗好得多。只需使用“新”版本(至少0.9.4)和可视模式(“ Vpd”命令)即可。

–安东·科赫科夫(Anton Kochkov)
13年4月18日在8:55

@MickGrove:就我了解其他人使用的(新)工具而言,我感激不尽,这不是关于IDA作为反汇编程序的竞争者的问题吗?

– 0xC0000022L♦
13年4月18日在22:25

料斗不适用于Windows。

–马哈茂德·古德西(Mahmoud Al-Qudsi)
17年2月19日在17:15

#2 楼

如果您正在寻找竞争者,我相信ImmunityDebugger和OllyDbg可以部分竞争动态分析,而Hopper可以部分竞争静态分析。

,您的功能之间存在很大差距

IDA Pro的功能非常独特,如果在方程式中添加Hex-Rays Decompiler插件,对于想要竞争的人来说,情况似乎暗淡。但是,对于那些不愿意为IDA Pro掏出几百美元的人来说,随意拆卸甚至进行反编译的Hopper似乎都是不错的选择。如果您想搭便车,radare2可能是下一个选择,但是需要一些时间来习惯。

作为学生,我已经获得了我的第一个IDA Pro Standard许可,我必须承认这个价位陡峭,但值得每一分钱。当我开始从事与RCE相关的事情的专业工作时,我先升级到“普通”许可证,然后又升级到IDA Pro Advanced以获得x64支持。具有许可证限制(但适用于业余爱好者或学生)和功能限制的IDA。

#3 楼

其他一些反汇编程序/反编译器W32Dasm W32DASM是Windows的出色16/32位反汇编程序,似乎已不再开发。最新的可用版本是从2003年开始的。




Capstone
Capstone是一种轻巧的多平台,多体系结构反汇编框架。 >





DSM Studio反汇编器
DSM Studio是易于使用但功能全面的应用程序,可以帮助您拆卸和检查针对Intel x86架构构建的可执行文件。






反编译器
反编译器易于安装使用设计简单的应用程序即可读取程序二进制文件并反编译可执行文件或DLL文件。
尽管目前仅实现了x86前端,但是并没有阻止您实现68K,Sparc或VAX前端的功能。






Lida-linux交互式反汇编器
lida是一种基于bastards libdisasm的快速功能打包的交互式ELF汇编器/代码/密码分析器






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






distorm3
轻巧,易于使用且快速的反汇编程序/分解器适用于x86 / AMD64的库






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







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表示。
它被设计为读取为许多不同目标生成的文件,并且已在多个主机系统上进行编译。
>
可重新定向的反编译器
可用于源代码恢复,静态恶意软件分析等的可重新定向的反编译器。假定该反编译器不受任何特定目标体系结构,操作系统或可执行文件格式的限制。






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






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







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






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







/> JEB Decompiler
JEB是一个反向工程平台,可以手动或作为分析管道的一部分来执行代码,文档文件的反汇编,反编译,调试和分析。






Cutter
用于radare2反向工程框架(最初是Iaito)的Qt和C ++ GUI。切纸器不针对现有的radare2用户。相反,它着重于由于学习曲线,因为他们不喜欢CLI应用程序或因为rade2的困难/不稳定而尚未使用rade2的用户。



>


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


评论


据我所知,W32Dasm开发于1997年停止,最新版本为8.9。

– ZAB
16年1月26日在21:52

我认为RetDec链接需要更新

– julian♦
19年2月1日于16:53

@julian更新。

– 0xec
19年2月2日在7:23

Sourceforge上的Decompiler项目现在称为Reko,托管在GitHub上。

– JohnKällén
19年4月17日在9:11

#4 楼

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


Vdb-基于Python的调试器和程序调试API

VdbTargetVMWare32-使用vmware系统管理程序进行内核调试
VdbOnAndroid-使用vdb调试Android进程


Vivisect-基于Python的静态分析和仿真框架


#5 楼

反向-用于x86 / ARM / MIPS的反向工程工具。


SmartDec(又名Snowman)是C / C ++反编译器的本机代码。支持PE和ELF(32位和64位),还具有IDA的插件模块(6.1、6.4、6.5)。



当前支持Intel x86和x86-x64体系结构。 C ++重建支持Windows下MSVC编译器使用的32位ABI。



C重建是通用的,可用于几乎任何针对x86和x86-x64体系结构的编译器生成的代码。

Github仓库可以在这里找到。

评论


尽管有希望,但Ida Free似乎不支持插件,与此同时,雪人可能更适合作为独立版本使用。

– Laurie Stearn
18-4-6在5:39



#6 楼

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




Medusa是具有x86,x64,z80和部分ARM支持的开源反汇编程序。它可以在Windows和Linux上运行。它具有交互式平面和图形视图。



#7 楼

我最喜欢的IDA替代方法之一是HT编辑器。

我在x86和x64二进制文件以及Java类文件中使用了它。我认为它支持许多其他体系结构/字节码。它是跨平台的,具有一些不错的功能。

#8 楼

Sourcer很棒,但是我不确定这不是您所需要的。

评论


确实,它在当时很不错,我将手册保存了多年,因为它有一个非常好的操作码表(与您在网站上提供的类似)-直到我的一位同事最终失去它:-|

– 0xC0000022L♦
13年4月19日在17:34

哦,是的!我差点忘了Sourcer。感谢您的记忆!

–达斯塔
13年4月19日在19:34

似乎此链接不再可用。

– Tacet
17 Mar 6 '17 at 0:13

#9 楼

ArkDasm是64位交互式反汇编程序。支持的文件类型:PE64,原始二进制文件。目前处于Alpha阶段,但效果很好。

#10 楼

出于完整性考虑:另一个反汇编程序Binary Ninja:

至目前(2016年9月26日),它具有以下属性: (作为个人使用许可证的介绍价)。
处理x86,x64,ARMv7-8,MIPS和6502架构
可在Linux,Mac OsX和Windows上运行
支持PE / COFF,ELF和.NES和Mach-O
具有python API
具有Undo
具有IL
具有许多其他很酷的功能


#11 楼

我最近一直在使用Hopper,虽然它没有达到IDA的水平,但它确实令人惊讶地复杂,尤其是考虑到它的成本。它的主要平台是OS X,但也有适用于Linux和Windows的版本。 OS X版本还具有一些gdb集成,因此您可以将其用作调试器。

#12 楼

您是否签出了开源Metasm框架?它是用于装配操作的红宝石框架,可以与IDA的静态分析功能竞争。它具有图形视图,可以在x86 / 64,MIPS和PPC上进行反汇编/反编译,并支持几种可执行文件格式。

我相信它也已集成到Metasploit中。

#13 楼

我还将添加

PEBrowse64 Professional


借助PEBrowse反汇编程序,无需打开它即可将其打开并检查任何可执行文件。调试器处于活动
过程的一部分。应用程序,系统DLL,设备驱动程序和Microsoft .NET程序集都是使用任一PEBrowse程序进行脱机分析的候选对象。该信息以方便的树状视图索引进行组织,其中PE文件的主要划分
显示为节点。在大多数情况下,选择节点将启用上下文相关的多视图菜单选项,包括二进制转储,
节详细信息,反汇编和结构选项以及
显示子项(例如可选标题)目录条目或
导出的功能,可以在PE文件单元中找到。
可以从主菜单中访问几个表格显示,等效的十六进制/ ASCII,窗口消息和错误代码以及计算器和暂存器
(PEBrowse中的计算器,消息和代码
/>仅限专业人士。)


这是一个很棒的工具,具有许多与可执行文件分析有关的有用功能,并且还可以使用一个版本和一个交互式调试器。

#14 楼

ODA(在线反汇编程序)支持多种体系结构并提供基本功能集。您可以在实时视图中输入二进制数据,并在键入时观看反汇编出现,也可以上传文件进行反汇编。该网站的一个不错的功能是您可以与其他人共享反汇编的链接。

http://www.onlinedisassembler.com

#15 楼

ScratchABit是具有IDAPython兼容API的开源,交互式,增量式,直接操作(*)分解器,允许重复使用社区开发的大量插件。 ScratchABit将程序状态存储在文本文件中,从而允许轻松地重复使用信息以及与其他应用程序和脚本进行接口,或者跟踪历史记录并使用版本控制系统进行协作,从而最大程度地减少了数据库损坏和恢复工作的风险。

完全公开:我是ScratchABit的作者,它是一个正在进行的项目。

(*)直接操纵意味着您按下命令键并立即获得反应,您不会需要键入带有手动指定的地址和参数的长命令,然后按Enter。



评论


ScratchABit 1.0是最近发布的,这意味着它现在正处在我希望有其他项目的状态,使我免于编写ScatchABit(既有用又功能),并为进一步的黑客和实验奠定了良好的基础。

– pfalcon
15年10月17日在21:18

最新的是1.8:github.com/pfalcon/ScratchABit/releases/tag/v1.8

– pfalcon
17/12/26在10:55

#16 楼

我想到的第一个工具是Hopper,它不再与OSX绑定。它具有一些调试支持(至少在OSX上如此),但侧重于静态分析,这似乎正是您所需要的。

它可以将基本块分解成控制流程图,基本的反编译支持,您可以根据需要对函数进行重命名。也许有人用它代替IDA会更好地进行比较,但我只是简单地讲了一下。

此外,IDA的免费版本功能强大,如果您没有尝试过,也值得一看。