前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

如何反编译delphi编的软件的源代码?-CSDN论坛-CSDN.NET-中国最大的IT技术社区 --> 首页 论坛帮助 论坛牛人 论坛地图 CSDN > CSDN论坛 > Delphi > Windows SDK/API 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 AZYXIDIAN 如何反编译delphi编的软件的源代码? [问题点数:80分,结帖人CSDN] 不显示删除回复 显示所有回复 显示星级回复 显示得分回复 只显示楼主 收藏 AZYXIDIAN AZYXIDIAN 等级: 结帖率:100% 楼主 发表于: 2006-03-11 00:07:40 如何反编译delphi编的软件的源代码? 更多 分享到: 相关主题推荐: 反编译 源代码 delphi 软件 相关帖子推荐: android加载图片显示时。图片是缩小放大的动画效果。这个是用什么做的? 共享一个自动规范代码格式工具之 Astyle jQuery奇葩错误..求解答 Socket 困扰了很久的问题,跪求有耐心的大牛仔细解答,本人较笨 我是新人,源代码太难,看不懂,怀疑自己了 【新手求助】javaee6怎么添加源码 给我的 打地鼠 源码加上注释,因为是新手看起源码来很费劲 【求助】自己苦心开发的程序,别人复制程序和数据发布牟利 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 回复次数:14 cuteant cuteant 等级: 结帖率:100% 2 #1 得分:0 回复于: 2006-03-11 00:15:37 你希望得到什么结果? 如果你想反编译后得到delphi源码,不用考虑了,不可能。 如果是想得到汇编代码。。。。。。既然你这么问,估计你也不会要汇编代码。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 zhuminghua zhuminghua 等级: 结帖率:100% #2 得分:0 回复于: 2006-03-11 00:30:09 同意一楼,上次就有人讨论过这个问题。 http://community.csdn.net/Expert/topic/4567/4567587.xml?temp=.8419001 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 lovendII lovendII 等级: 结帖率:100% 2 #3 得分:0 回复于: 2006-03-11 08:24:03 Delphi 反编译工具 反向工程一直被认为是技术奇才的专有艺术,需要熟悉汇编语言和调试器。下面几个Delphi反编译器允许任何人反编译大多数Delphi可执行文件,即使只有有限的技术知识。 如果你对Delphi程序反向工程感兴趣,我建议你看一看以下几个“反编译器”: DeDe DeDe是一个非常快的程序,用于分析Delphi编译的可执行文件。反编译之后,DeDe会提供以下信息: 所有的目标dfm文件。你可以用Delphi打开并编辑它们; 带有良好的注释的ASM代码的所有发布的方法,它涉及字符串、输入函数调用、类方法调用、单元的组件、Try-Except和Try-Finally块。默认情况下,DeDe仅仅只获得已发布方法的源代码,但如果你通过使用Tools | Disassemble Proc菜单知道RVA偏移量的话,你也可以处理可执行文件中的其他过程。 大量的附加信息。 你可以创建一个带有所有的dfm、pas、dpr文件的Delphi工程的文件夹。注:pas文件包含上面提及的被良好注释过的ASM代码。他们不能被再编译! Revendepro Revendepro可以找到程序中几乎所有的结构(类、类型、过程等),并生成pascal表达式、过程则以汇编程序的形式写出来。由于汇编程序的某些限制,生成的结果不能被在编译。这个反编译器的源代码可以免费获得。不幸的是,这是唯一一个我不能使用的反编译器—当试图用它反编译某些Delphi可执行文件时,总提示异常。 MRIP 这个对用途文件分割器可以从其它文件中寻找和摘取文件。MRIP分割100多种文件格式。对我们而言,最重要的是MRipper可以反编译任何Delphi可执行文件。该工具可以从Delphi应用程序中摘取所有的资源:cursors(光标)、icons(图标)、dfm文件、pas文件和其他资源。pas文件不包含事件过程执行。MRIP是一个DOS工具。 DfmExplorer 以下是DfmExplorer的说明(包括原始资料): 通过调用Win32 API的“LoadLibrary”或“LoadLibraryEx”函数在内存中载入可执行模块(EXE\DLL\BPL\DPL)。 通过Win32 API的“EnumResourceName”函数找寻RCDATA资源。 载入每个发现的DFM块,解码它并以表的形式(包括它们的名称)存储在内存中。 在程序的主窗口我们可以以文本方式可视化所有载入可执行文件的所有的DFM。 最后,程序可以保存到DFM选择的磁盘,作为ASCII文件(.RC)或作为二进制块(DAT)连接到可执行文件中。 Exe2Dpr 如果你试图放松你的工程源代码,这个Delphi工程源代码救助器可以挽救丢失的源码部分。救助器生成所有的带已分配属性和事件的工程表单和数据模块。生成的事件过程没有主程序(它不是反编译器),但又在可执行文件中的代码地址。这个工具没有GUI—它使用命令行的形式:'exe2dpr [-o] exeFile'。工程源代码在当前目录创建。如果你想覆盖当前目录的任何已存在的文件,就可以使用选项 '-o'。 目前 ,Borland没有提供任何产品用于反编译可执行(.exe)文件或“Delphi 编译文件”(.dcu)为原始的程序代码(.pas)。 Delphi编译单元:DCU(Delphi 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探测器”)。(译者加:陆续译出) 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 clasj clasj 等级: 结帖率:100% 2 #4 得分:0 回复于: 2006-03-11 11:50:37 学习 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 windindance windindance 等级: 结帖率:99.41% 2 #5 得分:0 回复于: 2006-03-11 17:59:55 靠,要是随随便便就能得到源代码,那咱们还怎么混。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 YFLK YFLK 等级: 结帖率:100% #6 得分:0 回复于: 2006-03-13 08:05:15 lovendII(流氓都做了城管) 介绍的很全面但不详细,不知现在是否有人做这方面的研究。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 ly_liuyang ly_liuyang 等级: 结帖率:100% #7 得分:0 回复于: 2006-03-14 11:46:18 Dede获得ASM 但把那个再编译 任何编译程序都不可逆转为源码的 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 ksaiy ksaiy 等级: 结帖率:100% #8 得分:0 回复于: 2006-03-15 22:31:37 DEDE可以反编译出dfm、dpr、pas文件,反编译出来的Pas文件是可读性很好的ASM代码,比如每个事件的ASM代码。要反编译出Delphi的源码现在是没有办法的。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 FigoZhu FigoZhu 等级: 结帖率:100% #9 得分:0 回复于: 2006-03-16 11:33:32 用DEDE已经很不得了了。 结构很清楚的,虽然时汇编代码。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 527xm 527xm 等级: 结帖率:100% #10 得分:0 回复于: 2006-03-29 17:34:35 java可以!!! 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 extcsdn extcsdn 等级: 结帖率:100% #11 得分:0 回复于: 2006-03-29 18:44:08 推荐使用DeDe!如果是java,确实可以反编译成源码!:) 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 ylew ylew 等级: 结帖率:100% #12 得分:0 回复于: 2006-03-30 16:54:35 如果有工具能反编译成DELPHI代码,也不可能布 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 rouqing rouqing 等级: 结帖率:100% #13 得分:0 回复于: 2006-03-30 17:05:20 用DeDe,不过其他的软件也可以大体分析程序的流程等信息 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 kiboisme kiboisme 等级: 结帖率:100% 2 #14 得分:0 回复于: 2006-04-02 12:48:06 了解DEDE流程,你就知道怎么让DEDE识别不了你的程序了。 当然Dede不能用了,你也可以通过其他静态反汇编程序来分析。 所以程序具有SMC功能就非常重要。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 --> --> --> --> --> --> 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 写出你眼中的IE11 赢取新年好礼! 勇敢写出你的爱 赢莫文蔚签名大礼 陈勇- 敏捷开发现状及发展之路 CSDN社区 “大声说出你的爱”特别活动 本帖子已过去太久远了,不再提供回复功能。 核心技术类目 全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace [关闭] [关闭]