TA的每日心情 | 开心 2024-11-29 10:09 |
|---|
签到天数: 44 天 [LV.5]常住居民I
|
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls;
type
TfrmMain=class(TForm)
btnFunc1: TButton;
btnFunc2: TButton;
lblTip: TLabel;
procedure FormCreate(Sender : TObject);
procedure btnFunc1Click(Sender : TObject);
procedure btnFunc2Click(Sender : TObject);
procedure _PROC_00452954(Sender : TObject);
procedure _PROC_00452BE5(Sender : TObject);
procedure _PROC_00452C14(Sender : TObject);
private
{ Private declarations }
public
{ Public declarations }
end ;
var
frmMain: TfrmMain;
{This file is generated by DeDe Ver 3.99a Copyright (c) 1999-2002 DaFixer}
implementation
{$R *.DFM}
procedure TfrmMain.FormCreate(Sender : TObject);
begin
(*
00452A28 55 push ebp
00452A29 8BEC mov ebp, esp
00452A2B 83C4F8 add esp, -$08
00452A2E 8955F8 mov [ebp-$08], edx
00452A31 8945FC mov [ebp-$04], eax
* Reference to frmMain
|
00452A34 8B45FC mov eax, [ebp-$04]
* Reference to : TfrmMain._PROC_00452954()
|
00452A37 E818FFFFFF call 00452954
* Reference to frmMain
|
00452A3C 8B55FC mov edx, [ebp-$04]
* Reference to field TfrmMain.OFFS_0304
|
00452A3F 888204030000 mov [edx+$0304], al
* Reference to frmMain
|
00452A45 8B45FC mov eax, [ebp-$04]
* Reference to field TfrmMain.OFFS_0304
|
00452A48 80B80403000000 cmp byte ptr [eax+$0304], $00
00452A4F 7542 jnz 00452A93
00452A51 33C9 xor ecx, ecx
00452A53 B201 mov dl, $01
* Reference to class TfrmReg
|
00452A55 A110254500 mov eax, dword ptr [$00452510]
* Reference to : TApplication._PROC_004497C0()
|
00452A5A E8616DFFFF call 004497C0
* Reference to TfrmReg instance
|
00452A5F 8B1570424500 mov edx, [$00454270]
00452A65 8902 mov [edx], eax
* Reference to TfrmReg instance
|
00452A67 A170424500 mov eax, dword ptr [$00454270]
00452A6C 8B00 mov eax, [eax]
00452A6E 8B10 mov edx, [eax]
* Reference to method TfrmReg.ShowModal()
|
00452A70 FF92EC000000 call dword ptr [edx+$00EC]
* Reference to TfrmReg instance
|
00452A76 A170424500 mov eax, dword ptr [$00454270]
00452A7B 8B00 mov eax, [eax]
* Reference to: System.Proc_00403630
|
00452A7D E8AE0BFBFF call 00403630
* Reference to frmMain
|
00452A82 8B45FC mov eax, [ebp-$04]
* Reference to : TfrmMain._PROC_00452954()
|
00452A85 E8CAFEFFFF call 00452954
* Reference to frmMain
|
00452A8A 8B55FC mov edx, [ebp-$04]
* Reference to field TfrmMain.OFFS_0304
|
00452A8D 888204030000 mov [edx+$0304], al
* Reference to frmMain
|
00452A93 8B45FC mov eax, [ebp-$04]
* Reference to field TfrmMain.OFFS_0304
|
00452A96 8A9004030000 mov dl, byte ptr [eax+$0304]
* Reference to frmMain
|
00452A9C 8B45FC mov eax, [ebp-$04]
* Reference to control TfrmMain.btnFunc1 : TButton
|
00452A9F 8B80F8020000 mov eax, [eax+$02F8]
00452AA5 8B08 mov ecx, [eax]
* Reference to method TButton.SetEnabled(Boolean)
|
00452AA7 FF5164 call dword ptr [ecx+$64]
* Reference to frmMain
|
00452AAA 8B45FC mov eax, [ebp-$04]
* Reference to field TfrmMain.OFFS_0304
|
00452AAD 8A9004030000 mov dl, byte ptr [eax+$0304]
* Reference to frmMain
|
00452AB3 8B45FC mov eax, [ebp-$04]
* Reference to control TfrmMain.btnFunc2 : TButton
|
00452AB6 8B80FC020000 mov eax, [eax+$02FC]
00452ABC 8B08 mov ecx, [eax]
* Reference to method TButton.SetEnabled(Boolean)
|
00452ABE FF5164 call dword ptr [ecx+$64]
* Reference to frmMain
|
00452AC1 8B45FC mov eax, [ebp-$04]
* Reference to field TfrmMain.OFFS_0304
|
00452AC4 80B80403000000 cmp byte ptr [eax+$0304], $00
00452ACB 7415 jz 00452AE2
* Possible String Reference to: '软件已注册,全部功能可用'
|
00452ACD BA042B4500 mov edx, $00452B04
* Reference to frmMain
|
00452AD2 8B45FC mov eax, [ebp-$04]
* Reference to control TfrmMain.lblTip : TLabel
|
00452AD5 8B8000030000 mov eax, [eax+$0300]
* Reference to: Controls.Proc_00431A58
|
00452ADB E878EFFDFF call 00431A58
00452AE0 EB13 jmp 00452AF5
* Possible String Reference to: '未注册,请放入sRegFile2020.Dat 密钥文件... ... ...'
|
00452AE2 BA282B4500 mov edx, $00452B28
* Reference to frmMain
|
00452AE7 8B45FC mov eax, [ebp-$04]
* Reference to control TfrmMain.lblTip : TLabel
|
00452AEA 8B8000030000 mov eax, [eax+$0300]
* Reference to: Controls.Proc_00431A58
|
00452AF0 E863EFFDFF call 00431A58
00452AF5 59 pop ecx
00452AF6 59 pop ecx
00452AF7 5D pop ebp
00452AF8 C3 ret
*)
end;
procedure TfrmMain.btnFunc1Click(Sender : TObject);
begin
(*
00452B5C 55 push ebp
00452B5D 8BEC mov ebp, esp
00452B5F 83C4F8 add esp, -$08
00452B62 8955F8 mov [ebp-$08], edx
00452B65 8945FC mov [ebp-$04], eax
* Possible String Reference to: '功能1执行成功,仅注册后可访问'
|
00452B68 B8802B4500 mov eax, $00452B80
* Reference to : TMessageForm._PROC_00427930()
|
00452B6D E8BE4DFDFF call 00427930
00452B72 59 pop ecx
00452B73 59 pop ecx
00452B74 5D pop ebp
00452B75 C3 ret
*)
end;
procedure TfrmMain.btnFunc2Click(Sender : TObject);
begin
(*
00452BA0 55 push ebp
00452BA1 8BEC mov ebp, esp
00452BA3 83C4F8 add esp, -$08
00452BA6 8955F8 mov [ebp-$08], edx
00452BA9 8945FC mov [ebp-$04], eax
* Possible String Reference to: '功能2执行成功,仅注册后可访问'
|
00452BAC B8C42B4500 mov eax, $00452BC4
* Reference to : TMessageForm._PROC_00427930()
|
00452BB1 E87A4DFDFF call 00427930
00452BB6 59 pop ecx
00452BB7 59 pop ecx
00452BB8 5D pop ebp
00452BB9 C3 ret
*)
end;
procedure TfrmMain._PROC_00452954(Sender : TObject);
begin
(*
00452954 55 push ebp
00452955 8BEC mov ebp, esp
00452957 81C428FEFFFF add esp, $FFFFFE28
0045295D 33D2 xor edx, edx
0045295F 8955F4 mov [ebp-$0C], edx
00452962 8945FC mov [ebp-$04], eax
00452965 33C0 xor eax, eax
00452967 55 push ebp
00452968 68FC294500 push $004529FC
***** TRY
|
0045296D 64FF30 push dword ptr fs:[eax]
00452970 648920 mov fs:[eax], esp
00452973 C645FB00 mov byte ptr [ebp-$05], $00
* Possible String Reference to: 'sRegFile2020.Dat'
|
00452977 B8142A4500 mov eax, $00452A14; // 密钥文件名字符串地址
* Reference to: Unit_0040727C.Proc_00408714
|
0045297C E8935DFBFF call 00408714; // 调用文件存在性检测函数
00452981 84C0 test al, al; // 判断文件是否存在(al返回值)
// -------------------------------修改点1:jmp 004529E0------------------------------------------------------------------
00452983 7461 jz 004529E6; // 文件不存在直接跳出校验逻辑
* Possible String Reference to: 'sRegFile2020.Dat'
|
00452985 BA142A4500 mov edx, $00452A14
0045298A 8D8528FEFFFF lea eax, [ebp+$FFFFFE28]
* Reference to: System.Proc_00402C58
|
00452990 E8C302FBFF call 00402C58
00452995 8D8528FEFFFF lea eax, [ebp+$FFFFFE28]
* Reference to: System.Proc_004029F4
|
0045299B E85400FBFF call 004029F4
* Reference to: System.Proc_00402864
|
004529A0 E8BFFEFAFF call 00402864
004529A5 8D55F4 lea edx, [ebp-$0C]
004529A8 8D8528FEFFFF lea eax, [ebp+$FFFFFE28]
* Reference to: System.Proc_00402FD0
|
004529AE E81D06FBFF call 00402FD0
004529B3 8D8528FEFFFF lea eax, [ebp+$FFFFFE28]
* Reference to: System.Proc_0040303C
|
004529B9 E87E06FBFF call 0040303C
* Reference to: System.Proc_00402864
|
004529BE E8A1FEFAFF call 00402864
004529C3 8D8528FEFFFF lea eax, [ebp+$FFFFFE28]
* Reference to: System.Proc_00402D14
|
004529C9 E84603FBFF call 00402D14
* Reference to: System.Proc_00402864
|
004529CE E891FEFAFF call 00402864
004529D3 8B45F4 mov eax, [ebp-$0C]
* Reference to: MainUnit.Proc_004528F4
|
004529D6 E819FFFFFF call 004528F4; // 密钥校验算法函数
004529DB 3D21C3E498 cmp eax, $98E4C321; // 对比校验正确哈希值
004529E0 7504 jnz 004529E6; // 校验不匹配跳过注册标记赋值
// -------------------------------修改点2:jmp 004529E2--------------------------------------------------------------
004529E2 C645FB01 mov byte ptr [ebp-$05], $01; // 校验通过,标记置1(已注册)
004529E6 33C0 xor eax, eax
004529E8 5A pop edx
004529E9 59 pop ecx
004529EA 59 pop ecx
004529EB 648910 mov fs:[eax], edx
****** FINALLY
|
* Possible String Reference to: '奅麐錧?'
|
004529EE 68032A4500 push $00452A03
004529F3 8D45F4 lea eax, [ebp-$0C]
* Reference to: System.Proc_00404380
|
004529F6 E88519FBFF call 00404380
004529FB C3 ret
004529FC E98313FBFF jmp 00403D84
00452A01 EBF0 jmp 004529F3
****** END
|
00452A03 8A45FB mov al, byte ptr [ebp-$05]
00452A06 8BE5 mov esp, ebp
00452A08 5D pop ebp
00452A09 C3 ret
*)
end;
procedure TfrmMain._PROC_00452BE5(Sender : TObject);
begin
(*
00452BE5 8BEC mov ebp, esp
00452BE7 33C0 xor eax, eax
00452BE9 55 push ebp
00452BEA 68092C4500 push $00452C09
***** TRY
|
00452BEF 64FF30 push dword ptr fs:[eax]
00452BF2 648920 mov fs:[eax], esp
00452BF5 FF05085C4500 inc dword ptr [$00455C08]
00452BFB 33C0 xor eax, eax
00452BFD 5A pop edx
00452BFE 59 pop ecx
00452BFF 59 pop ecx
00452C00 648910 mov fs:[eax], edx
****** FINALLY
|
00452C03 68102C4500 push $00452C10
00452C08 C3 ret
00452C09 E97611FBFF jmp 00403D84
00452C0E EBF8 jmp 00452C08
****** END
|
00452C10 5D pop ebp
00452C11 C3 ret
*)
end;
procedure TfrmMain._PROC_00452C14(Sender : TObject);
begin
(*
00452C14 832D085C450001 sub dword ptr [$00455C08], +$01
00452C1B C3 ret
*)
end;
end.
反汇编里标注了2处破解点,纯属于没入门的玩具,高手飘过吧......!
|
-
-
破解练习.rar
238.14 KB, 下载次数: 0, 下载积分: 飘云币 -2 枚
|