一下代码是dede反编译过来的,哪个高手能解析这段代码呢?谢谢了* Reference to control Password : N.A.
|
005A7EF7 8B8314030000 mov eax, [ebx+$0314]
005A7EFD 8B30 mov esi, [eax]
005A7EFF FF5604 call dword ptr [esi+$04]
005A7F02 8D55E8 lea edx, [ebp-$18]
解决方案 »
- 查询时间与datetimepicker的时间比较问题
- 请(DELPHI+ADO)高手诊断
- loadfromfile And then SavetoFile 保存不了文件
- Delphi 2006-11专家榜
- 这个问题有点难。
- 关于quickreport分页打印
- 关于CORBA开发
- 高手帮忙,急,关于excel导入sql程序
- delphi ado 可以连接linux db2 ?怎么连接,都需要配置什么东西
- 我真不懂现在DELPHI 6都出来了,为什么《DELPHI 4 从入门到精通》这本书还会这么热?
- 安卓 模拟按键 点击函数,求指点用什么函数??
- 写一个像WIN7 样的 WINDOWS 照片查看器?(大家给个思路)
下面是完整代码,是一个确定按钮点击后执行的方法,这个功能是测试连接数据库,因为界面上没有输入密码的地方,我怀疑是不是写死了,反编译这个方法后,还是看不出来,看看能不能帮解析一下哈。procedure TfrmNetSet.OKBtnClick(Sender : TObject);
begin
(*
005A7E48 55 push ebp
005A7E49 8BEC mov ebp, esp
005A7E4B B904000000 mov ecx, $00000004
005A7E50 6A00 push $00
005A7E52 6A00 push $00
005A7E54 49 dec ecx
005A7E55 75F9 jnz 005A7E50
005A7E57 51 push ecx
005A7E58 53 push ebx
005A7E59 56 push esi
005A7E5A 8BD8 mov ebx, eax
005A7E5C 33C0 xor eax, eax
005A7E5E 55 push ebp* Possible String Reference to: '槭洛胫^[嬪]?
|
005A7E5F 68C17F5A00 push $005A7FC1***** TRY
|
005A7E64 64FF30 push dword ptr fs:[eax]
005A7E67 648920 mov fs:[eax], esp
005A7E6A 8D55FC lea edx, [ebp-$04]* Reference to control Label1 : TLabel
|
005A7E6D 8B8308030000 mov eax, [ebx+$0308]* Reference to: Controls.TControl.GetText(TControl):TCaption;
|
005A7E73 E858E2EAFF call 004560D0
005A7E78 8B45FC mov eax, [ebp-$04]
005A7E7B 50 push eax
005A7E7C 8D55F8 lea edx, [ebp-$08]* Reference to control Panel1 : N.A.
|
005A7E7F 8B8304030000 mov eax, [ebx+$0304]* Reference to: Controls.TControl.GetText(TControl):TCaption;
|
005A7E85 E846E2EAFF call 004560D0
005A7E8A 8B45F8 mov eax, [ebp-$08]
005A7E8D 50 push eax
005A7E8E 8D55F4 lea edx, [ebp-$0C]* Reference to control CancelButton : N.A.
|
005A7E91 8B8300030000 mov eax, [ebx+$0300]* Reference to: Controls.TControl.GetText(TControl):TCaption;
|
005A7E97 E834E2EAFF call 004560D0
005A7E9C 8B55F4 mov edx, [ebp-$0C]
005A7E9F A1D0E99700 mov eax, dword ptr [$0097E9D0]
005A7EA4 8B00 mov eax, [eax]
005A7EA6 59 pop ecx|
005A7EA7 E81031FEFF call 0058AFBC
005A7EAC 84C0 test al, al
005A7EAE 0F84DD000000 jz 005A7F91
005A7EB4 8D55F0 lea edx, [ebp-$10]* Reference to control CancelButton : N.A.
|
005A7EB7 8B8300030000 mov eax, [ebx+$0300]* Reference to: Controls.TControl.GetText(TControl):TCaption;
|
005A7EBD E80EE2EAFF call 004560D0
005A7EC2 8B45F0 mov eax, [ebp-$10]
005A7EC5 50 push eax* Possible String Reference to: 'ServerName'
|
005A7EC6 B9D87F5A00 mov ecx, $005A7FD8* Possible String Reference to: 'Server'
|
005A7ECB BAEC7F5A00 mov edx, $005A7FEC* Reference to control Password : N.A.
|
005A7ED0 8B8314030000 mov eax, [ebx+$0314]
005A7ED6 8B30 mov esi, [eax]
005A7ED8 FF5604 call dword ptr [esi+$04]
005A7EDB 8D55EC lea edx, [ebp-$14]* Reference to control Panel1 : N.A.
|
005A7EDE 8B8304030000 mov eax, [ebx+$0304]* Reference to: Controls.TControl.GetText(TControl):TCaption;
|
005A7EE4 E8E7E1EAFF call 004560D0
005A7EE9 8B45EC mov eax, [ebp-$14]
005A7EEC 50 push eax* Possible String Reference to: 'DBName'
|
005A7EED B9FC7F5A00 mov ecx, $005A7FFC* Possible String Reference to: 'Server'
|
005A7EF2 BAEC7F5A00 mov edx, $005A7FEC* Reference to control Password : N.A.
|
005A7EF7 8B8314030000 mov eax, [ebx+$0314]
005A7EFD 8B30 mov esi, [eax]
005A7EFF FF5604 call dword ptr [esi+$04]
005A7F02 8D55E8 lea edx, [ebp-$18]* Reference to control Label1 : TLabel
|
005A7F05 8B8308030000 mov eax, [ebx+$0308]* Reference to: Controls.TControl.GetText(TControl):TCaption;
|
005A7F0B E8C0E1EAFF call 004560D0
005A7F10 8B45E8 mov eax, [ebp-$18]
005A7F13 50 push eax* Possible String Reference to: 'User'
|
005A7F14 B90C805A00 mov ecx, $005A800C* Possible String Reference to: 'Server'
|
005A7F19 BAEC7F5A00 mov edx, $005A7FEC* Reference to control Password : N.A.
|
005A7F1E 8B8314030000 mov eax, [ebx+$0314]
005A7F24 8B30 mov esi, [eax]
005A7F26 FF5604 call dword ptr [esi+$04]
005A7F29 6A00 push $00
005A7F2B 6A00 push $00
005A7F2D 6A00 push $00
005A7F2F 6A00 push $00
005A7F31 6A00 push $00* Possible String Reference to: '数据库服务器'
|
005A7F33 681C805A00 push $005A801C* Possible String Reference to: '设置为'
|
005A7F38 6834805A00 push $005A8034
005A7F3D 8D55E0 lea edx, [ebp-$20]* Reference to control CancelButton : N.A.
|
005A7F40 8B8300030000 mov eax, [ebx+$0300]* Reference to: Controls.TControl.GetText(TControl):TCaption;
|
005A7F46 E885E1EAFF call 004560D0
005A7F4B FF75E0 push dword ptr [ebp-$20]
005A7F4E 6844805A00 push $005A8044
005A7F53 8D55DC lea edx, [ebp-$24]* Reference to control Panel1 : N.A.
|
005A7F56 8B8304030000 mov eax, [ebx+$0304]* Reference to: Controls.TControl.GetText(TControl):TCaption;
|
005A7F5C E86FE1EAFF call 004560D0
005A7F61 FF75DC push dword ptr [ebp-$24]
005A7F64 8D45E4 lea eax, [ebp-$1C]
005A7F67 BA04000000 mov edx, $00000004* Reference to: System.@LStrCatN;
|
005A7F6C E803CEE5FF call 00404D74
005A7F71 8B45E4 mov eax, [ebp-$1C]
005A7F74 50 push eax* Possible String Reference to: '成功'
|
005A7F75 6850805A00 push $005A8050
005A7F7A 6A00 push $00
005A7F7C 33C9 xor ecx, ecx
005A7F7E 33D2 xor edx, edx* Possible String Reference to: 'db_set'
|
005A7F80 B860805A00 mov eax, $005A8060|
005A7F85 E80A9BFFFF call 005A1A94
005A7F8A 8BC3 mov eax, ebx* Reference to: Forms.TCustomForm.Close(TCustomForm);
|
005A7F8C E887B0ECFF call 00473018
005A7F91 33C0 xor eax, eax
005A7F93 5A pop edx
005A7F94 59 pop ecx
005A7F95 59 pop ecx
005A7F96 648910 mov fs:[eax], edx****** FINALLY
|* Possible String Reference to: '^[嬪]?
|
005A7F99 68C87F5A00 push $005A7FC8
005A7F9E 8D45DC lea eax, [ebp-$24]
005A7FA1 BA02000000 mov edx, $00000002* Reference to: System.@LStrArrayClr(void;void;Integer);
|
005A7FA6 E865CAE5FF call 00404A10
005A7FAB 8D45E4 lea eax, [ebp-$1C]* Reference to: System.@LStrClr(void;void);
|
005A7FAE E839CAE5FF call 004049EC
005A7FB3 8D45E8 lea eax, [ebp-$18]
005A7FB6 BA06000000 mov edx, $00000006* Reference to: System.@LStrArrayClr(void;void;Integer);
|
005A7FBB E850CAE5FF call 00404A10
005A7FC0 C3 ret
* Reference to: System.@HandleFinally;
|
005A7FC1 E9CAC2E5FF jmp 00404290
005A7FC6 EBD6 jmp 005A7F9E****** END
|
005A7FC8 5E pop esi
005A7FC9 5B pop ebx
005A7FCA 8BE5 mov esp, ebp
005A7FCC 5D pop ebp
005A7FCD C3 ret*)
end;procedure TfrmNetSet.FormClose(Sender : TObject);
begin
(** Reference to control Password : N.A.
|
005A81CC 8B8014030000 mov eax, [eax+$0314]* Reference to: System.TObject.Free(TObject);
|
005A81D2 E825B9E5FF call 00403AFC
005A81D7 C3 ret*)
end;
005A7EA7 E81031FEFF call 0058AFBC
的内部,这个函数应该是真正测试连接的代码。
其余部分只是读取界面上几个edit的值,然后调用这个连接函数,如果成功就保存几个参数,显示一个信息,大致如此:
procedure TfrmNetSet.OKBtnClick(Sender : TObject);
var
ServerName, DBName, User: string;
begin
try
User := Edit3.Text;
DBName := Edit2.Text;
ServerName := Edit1.Text;
if not xxx.Connect(ServerName, DBName, User) then
exit;
func1('Server', 'ServerName', Edit1.Text);
func1('Server', 'DBName', Edit2.Text);
func1('Server', 'User', Edit3.Text);
ShowMessage('数据库服务器设置为...成功');
func2('db_set');
Close;
finally
// ...
end;
end;