昨日练习了一把如何破解Delphi软件。下面和大家分享一下破解的过程,对初学者,希望有授之以渔的作用。
首先分析我们的目标软件,不要问我破解的是什么软件。保护知识产权,要从娃娃抓取。
目标软件是一个销售系统,它有时间限制,安装完成后可以正常运行,把系统时间调后一年,软件不能正常执行,再把系统时间调回,效果依然一样。
在使用过期软件时,系统依然能够登陆,但是在点击菜单的时候,弹出您使用的软件已经过期的字样。
下手:
1.观察程序的目录结构,程序主要就是一个exe文件,其余有两个ddl,察看属性,是borland公司的。
2.使用UltraEdit打开这个软件的主执行文件,看看头部,没有加壳。看看中间的资源代码,出现TLabel等开头的字符,显然该软件是Delphi开发的
3.使用Dede打开这个软件的exe文件,进行分析和二次详细分析。
4我们知道,在登陆过程中显然没有进行过期验证,而是在菜单的表单弹出来之前验证的,目标明确,我们直奔主Form文件。打开窗体标签,从中发现了TMainForm,在右边的代码中我们看到了工具栏常见的代码
object ToolButton4: TToolButton
Left = 124
Top = 0
Cursor = crHandPoint
Hint = '客户资料管理'
Caption = 'ToolButton4'
ImageIndex = 4
OnClick = ToolButton4Click
end
我们从中选取几个按钮的事件。例如 OnClick = ToolButton4Click 和OnClick = ToolButton5Click
5。进入过程标签,从里面选取MainFormUnit,在右边的事件地址列表中找到我们刚才选取的ToolButton4Click,ToolButton5Click,点击右键,反汇编。生成的代码均包含这样一段
* Reference to : TMainForm.Proc_005FA21C()
|
005FABB4 E863F6FFFF call 005FA21C
005FABB9 84C0 test al, al
005FABBB 0F85B3000000 jnz 005FAC74
在这里,如果jnz跳转了,那么整个过程就结束了,毫无疑问,jnz上面的call就是进行验证的地方。
双击这个call,我们跟踪进去。没有什么特别的地方,但是发现这样的代码
* Possible String Reference to: '当数据备份与恢复窗口打开时,不能打开
| 其它的窗口'
|
005FA24B BA64A25F00 mov edx, $005FA264
也就是说这个全局函数在检验是否过期之后,还进行其他的合法性检查,如果察看其他的click事件,会发现还有一些用户权限的检查。那么我们往上找
* Reference to : THYMain._PROC_00547434()
|
005FA228 E807D2F4FF call 00547434
005FA22D 84C0 test al, al
005FA22F 7404 jz 005FA235
005FA231 B301 mov bl, $01
005FA233 EB22 jmp 005FA257
这个00547434,如果执行后没问题,jz才可以继续执行。可疑,我们继续跟踪进去,双击该函数
奇迹发生了,我们看到了什么?
* Possible String Reference to: '您使用的软件是试用版,试用期限将到?
| 绻绦褂茫肽胛颐橇担?
| 购买软件的使用权限。不然将影响您的?
| ぷ?您已输入的数据不会丢失,注册后?
| 杉绦褂?'
|
00547457 BAA8745400 mov edx, $005474A8
显然,这个函数就是判断过期的地方,一旦过期就会发出警告窗口。
地方找到了,我们仔细分析一下他的结构,有两个地方可以发生检查
00547434 53 push ebx
00547435 56 push esi
00547436 8BF0 mov esi, eax
00547438 33DB xor ebx, ebx
* Reference to field THYMain.OFFS_003C
|
0054743A 837E3C02 cmp dword ptr [esi+$3C], +$02
0054743E 7407 jz 00547447
00547440 8BC6 mov eax, esi
* Reference to: HYMainUnit.Proc_00545E00
|
00547442 E8B9E9FFFF call 00545E00
* Reference to field THYMain.OFFS_003C
|
00547447 837E3C01 cmp dword ptr [esi+$3C], +$01
0054744B 7522 jnz 0054746F
* Reference to TApplication instance
|
0054744D A138316000 mov eax, dword ptr [$00603138]
00547452 8B00 mov eax, [eax]
* Reference to field TApplication.Handle : HWnd
|
00547454 8B4024 mov eax, [eax+$24]
* Possible String Reference to: '您使用的软件是试用版,试用期限将到?
| 绻绦褂茫肽胛颐橇担?
| 购买软件的使用权限。不然将影响您的?
| ぷ?您已输入的数据不会丢失,注册后?
| 杉绦褂?'
|
00547457 BAA8745400 mov edx, $005474A8
* Reference to: Unit_00500794.Proc_00500ED4
|
0054745C E8739AFBFF call 00500ED4
00547461 33D2 xor edx, edx
* Reference to field THYMain.OFFS_00C4
|
00547463 8B86C4000000 mov eax, [esi+$00C4]
* Possible reference to virtual method THYMain.OFFS_00C0
|
00547469 FF96C0000000 call dword ptr [esi+$00C0]
* Reference to field THYMain.OFFS_003C
|
0054746F 837E3C02 cmp dword ptr [esi+$3C], +$02
00547473 7524 jnz 00547499
* Reference to TApplication instance
|
00547475 A138316000 mov eax, dword ptr [$00603138]
0054747A 8B00 mov eax, [eax]
* Reference to field TApplication.Handle : HWnd
|
0054747C 8B4024 mov eax, [eax+$24]
* Possible String Reference to: '您使用的软件是试用版,如果您要继续?
| 褂茫肽胛颐橇担郝蛉砑氖褂?
| 权限(您已输入的数据不会丢失,注册后
| 可继续使用)'
|
0054747F BA48755400 mov edx, $00547548
* Reference to: Unit_00500794.Proc_00500ED4
|
00547484 E84B9AFBFF call 00500ED4
00547489 33D2 xor edx, edx
* Reference to field THYMain.OFFS_00C4
|
0054748B 8B86C4000000 mov eax, [esi+$00C4]
* Possible reference to virtual method THYMain.OFFS_00C0
|
00547491 FF96C0000000 call dword ptr [esi+$00C0]
00547497 B301 mov bl, $01
00547499 8BC3 mov eax, ebx
0054749B 5E pop esi
0054749C 5B pop ebx
0054749D C3 ret
一个是0054744B jnz 0054746F
另一个是00547473 jnz 00547499
显然,下面要做的不用说了吧,就是75->EB的工作了,呵呵。总算舒了一口气,
6.注意哦,这里的地址都是相对地址,Dede提供了一个转到物理地址的工具,在工具菜单里面。我们使用它得到这两句的物理地址是0014684B,00146873
7不用多了,打开UltraEdit,找到这两个地址。做你该做的事!
后记:本科苦学汇编语言,今天总算发挥了点作用,不知道是欣慰呢,还是无奈!
分享到:
相关推荐
《深入理解DEDE Delphi反编译软件:揭示Delphi程序的秘密》 在软件开发的世界里,逆向工程是一项至关重要的技术,它可以帮助开发者理解已有的程序代码,从而进行学习、调试或者改进。DEDE Delphi反编译软件,作为一...
Dede3.99是一款专门针对Delphi编译器的反编译软件,其主要功能是能够将已编译的Delphi可执行文件转换回源代码形式。这个工具的亮点在于它支持64位系统,这意味着它可以处理在Windows 7、Windows 8和Windows 10上运行...
总的来说,DeDe V3.50.02不仅是DELPHI程序员的强大辅助工具,也是软件逆向工程和教学研究的重要资源。它提供的反编译功能,以及包含的源代码,都为开发者深入理解DELPHI程序的工作机制提供了窗口,促进了技术的学习...
而"dede 3.5 Delphi反编译"这个主题涉及到的是对使用Delphi编写的应用程序进行逆向工程的过程,目的是为了理解其内部工作原理或者获取源代码。 反编译是软件逆向工程的一部分,它是指将已编译的可执行文件转换回源...
Delphi 是一款强大的集成开发环境(IDE),由Embarcadero Technologies公司开发,主要用于编写Windows...对于进一步的学习和开发,了解Delphi的语法、VCL组件的使用以及如何利用Delphi的特性进行高效编程是至关重要的。
2. **Delphi编程**:了解Delphi的基本语法、对象导向特性以及VCL框架对于正确理解和使用DEDE至关重要。VCL提供了丰富的预定义组件,使得开发者可以快速构建应用程序。 3. **逆向工程**:逆向工程是软件开发中的一个...
将Delphi编译的Exe反汇编成Delphi源程序,效果还不错,dfm可以弄出来,不过 Pas里还是ASM,对于研究破解还是很有用的
《DeDeDark Delphi EXE 反编译软件 3.50.4:深入理解与应用探索》 DeDeDark是一款专为DELPHI程序设计的反编译工具,其3.50.4版本以其多语言界面,尤其是包含中文,以及对D7版本的支持,受到了广大开发者的欢迎。在...
Delphi反编译工具Dede是一款专为Delphi编译的可执行程序(exe)设计的逆向工程软件。在IT行业中,逆向工程是一种技术手段,用于分析已编译的程序,以揭示其内部结构、工作原理和实现细节。这对于软件开发者来说,...
将Delphi编译的Exe反汇编成Delphi源程序,效果还不错,dfm可以弄出来,不过 Pas里还是ASM,对于研究破解还是很有用的 What is DeDe? ------------- DeDe is a very fast program that can analize executables compiled ...
反编译dede,查壳peido,脱壳od,查exe和dll文件的exescope,rescope,皆是常用工具。 附带某些文件在dede使用时出现stream read error解决说明。
标题中的“dede dephi反编译exe最新版”指的是使用DeDe,一个基于Delphi开发的反编译工具,用于解析和理解EXE可执行文件的内部结构。Delphi是一种流行的面向对象的Pascal编程语言,常用于创建Windows应用程序。反...
本文将深入探讨Delphi反编译工具DeDe以及汉字Unicode转换器,它们在软件逆向工程中的应用。 首先,Delphi是一种基于Object Pascal的集成开发环境(IDE),广泛用于Windows应用程序的开发。它的编译器能将源代码编译...
总的来说,"DeDe_3.5" 提供了一种有效的手段来理解和研究Delphi编译后的代码,这对于软件开发者、安全研究人员以及教学者来说具有很高的价值。它揭示了Delphi程序的内部工作原理,帮助我们更好地理解和利用这些程序...
总之,Dede Delphi反编译器是一个强大的工具,可以帮助开发者深入理解Delphi程序的内部运作,但同时也需要注意其可能带来的法律风险。"vcl6.dsf"文件则揭示了Delphi的VCL组件库,是Delphi开发的重要资源。对于希望...
在实际应用中,这类工具通常由安全专家、软件开发者和逆向工程师使用,他们在处理Delphi编译的软件时,会依赖这类工具来洞察程序的内部运作,进行故障排查、性能优化或者安全评估。 总之,"最强大的Delphi反汇编...
此外,由于Delphi使用了其特有的Virtual Machine(VMT)来执行代码,反编译器还需要理解并转换这些虚拟机指令。 在实际应用中,DeDeDark可能用于以下几个方面: 1. **代码逆向工程**:当遇到无法获取源代码的Delphi...
在使用DeDe V3.50.02时,用户可以加载DELPHI编译的.exe或.dll文件,工具会尝试解析其内部结构,生成源代码的近似表示。虽然无法保证完全恢复原始源代码,但可以提供相当大的帮助,特别是对于理解程序的流程和函数...
DeDe is a very fast program that can analyze executables compiled with Delphi 2,3,4,5 and Builder and give you the following: - All dfm files of the target. You will be able to open and edit them ...