求高手解析一段代码

回首一瞬间 2017-09-27 01:52:16

一下代码是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]
...全文
423 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
就这段代码来说,并没有看到使用硬编码的密码或者读取密码的部分,还是要看 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;
秋天之落叶 2017-09-29
  • 打赏
  • 举报
回复
汇编简直就是神学的,一看我就晕菜,羡慕能看懂汇编的,哈哈哈
回首一瞬间 2017-09-28
  • 打赏
  • 举报
回复
引用 1 楼 DelphiGuy 的回复:
这么短的代码看不出什么,可能是调用了某个方法。
下面是完整代码,是一个确定按钮点击后执行的方法,这个功能是测试连接数据库,因为界面上没有输入密码的地方,我怀疑是不是写死了,反编译这个方法后,还是看不出来,看看能不能帮解析一下哈。 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;
lyhoo163 2017-09-28
  • 打赏
  • 举报
回复
这真的请高手来分折了。
lyhoo163 2017-09-27
  • 打赏
  • 举报
回复
深奥呢!头晕了!
  • 打赏
  • 举报
回复
这么短的代码看不出什么,可能是调用了某个方法。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧