我正在尝试对一些用于读取 xbox 360 的十六进制文件和足球名册文件的代码进行逆向工程。
熟悉Delphi的人能帮我理解下面的代码到底在做什么吗?我相信它是从十六进制文件中获取偏移量,然后创建某种指针来提取名字和姓氏。
我已将整个过程粘贴在这里,但我主要关注 FirstName 和 LastName 部分。
提前感谢您的帮助!
爪哇
procedure TEditPlayerMain._PROC_00697780(Sender : TObject);
begin
(*
00697780 53 push ebx
00697781 8BD8 mov ebx, eax
00697783 33D2 xor edx, edx
* Reference to control TEditPlayerMain.FirstNameTxt : TcxTextEdit
|
00697785 8B83AC030000 mov eax, [ebx+$03AC]
0069778B 8B08 mov ecx, [eax]
* Possible reference to virtual method TcxTextEdit.OFFS_64
|
0069778D FF5164 call dword ptr [ecx+$64]
* Possible String Reference to: 'Multi'
|
00697790 BA40786900 mov edx, $00697840
* Reference to control TEditPlayerMain.FirstNameTxt : TcxTextEdit
|
00697795 8B83AC030000 mov eax, [ebx+$03AC]
* Reference to: Controls.TControl.SetText(TControl;TCaption);
|
0069779B E874CEDDFF call 00474614
006977A0 33D2 xor edx, edx
* Reference to control TEditPlayerMain.LastNameTxt : TcxTextEdit
|
006977A2 8B83A8030000 mov eax, [ebx+$03A8]
006977A8 8B08 mov ecx, [eax]
* Possible reference to virtual method TcxTextEdit.OFFS_64
|
006977AA FF5164 call dword ptr [ecx+$64]
* Possible String Reference to: 'Player'
|
006977AD BA50786900 mov edx, $00697850
* Reference to control TEditPlayerMain.LastNameTxt : TcxTextEdit
|
006977B2 8B83A8030000 mov eax, [ebx+$03A8]
* Reference to: Controls.TControl.SetText(TControl;TCaption);
|
006977B8 E857CEDDFF call 00474614
* Possible String Reference to: 'Multi Player'
|
006977BD BA60786900 mov edx, $00697860
* Reference to control TEditPlayerMain.lblPlayerName : TLabel
|
006977C2 8B8300030000 mov eax, [ebx+$0300]
* Reference to: Controls.TControl.SetText(TControl;TCaption);
|
006977C8 E847CEDDFF call 00474614
006977CD 33D2 xor edx, edx
* Reference to control TEditPlayerMain.cbJersey : TcxComboBox
|
006977CF 8B83A4030000 mov eax, [ebx+$03A4]
006977D5 8B08 mov ecx, [eax]
* Possible reference to virtual method TcxComboBox.OFFS_64
|
006977D7 FF5164 call dword ptr [ecx+$64]
006977DA 33D2 xor edx, edx
* Reference to control TEditPlayerMain.numLabel : TLabel
|
006977DC 8B8388030000 mov eax, [ebx+$0388]
006977E2 8B08 mov ecx, [eax]
* Reference to method TLabel.SetEnabled(Boolean)
|
006977E4 FF5164 call dword ptr [ecx+$64]
006977E7 33D2 xor edx, edx
* Reference to control TEditPlayerMain.lblJersey : TLabel
|
006977E9 8B8328030000 mov eax, [ebx+$0328]
* Reference to: Controls.TControl.SetText(TControl;TCaption);
|
006977EF E820CEDDFF call 00474614
006977F4 33D2 xor edx, edx
* Reference to control TEditPlayerMain.lblPosition : TLabel
|
006977F6 8B8324030000 mov eax, [ebx+$0324]
* Reference to: Controls.TControl.SetText(TControl;TCaption);
|
006977FC E813CEDDFF call 00474614
00697801 33D2 xor edx, edx
* Reference to control TEditPlayerMain.lblWeight : TLabel
|
00697803 8B8350030000 mov eax, [ebx+$0350]
* Reference to: Controls.TControl.SetText(TControl;TCaption);
|
00697809 E806CEDDFF call 00474614
0069780E 33D2 xor edx, edx
* Reference to control TEditPlayerMain.lblHeight : TLabel
|
00697810 8B834C030000 mov eax, [ebx+$034C]
* Reference to: Controls.TControl.SetText(TControl;TCaption);
|
00697816 E8F9CDDDFF call 00474614
0069781B 33D2 xor edx, edx
* Reference to control TEditPlayerMain.tsAttributes : TcxTabSheet
|
0069781D 8B8360030000 mov eax, [ebx+$0360]
* Reference to: ComCtrls.TCustomHeaderControl.SetHotTrack(TCustomHeaderControl;Boolean);
|
00697823 E83C48F0FF call 0059C064
00697828 33D2 xor edx, edx
* Reference to control TEditPlayerMain.tsAbilities : TcxTabSheet
|
0069782A 8B8368030000 mov eax, [ebx+$0368]
* Reference to: ComCtrls.TCustomHeaderControl.SetHotTrack(TCustomHeaderControl;Boolean);
|
00697830 E82F48F0FF call 0059C064
00697835 5B pop ebx
00697836 C3 ret
*)
end;