一个反编译器的输入是一个可执行文件,并试图创造一个高层次,即做同样的事情编译,甚至可能维护的源文件。
因此,它是一个编译器,它接受一个源文件,并使得可执行的相反。然而,一般的反编译并不试图扭转反编译的每一个动作,而是将输入程序反复直到结果是高水平的源代码。因此,它不会重新创建原始源文件;可能没什么喜欢它。
它并不重要,如果可执行文件具有符号或没有,或从任何特定语言编译。 (不过,声明的语言,如ML不考虑。)
这样做的目的是创建一个可移植的反编译器(即一个可以反编译不同类型的机器代码文件微薄的努力,比如X86-窗口,SPARC-Solaris中,等)。它也意欲是高度模块化,从而使反编译的不同部分可以被替换为实验的模块。它的目的是要最终成为互动,一拉IDA Pro的,因为有些东西(不仅仅是变量名和评论,虽然这些显然是非常重要的)需要专家介入。是否交互所属的反编译或在一个单独的工具仍不清楚。
通过将各指令的语义,并利用强大的技术,例如静态单赋值数据流分析,飞镖应(主要)独立发生所使用的编译器的确切行为。优化应不影响结果。因此,我们的目标是一般反编译。
局限性:
·在你想尝试回旋镖,因为它是一个反编译器(而不是用它进行试验,或改进它)的情况下,应注意其严格的限制。截至2004年初,回旋镖只会反编译X86(的Linux / X86或Windows PE),SPARC(Solaris或Linux的推测/ SPARC),或Power PC(Linux的/ PPC或Mac OS / X)计划。特别要注意的是它不会反编译DOS或NE(Windows 3.1的)程序。添加另一个处理器是一个大的(数月)的事业。
·它只会生成C,而不是C ++。它将反编译的C ++,当然方案,(以及任何种类的程序,包括汇编)。您可以手动编辑一些C ++程序转化为可用的C ++源代码。对于MSVC编译的程序,目前你必须spoonfeed的反编译器,并告诉它有一个寄存器参数(thiscall调用约定)。开关来处理这是复杂的;看到使用-sf开关。
按类别搜索
热门软件
-
Qt Creator 17 Aug 18
-
GNU Octave 22 Jun 18
-
Sequoia 3 Jun 15
-
jGRASP 22 Jun 18
-
Lazarus 18 Jul 15
-
gettext lint tools 3 Jun 15
-
Launch4j 2 Jun 15
Boomerang
类似的软件
意见 Boomerang
按类别搜索
热门软件
-
Firebird Relational Database 17 Feb 15
-
GDB 16 Aug 18
-
Interactive Decompiler 3 Jun 15
-
DB Designer Fork 3 Jun 15
-
LIOGO 3 Jun 15
-
KBasic 2 Jun 15
-
Vulkan 10 Mar 16
评论没有发现