搞了1天半,收工了,今天下载的delphi 6企业版,用dede研究了半天,发现ShowModal()和show是不一样的,ShowModal()只是一个函数(事件、方法)call一下就行,而show是比较困难的,delphi里需要这样调用:Forms.TCustomForm.Show(TCustomForm);,要调用TCustomForm里的Show(TCustomForm)
简单说一下吧
* Reference to: Forms.TApplication.CreateForm(TApplication;TComponentClass;void;void);
|
007795DC E8A38BCFFF call 00472184
………………………………………………………………………………………………………………
………………………………………………………………………………………………………………
………………………………………………………………………………………………………………
* Possible reference to virtual method TGlobalVar_007A90F4.OFFS_00E8
|
0077963E FF92E8000000 call dword ptr [edx+$00E8] 改成E82D56CFFF90(需要一个90占位)
00779644 EB0A jmp 00779650
* Possible String Reference to: 'xxxxxxxxxxxx!'
|
00779646 B880967700 mov eax, $00779680
修改思路,从Unit1.pas中找到
* Reference to: Forms.TCustomForm.Show(TCustomForm);
|
00779B18 E85351CFFF call 0046EC70
这是一个 show Form.xxxx的地方,可以看出是call 0046EC70
用计算器算机器码,算了几次都不对,干脆用OllyICE找到地址0077963E,双击,输入call 0046EC70发现机器码变成了E82D56CFFF,后面加一个90,用UltraEdit写进去就OK了!
在delphi论坛上看到有人讨论ShowModal()和show的区别,他们只是说到窗口是否最前端显示,更深的区别被我挖掘到了。
从这个软件里学到了很多delphi的知道,破解水平没有提高