欧普下载是国内较新、较齐、较安全的软件下载基地!
当前位置:首页 ›› 其他软件 ›› 编程相关 ›› Delphi反编译工具(DeDeDark)下载

Delphi反编译工具(DeDeDark) v3.50.4中文版

dededark 最新版[下载地址]
Delphi反编译工具(DeDeDark) v3.50.4中文版

DeDeDark是一个非常不错的Delphi反编译工具,经过处理后,你可以编辑所有的dfm文件,在使用时可能不能完全的反编译,大家用它来查看代码还是很不错的。

Delphi反编译工具(DeDeDark) v3.50.4中文版

DeDeDark全中文界面,即使是新手也很容易上手操作,不过它只是一款辅助工具,并不能完全反编译delphi应用程序。用户可以用dede查看,记下地址,再用ollyice更改。

功能特色

1.修改了Title和ClassName "DeDe"->"DarK",绝大部分的Anti检测都没有用了

2.DIY原DEDE,使得可以反汇编得到非标准程序的Forms格式和Procedures的事件(^_^)

3.直接反汇编功能的选项,原DEDE就提供了

4.增加对特殊处理过的PACKAGEINFO的Uint List的显示,设定GetSectionIndexByRVA默认返回值是-1or2

选项在Option->configuration->Preferences->General->

Not Special Program And PACKAGEINFO,No Warn Saving

选择,将提供缺省功能;

不选,则增加对PACKAGEINFO的搜索功能和GetSectionIndexByRVA函数的默认返回值=2.

(通常应该采用缺省模式,当反汇编有错误或PackageInfo有错时,尝试使用)

原有的"Do not allow report to be saved in existing folder"功能,继续保留,借鸡生蛋而已:)

使用原有english.ini的话,

选项将显示"Do not allow report to be saved in existing folder",请自行修改

5.修改原有的"Open With DEDE"的注册键错误&BUG,可以使用右键运行DEDE反汇编Delphi/BCB

6.去处NAG显示

7.修复原有Dump Active Process的BUG

可以使用Shift+Alt+Ctrl+D Dump Process ->Dump.dmp文件,使用Shift+Alt+Ctrl+I Dump Info ->procinf_dmp.txt

8.Enable Dump按钮(画蛇添足:P)

9.修复拖放处理程序时,确认对话框的BUG!

10.修复Forms下将DFM保存为RES文件的BUG!

11.Enable Procedures下右键的Analize Class功能

12.修复Forms下DFM的"Open With NotePad"功能

13.heXer提供修复反汇编引擎的代码,修复后,非常的好用

DeDeDark安装方法:

1.将下载完成的压缩包进行解压。

Delphi反编译工具(DeDeDark) v3.50.4中文版

2.进入文件夹后,启动应用程序。

Delphi反编译工具(DeDeDark) v3.50.4中文版

3.进入主界面后,你就可以对Delphi程序进行查看了。

Delphi反编译工具(DeDeDark) v3.50.4中文版

dededark使用说明

1.主要功能

用DeDe可以查看Delphi程序窗体的属性,可以查看按钮对应的事件,并将事件代码反汇编出来,其能识别出Delphi库函数,具有良好的可读性。另外,还可以把事件输出到map文件中供其他工具使用。

2.配置

(1)DSF文件

①DSF文件的含义

DSF文件内容来自不同版本BPL库文件的输出符号表。DeDe反汇编引擎使用这些符号表对生成的ASM代码文件添加类成员方法调用的注释,这非常类似于IDA Pro的FLIRT技术。如果没有加载任何BPL符号表文件,对BPL类的调用就无法以注释的格式说明。

②加载DSF文件

经由“File/Load Symbol File”菜单,就可加载所需要的DSF文件。程序若能正确识别出相应版本的Delphi程序,会自动加载DSF文件。若希望每次启动DeDe的同时自动加载若干DSF文件,选中“Options/Configuration”菜单,在Symbols选项卡中就可完成本项工作。如果想查看包含在某个特定DSF文件中的输出符号表,选择“Options/Symbols”。

③为何需要创建DSF文件

处理使用自定义构件(即不是Delphi安装的构件)的程序时,如果有这些自定义构件的BPL,并且为它们创建了DSF文件,那么DeDe将会注释所有对这些自定义构件的调用。创建DSF的速度也是很快的。

(2)DOI文件

DOI意思是Delphi Class Offset Information(Delphi类偏移信息),该技术使用偏移信息识别类成员:方法和域(实例变量,属性)。DOI文件包含用于识别的必要数据。DeDe仿真指令的执行来查找使用这些偏移的引用所在。例如,在继承自TForm类的任何子类的偏移0xCC处,代表指向ShowModal方法的指针。当遇到类似call [reg + $00CC]的调用时,仿真器就知道寄存器包含的对象是引用TForm.ShowModal方法的TForm子类。DOI文件应该存放在DSF文件夹内。

下面是一个生成的带有DOI帮助信息的简单示例。

* Reference to control LogMemo : TMemo

004E4E7C 8B80F4020000 mov eax, [eax+$02F4]

* Reference to field TMemo.Lines : TStrings

004E4E82 8B8004020000 mov eax, [eax+$0204]

* Possible String Reference to: 'Loading Export Names ...'

004E4E88 BA0C584E00 mov dx, $004E580C

004E4E8D 8B08 mov ecx, [eax]

* Reference to method TStrings.Add(string)

004E4E8F FF5134 call dword ptr [ecx+$34]

使用DOI文件,只需复制*.DOI文件到DSF文件夹即可。DOI数据会自动插入到生成的代码文件中。

(3)字符串参考的含义

在DeDe中,如果处理含有非英文字符串的程序,则选择“Option/Configuration”菜单,在References选项卡中可以设置DeDe反编译引擎查找字符串参考时使用的字符集。

注意:如果使用全部的字符集合#32~#255,则可能得到残缺的字符串参考。Delphi程序一般不用Unicode字符串,这也是该选项没有包括在字符串参考配置中的原因。

3.基本操作

DeDe安装很简单。安装好后直接执行主程序,出现如图7.1所示的主界面。单击 按钮打开光盘映像文件中的DE_Delphi文件,然后单击“Process”按钮进行反编译。DeDe先将被分析的文件装载到内存中,再进行反编译,因此对一些压缩加壳的程序也能反编译。

CLasses Info:显示程序中使用的类信息;

Units Info:显示程序中使用的单元信息;

Forms:显示程序中的窗体信息,这部分可以用资源编辑工具修改;

Procedures:显示程序的过程信息;

Project:可将当前项目保存;

Exports:导出符号文件。

图7.1 DeDe界面

在此显示了Events(事件)和Controls(控件)两方面的内容(见图7.2)。Button1Click事件对应的是“确定”按钮,双击可打开代码窗口。该窗口显示当前事件对应的汇编代码,右边控制条显示全局变量和局变量。双击某个表达式,可以加注释。在跳转指令、CALL指令上双击可跳到相应代码上。

图7.2 查看事件按钮

设目标实例DE_Delphi的用户名为Name[],具体代码如下:

* Reference to control TMainForm.Edit1 : TEdit ;用户名框控件

004502C6 mov eax, [esi+$02F8]

* Reference to: controls.TControl.GetText(TControl):System.String;

004502CC call 0042F4F8

004502D1 cmp dword ptr [ebp-$0C],+$00 ;判断是否输入字符

004502D5 jnz 004502F5

……

* Reference to: controls.TControl.GetText(TControl):System.String;

004502FE call 0042F4F8

00450303 mov eax, [ebp-$10] ;指向用户名

* Reference to: system.@LStrLen:Integer;

00450306 call 004044C4

0045030B cmp eax, +$04 ;判断是否输入了4个字符

0045030E jnl 0045032E

……

* Reference to: controls.TControl.GetText(TControl):System.String;

00450345 call 0042F4F8

0045034A mov eax, [ebp-$14] 指向Name[]

* Reference to: system.@LStrLen:Integer;

0045034D call 004044C4 ;得到用户名长度

00450352 mov ebx, eax ;将长度放到ebx中作为计数器

00450354 test ebx, ebx

00450356 jle 00450381

00450358 mov edi, $00000001 ;edi=1

0045035D /mov eax, [ebp-$08] ;指向Name[]

00450360 |movzx eax, byte ptr[eax+edi-$01]

00450365 |lea ecx, [ebp-$18]

00450368 |mov edx, $00000002

*Referenceto: sysutils.IntToHex(System.Integer;System.Integer)

0045036D |call 00408310 ;inttohex(ord(Name),2)

00450372 |mov edx, [ebp-$18] ;[ebp-$18]指向Name16进制

00450375 |lea eax, [ebp-$04] ;[ebp-$04]变量是指向Sn指针的指针

* Reference to: system.@LStrCat;

00450378 |call 004044CC ;将两个串连起来,设为Sn

0045037D |inc edi ;i+1

0045037E |dec ebx ;计数器减1

0045037F \jnz 0045035D ;循环

……

* Reference to: controls.TControl.GetText(TControl):System.String;

0045038A call 0042F4F8 ;取输入的序列号

0045038F mov eax, [ebp-$1C] ;[ebp-$1C]是输入的序列号指针

00450392 mov edx, [ebp-$04] ;[ebp-$04]中存放的是正确的序列号

* Reference to: system.@LStrCmp;

00450395 call 00404608 ;比较两个临时变量

0045039A jnz 004503B7

由于DeDe的符号识别技术,使得上述代码可读性非常容易理解。

在图7.2中有两个按钮值得注意:

DPR按钮:是反汇编项目文件.dpr,该文件控制或记录程序中的所有文件。

OFFS按钮:反汇编指定地址的代码。

下载Delphi反编译工具(DeDeDark) v3.50.4中文版
本地下载地址:
本地电信下载
本地电信下载
本地联通下载
本地联通下载
本地迅雷下载
本地迅雷下载
移动用户下载
移动用户下载

版权声明:本站提的序列号、注册码、注册机、补丁等均来自互联网,仅供学习交流之用,请在下载后24小时内删除。

猜您喜欢
相关文章
软件评论
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!
    登录   注册