DeDe反编译器

DeDe反编译工具 非常号的反编译工具,可以反编译Delphi的Exe文件,可生成Dfm文件以便学习别人的Form是如何设计的 立即下载

Delphi/C++ Builder采用控件拖放的方式来完成界面的设计,并和事件联系起来。而这些信息以资源(RCDATA)的方式存放于可执行文件中。DeDe便利用这个 原理进行反编译,获取相关信息,将界面与事件联系关系还原,但事件的汇编代码不能还原。DeDe公开了源代码,感兴趣的读者可以研究一下。

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反编译引擎查找字符串参考时使用的字符集。
A9 


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

DeDe安装很简单。安装好后直接执行主程序,出现如图7.1所示的主界面。单击 Untitled-4 按钮打开光盘映像文件中的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[i]),2)
00450372     |mov     edx, [ebp-$18]             ;[ebp-$18]指向Name[i]16进制
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按钮:反汇编指定地址的代码。

DeDeDark Delphi exe 反编译软件 3.50.4 著名的DELPHI反编译工具,多语种(含中文)界面,支持到D7版本,反编译结果虽然是汇编级,不过效果已经非常不错了。 立即下载

相关推荐

DeDe很强大的反编译工具

针对Delphi C++的反编译工具。它可以反编译出Delphi C++程序的类信息、窗体信息等等。。。

【摘录】反编译Delphi软件DEDE的使用

elphi/C++ Builder采用控件拖放的方式来完成界面的设计,并和事件联系起来。而这些信息以资源(RCDATA)的方式存放于可执行文件中。DeDe便利用这个原理进行反编译,获取相关信息,将界面与事件联系关系还原,但事件的汇编代码不能还原。DeDe公开了源代码,感兴趣的读者可以研究一下。 1.主要功能 用DeDe可以查看Delphi程序窗体的属性,可以查看按钮对应的事件,并将...

acass424022的博客 1026

delphi反编译工具dede

可以将delphi编写的exe程序进行反编译出来,是一款很方便的工具

DeDeDark delphi反编译

DeDeDark是用来反编译delphi程序的一个软件,现在网上最多的版本是3.50.04 1、主界面 软件支持直接拖拽 拖拽完之后会提示是否要分析,选择yes即可 2、模块信息 3、窗体 点击右边的按钮能够看到程序界面的一些信息,包括控件的消息和动作 4、过程 这里主要是一些自己实现的函数,包括控件对应的函数,可以看到有单击和双击的消息处理函数以及一...

CMC_HHM的博客 1万+

DEDEdelphi反编译软件_decompiler_delphi_delphidede_dede_delphidecompil

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

delphi反编译工具

著名的delphi反编译工具,带源码,dede3.5

DeDe反编译器3.1 delphi源代码

<br />http://www.hkxy.net/soft/show.asp?id=476<br /> 软件大小: 0 Bytes软件语言: 简体中文软件类别: 免费版运行环境: Win9X/2000/XP/2003/图片预览:    论坛转帖更新时间: 2009-08-10 13:01:04软件评级:官方主页: Home Page解压密码: 默认密码:www.hkxy.net插件情况:下载统计: 本日:2 本周:7 本月:15 总数:325 <br /> 软件简介 Soft Intr

chla的专栏 907

瑞芯微Android固件修改实战:从解包到root提权完整流程(附工具包)

本文详细解析了瑞芯微Android固件深度定制全流程,涵盖从固件包解包、系统镜像修改到植入root提权与分区调整的实战步骤。通过工具链操作与原理剖析,指导开发者安全实现系统精简、权限获取及存储扩容,最终完成固件重新打包与刷机验证,适用于追求设备完全控制权的技术爱好者。

ujm56789012的博客 699

Re----小白有一颗破解Delphi程序的心

Delphi,是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。它的前身,即是DOS时代盛行一时的“BorlandTurbo Pascal”,最早的版本由美国Borland(宝兰)公司于1995年开发。 这一段来自于百度百科,看出来有多古老了吧,emmmmm,不过一直在更新,至少2014应该发布过新版本 那作为一个小白,...

qq_42192672的博客 4173

ISP Tuning实战:从零开始调校相机传感器的完整流程(附避坑指南)

本文详细介绍了ISP Tuning的完整实战流程,即如何从零开始调校相机传感器以优化成像质量。内容涵盖从黑电平校正、镜头阴影校正等基础标定,到自动曝光、伽马校正、色彩校正等核心画质调校,再到降噪与锐化的平衡策略,并提供了关键的避坑指南。掌握ISP Tuning是提升相机传感器性能、实现从‘能用’到‘好用’的关键技术。

weixin_32098457的博客 196

利用Nginx反向代理实现GitLab自定义域名的高效配置

本文详细介绍了如何利用Nginx反向代理实现GitLab自定义域名的高效配置。通过统一域名管理、性能优化和安全加固,提升GitLab的访问效率和安全性。文章包含前期准备、GitLab基础配置、Nginx反向代理设置及常见问题排查,帮助开发者快速完成部署。

weixin_28834169的博客 165

170624 逆向-失败的脱壳

1625-5 王子昂 总结《2017年6月24日》 【连续第265天总结】 A. 脱壳前瞻 B. 明天考试于是基本都在复习高数 拽了一个?难度的CrackMe试试,拖入PEiD发现第一次遇到壳 Markus & Laszlo" style="margin:0px; padding:0px; vertical-align:middle; color:rgb(23,150,249); d

whklhhhh的博客 765

yolov26改进 | Neck篇 | 利用Gold-YOLO改进yolov26对小目标检测能力(全网独家首发)

本文介绍利用Gold-YOLO的Neck改进YOLOv26,通过信息聚集—分发机制GD,先全局汇聚不同层级特征,再将融合后的全局信息重新注入各尺度分支,增强浅层细节与深层语义之间的交互,减少传统Neck逐层传递造成的信息损失。该结构虽然融合路径更长,但能够在不过度增加延迟的前提下提升多尺度目标检测能力,尤其适合大小目标并存、尺度变化明显和复杂背景场景。本文将讲解GD机制、Neck替换、模块注册与配置方法,并提供完整代码、配置文件及Codex修改思路,方便直接复现、实验对比和二次创新。

Snu77的博客 296

防止用DeDe软件反编译delphi程序

作者:Drate 发表日期:2003年7月23日 防止用DeDe软件反编译delphi程序这里有一篇防止用DeDe软件反编译delphi程序~用『』里的是我的注释,其余的是原创作~ Program Project1;Uses  Forms,  windows,  sysutils,  Unit1 In 'Unit1.pas' {Form1},  Unit2 In 'Unit2.pas' {Form...

happmaoo的专栏 133

Open3D 计算FPFH特征【2025最新版】

FPFH特征描述子的python实现,本文最新更新时间为:2025年3月18日。

点云侠的博客 5280

3步搞定.NET Core在UOS上的部署?手把手教你从零到上线!

本文详细介绍了如何在统信UOS系统上部署.NET Core应用程序的完整流程。首先,通过安装.NET Core SDK,确保UOS系统能够编译和运行C#代码。接着,创建一个简单的控制台应用,并验证其本地运行情况。最后,通过发布应用、传输文件到UOS服务器,并解决权限问题,确保应用能够在UOS上顺利运行。文章还提供了常见问题的解决方案,如依赖缺失、权限不足和服务启动失败等,帮助开发者避免常见陷阱。通过本文的指导,开发者可以轻松将.NET Core应用部署到UOS系统,并实现24/7的稳定运行。

java专栏 589

Delphi工具—反编译Delphi(三)

第三节 Delphi 反编译工具      反向工程一直被认为是技术奇才的专有艺术,需要熟悉汇编语言和调试器。下面几个Delphi反编译器允许任何人反编译大多数Delphi可执行文件,即使只有有限的技术知识。      如果你对Delphi程序反向工程感兴趣,我建议你看一看以下几个“反编译器”:      DeDe      DeDe是一个非常快的程序,用于分析Delphi编译的可

eagletian的专栏 1万+

【高级强化学习:算法、优化与泛化】第13章 扩散模型策略优化(Diffusion Policy Optimization)

\quad$ 计算均值 $\mu_t = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}_t}} \tilde{\epsilon} \right)$.$\quad$ 组合得分估计: $\tilde{\epsilon} = \epsilon_{\text{unc}} + w \cdot (\epsilon_{\text{con}} - \epsilon_{\text{unc}})$.

u012133341的博客 339

【转】收集各种反编译工具 常用EXE文件反编译工具下载

常用EXE文件反编译工具下载 PE Explorer 1.98 R2 汉化版 >q D9"^ & s 10'&IS1& 功能极为强大的可视化汉化集成工具,可直接浏览、修改软件资源,包括菜单、对话框、字符串表等; 另外,还具备有 W32DASM 软件的反编译能力和PEditor 软件的 PE 文件头编辑功能,可以更容易的分析源代码,修复损坏了的资源,可...

2265

Windows 上 openclaw onboard --install-daemon 命令的安装位置和启动配置

摘要:Windows系统中,执行openclaw-cnonboard--install-daemon命令会创建计划任务OpenClawGateway,该任务在用户登录时自动运行位于%USERPROFILE%.openclaw\gateway.cmd的脚本文件来启动服务。管理方法包括通过任务计划程序或命令行(schtasks)查看/启停任务,使用openclaw gateway命令操作服务,或通过删除计划任务和脚本文件完全卸载服务。该机制确保OpenClawGateway服务随系统登录自动启动。(149字)

大坡3D软件开发 1377

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

delphi linux arm_原创干货 | 【恶意代码分析技巧】05exe_Delphi

点击上方蓝色字体,关注我们1.Delphi的介绍Delphi曾经是一种很流行的语言,但由于Borland公司(Delphi语言的母公司)连续决策失误,使得delphi衰落。如今还在使用Delphi的程序员凤毛麟角,奇怪的是,使用Delphi编写的恶意程序却层出不穷。大概是因为Delphi比C++易学,比VB强大。Delphi比C++易学,主要是因为Delphi是可视化开发的,这点和VB...

weixin_39809140的博客 597

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

把程序显示在最前面 delphi_原创干货 | 【恶意代码分析技巧】05exe_Delphi

点击上方蓝色字体,关注我们1.Delphi的介绍Delphi曾经是一种很流行的语言,但由于Borland公司(Delphi语言的母公司)连续决策失误,使得delphi衰落。如今还在使用Delphi的程序员凤毛麟角,奇怪的是,使用Delphi编写的恶意程序却层出不穷。大概是因为Delphi比C++易学,比VB强大。Delphi比C++易学,主要是因为Delphi是可视化开发的,这点和VB...

weixin_39637924的博客 459

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

DELPHI反编译工具IDR.zip资源介绍:DELPHI程序反编译的强大助手

DELPHI反编译工具IDR.zip资源介绍:DELPHI程序反编译的强大助手 去发现同类优质开源项目:https://gitcode.com/ 在软件开发领域,DELPHI语言的编译程序一直以其高效的执行速度和出色的运行稳定性著称。然而,当需要深入研究或修复DELPHI程序时,反编译工具的重要性便凸显出来。今天,我们将为您介绍一款专为DELPHI程序设计的反编译工具——IDR.zip。 项目介绍...

gitblog_06772的博客 842

反编译delphi_反编译Delphi(1/3)

Simply speaking, decompilation is the inverse of compilation: translating an executable file into a higher level language. 简而言之,反编译是编译的反面:将可执行文件翻译成高级语言。 Suppose you lose your Delphi project's sou...

cumao2792的博客 5446
上一篇: 进入2009,以此纪念
下一篇: .NET对PE结构的扩展
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值