Delphi工具—反编译Delphi(二)

原创 2002年12月26日 13:48:00

第二节 Delphi反向工程<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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

      Delphi编译单元:DCUDelphi compiled unit: DCU

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

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

      编译器之后:Delphi反向工程(After the compiler: Delphi Reverse Engineering

      如果你试图反编译一个Delphi可执行文件,有几件事你应该知道:

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

      所有被Delphi编译过的程序都有以下几个部分:CODE、DATA、BSS、.idata、tls、.rdata、.rsrc。从反编译的角度来看,最重要的部分是:CODE、.rsrc。在“Adding functionality to a Delphi program"(“在Delphi程序中增加功能”)(译者加:陆续译出)文章中讨论了关于Delphi可执行格式、类信息和DFM资源的一些有趣的内容:怎样分配事件给同一个表单中定义的其他事件句柄(handler)处理、怎样增加你自己的事件句柄(handler)从而在可执行文件中增加代码改变按钮的标题。

      存放在.exe文件中的各种类型的资源里,RT_RCDATA或Application-defined(程序定义)资源(原始数据)拥有编译前DFM文件所包含的信息。为了从.exe文件中选出DFM数据,我们可以调用EnumResourceNames API函数...关于从.exe文件中选出DFM数据的更多的信息,可以参考:“Coding a Delphi DFM explorer”(“编写一个Delphi DFM探测器”)。(译者加:陆续译出)

 

反编译Delphi(完整版)

第一节   关于反向工程(About Reverse Engineering)       反编译?反向?解密?(Decompilation? Reverse? Cracking?)   ...
  • gg175234768
  • gg175234768
  • 2013年05月04日 12:41
  • 6446

Delphi工具——反编译Delphi(一)

反编译Delphi第一节  关于反向工程(About Reverse Engineering)      反编译?反向?解密?(Decompilation? Reverse? Cracking?)  ...
  • eagletian
  • eagletian
  • 2002年12月26日 13:48
  • 5597

Delphi反编译

Delphi反编译2008-04-12 03:38转自http://blog.csdn.net/eagletian/ 不知道是不是博主翻译的。感觉好像后面还有很多东西。反编译Delphi第一节 关于反...
  • kingisw
  • kingisw
  • 2010年09月19日 14:04
  • 2815

防止DEDE反编译的DELPHI程序

Program Project1;Uses  Forms,  windows,  sysutils,  Unit1 In Unit1.pas {Form1},  Unit2 In Unit2.pas ...
  • hsmserver
  • hsmserver
  • 2006年09月21日 15:43
  • 2634

Delphi工具—反编译Delphi(三)

第三节 Delphi 反编译工具      反向工程一直被认为是技术奇才的专有艺术,需要熟悉汇编语言和调试器。下面几个Delphi反编译器允许任何人反编译大多数Delphi可执行文件,即使只有有限的技...
  • eagletian
  • eagletian
  • 2002年12月26日 13:47
  • 5361

第二节 Delphi反向工程

Delphi
  • helloup521
  • helloup521
  • 2011年02月26日 12:29
  • 201

GDI+ 在Delphi程序的应用 -- 图像二值化

    图像的二值化,无论是理论,还是方法都很多,网上搜索一大堆,本人水平有限,没法完全搞清楚,只在这里针对GDI+在Delphi中如何做一般二值化处理,写一个简单例子。    其实,这个例子在昨天本...
  • maozefa
  • maozefa
  • 2007年01月30日 23:27
  • 4174

Delphi 的RTTI机制浅探2

本文上篇基本上是 RTTI 入门介绍,续篇介绍了所有 TypInfo.pas 中的函数,附加了 Classes.pas、Graphics.pas、Con...
  • simb
  • simb
  • 2006年09月15日 09:35
  • 1749

InstantObjects参考 - delphi的ORM实现

概述本文档是关于构建基于InstantObjects框架的参考手册。       主要包括以下三个部分:l        建立业务模型l        建立用户接口l        使用持久化对象编程...
  • lee576
  • lee576
  • 2008年04月03日 14:29
  • 2221

快速修改 Delphi 资源

  快速修改 Delphi 资源作者: 刘亮亮 最近需要在没有源代码的情况下对delphi 的软件界面最较大调整,翻看了一些资料,没有找到合适方法,经过了自己一天的试验摸索终于找到了一个快捷的方法.下...
  • Blue_Dream_
  • Blue_Dream_
  • 2008年01月08日 08:48
  • 4102
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi工具—反编译Delphi(二)
举报原因:
原因补充:

(最多只允许输入30个字)