怎么样反编译class重新生成Delphi生成的DLL文件

      反向工程一直被认为是技术奇才嘚专有艺术需要熟悉汇编语言和调试器。下面几个Delphi反编译class重新生成器允许任何人反编译class重新生成大多数Delphi可执行文件即使只有有限的技術知识。

所有的目标dfm文件你可以用Delphi打开并编辑它们; 

带有良好的注释的ASM代码的所有发布的方法,它涉及字符串、输入函数调用、类方法調用、单元的组件、Try-Except和Try-Finally块默认情况下,DeDe仅仅只获得已发布方法的源代码但如果你通过使用Tools | Disassemble Proc菜单知道RVA偏移量的话,你也可以处理可执行攵件中的其他过程 

大量的附加信息。 

你可以创建一个带有所有的dfm、pas、dpr文件的Delphi工程的文件夹注:pas文件包含上面提及的被良好注释过的ASM代碼。他们不能被再编译!

      Revendepro可以找到程序中几乎所有的结构(类、类型、过程等)并生成pascal表达式、过程则以汇编程序的形式写出来。由于彙编程序的某些限制生成的结果不能被在编译。这个反编译class重新生成器的源代码可以免费获得不幸的是,这是唯一一个我不能使用的反编译class重新生成器—当试图用它反编译class重新生成某些Delphi可执行文件时总提示异常。

      这个对用途文件分割器可以从其它文件中寻找和摘取文件MRIP分割100多种文件格式。对我们而言最重要的是MRipper可以反编译class重新生成任何Delphi可执行文件。该工具可以从Delphi应用程序中摘取所有的资源:cursors(光標)、icons(图标)、dfm文件、pas文件和其他资源pas文件不包含事件过程执行。MRIP是一个DOS工具

载入每个发现的DFM块,解码它并以表的形式(包括它们嘚名称)存储在内存中 

在程序的主窗口我们可以以文本方式可视化所有载入可执行文件的所有的DFM。 

最后程序可以保存到DFM选择的磁盘,莋为ASCII文件(.RC)或作为二进制块(DAT)连接到可执行文件中

      如果你试图放松你的工程源代码,这个Delphi工程源代码救助器可以挽救丢失的源码部汾救助器生成所有的带已分配属性和事件的工程表单和数据模块。生成的事件过程没有主程序(它不是反编译class重新生成器)但又在可執行文件中的代码地址。这个工具没有GUI—它使用命令行的形式:'exe2dpr [-o] exeFile'工程源代码在当前目录创建。如果你想覆盖当前目录的任何已存在的文件就可以使用选项 '-o'。

目前 Borland没有提供任何产品用于反编译class重新生成可执行(.exe)文件或“Delphi 编译文件”(.dcu)为原始的程序代码(.pas)。

      当一个Delphi笁程被编译或运行时一个编译单元(.dcu)文件便产生了。默认情况下每个单元的编译版本都存放在独立的二进制文件中,该文件的文件洺与单元文件同名同时它的扩展名为.DCU。例如:unit1.dcu文件包含有在unit1.pas文件中声明的代码和数据

      这意味着如果你有某些资源,如编译过的组件伱所必须做的是反编译class重新生成它并获得源代码。错了DCU文件格式是非文档的(所有者格式)并且它可以随版本的改变而改变。

      Delphi源程序文件通常以两种文件类型存储:ASCII代码文件(.pas、.dpr)和资源文件(.res、.rc、.dfm、.dcr)Dfm文件包含表单中所容纳的对象的详细资料(属性)。当创建一个可執行文件时Delphi拷贝.dfm文件中的信息到已完成的.exe代码文件。表单文件描述了表单中的每个组件包括所有稳定的属性值。每当我们改变表单的位置、按钮的标题或为组件指派一个事件过程时Delphi就会在DFM文件中记下这些改变(不是事件过程的代码—它是存放在pas/dcu文件中)。为了从可执荇文件中得到'dfm'我们需要理解什么类型的资源被存放在Win32可执行文件中。

有个EXE文件怎么反编译class重新生成成源码啊 [问题点数:100分,结帖人salivapig]

最好是你们老板要你得到操作系统的整套源代码那么所有的构建于操作系统上的系统,你们都能得到代碼哈哈,这就更省钱了

如果用java写的东西好像是能够得到类似源代码的东东的,不过因为那个还没有被编译成机器码

即使那位高手硬偠根据机器码写出一个高级语言程序,也会是个比汇编还要难读的东东

跟老板说明问题,或者一边看汇编资料,一边看还原成的代码


外行就愛问这样的问题,什么破解密码之类的神乎其神!

在dos时代看到过一个软件,能把汇编翻译成C语言但是不能再编译,代码很不规范只能看看了事。

如果是VB的话是可行的

如果是Delphi的话请先学汇编

呵呵,大家反应都很强烈啊

估计这是大家都想要的,可惜大家都知道那是不鈳能的

我有个EXE文件想看里面的源码,已经用dede反编译class重新生成过了但出来的好像全是汇编,怎么才能得到源码啊

首先应当知道这个EXE是甴什么编译器编译的。如果幸运地发现是VFP编译的可以用UnFoxPro之类的工具反编出VFP源码。

    其他很多也是可以的如果exe使用一些二次开发工具做的,比如Flash是可以反求源码的,甚至Java都可以但对C++,就死了心吧。

匿名用户不能发表回复!

    *1:要进入IL文件的文件夹 2:其中"/dll/"这個前面要有一个空格 3:.res文件要在.il文件前面中间要有个空格

    步骤六:运行完上面的命令后会生成一个新DLL文件,然后把它复制到我们的站点下媔:

    完成上面的七个步骤就可以成功修改DLL文件当然本实例只是一个简单的修改,若要进行比较复杂修改IL代码则要对IL知识有个相当的了解;下面是一个可能会经常要用到的IL返回true跟false的代码;

我要回帖

更多关于 反编译class重新生成 的文章

 

随机推荐