|

2精币
OD 数据CALL ebp=00B97830+1c+28
004779EF |. 8B8D E00B0000 mov ecx,dword ptr ss:[ebp+0xBE0]
004779F5 |. 6A 01 push 0x1
004779F7 |. E8 94910000 call ElementC.00480B90
004779FC |. 8BF0 mov esi,eax
004779FE |. 8D4424 4C lea eax,dword ptr ss:[esp+0x4C]
00477A02 |. 33DB xor ebx,ebx
00477A04 |. 50 push eax
00477A05 |. 53 push ebx
00477A06 |. 8BCE mov ecx,esi
00477A08 |. E8 03E10000 call ElementC.00485B10
00477A0D |. 8D8C24 940000>lea ecx,dword ptr ss:[esp+0x94]
00477A14 |. 8D9424 880000>lea edx,dword ptr ss:[esp+0x88]
00477A1B |. 51 push ecx
00477A1C |. 52 push edx
00477A1D |. 8BCE mov ecx,esi
00477A1F |. E8 3CE20000 call ElementC.00485C60
00477A24 |. 8B8D E00B0000 mov ecx,dword ptr ss:[ebp+0xBE0]
00477A2A |. 53 push ebx
00477A2B |. 6A 01 push 0x1
00477A2D |. 56 push esi
00477A2E |. 6A 01 push 0x1
00477A30 |. E8 4B960000 call ElementC.00481080
版本 2.子程序 走路
.参数 x, 小数型
.参数 y, 小数型
asm_置代码 ()
asm_pushad ()
asm_mov_eax_ptr (十六到十 (#基址))
asm_mov_eax_ptr_eax_add (十六到十 (“1c”))
asm_mov_ebp_ptr_eax_add (十六到十 (“28”))
asm_mov_ecx_ptr_ebp_add (十六到十 (#走路会变的值))
asm_push (十六到十 (“1”))
asm_mov_eax_常数 (十六到十 (#走路CALL1))
asm_call_eax ()
asm_mov_esi_eax ()
asm_lea_eax_ptr_ss_esp_add (十六到十 (“4c”))
asm_xor_ebx_ebx ()
asm_push_eax ()
asm_push_ebx ()
asm_mov_ecx_esi ()
asm_mov_eax_常数 (十六到十 (#走路CALL2))
asm_call_eax ()
asm_lea_ecx_ptr_ss_esp_add (十六到十 (“94”))
asm_lea_edx_ptr_ss_esp_add (十六到十 (“88”))
asm_push_ecx ()
asm_push_edx ()
asm_mov_ecx_esi ()
asm_mov_eax_常数 (十六到十 (#走路CALL3))
asm_call_eax ()
asm_mov_ecx_ptr_ebp_add (十六到十 (#走路会变的值))
asm_push_ebx ()
asm_push (十六到十 (“1”))
asm_push_esi ()
asm_push (十六到十 (“1”))
asm_mov_eax_常数 (十六到十 (#走路CALL4))
asm_call_eax ()
asm_mov_eax_ptr (十六到十 (#基址))
asm_mov_eax_ptr_eax_add (十六到十 (“1c”))
asm_mov_ebp_ptr_eax_add (十六到十 (“28”))
asm_mov_edx_ptr_ebp_add (十六到十 (#走路会变的值))
asm_mov_edx_ptr_edx_add (十六到十 (“30”))
asm_mov_ecx_ptr_edx_add (十六到十 (“4”))
asm_mov_edx_常数 (取字节集数据 (到字节集 (x), #整数型, ))
asm_mov_ptr_ecx_add_edx (十六到十 (“20”))
asm_mov_edx_常数 (取字节集数据 (到字节集 (y), #整数型, ))
asm_mov_ptr_ecx_add_edx (十六到十 (“28”))
asm_popad ()
asm_ret ()
asm_调用函数 (id, asm_取代码 ())
输出调试文本 (字节集转为汇编指令 (asm_取代码 (), ))
调试输出的结果
00000000 : 60 PUSHAD
00000001 : A13078B900 MOV eax,dword ptr ds:[00B97830]
00000006 : 8B401C MOV eax,dword ptr ds:[eax+1C]
00000009 : 8B6828 MOV ebp,dword ptr ds:[eax+28]
0000000C : 8B8DE00B0000 MOV ecx,dword ptr ss:[ebp+00000BE0]
00000012 : 6A01 PUSH 01
00000014 : B8900B4800 MOV eax,00480B90
00000019 : FFD0 CALL eax
0000001B : 8BF0 MOV esi,eax
0000001D : 8D44244C LEA eax,dword ptr ss:[esp+4C]
00000021 : 33D8 XOR ebx,eax
00000023 : 50 PUSH eax
00000024 : 53 PUSH ebx
00000025 : 8BCE MOV ecx,esi
00000027 : B8105B4800 MOV eax,00485B10
0000002C : FFD0 CALL eax
0000002E : 8D4C2494 LEA ecx,dword ptr ss:[esp+94]
00000032 : 8D542488 LEA edx,dword ptr ss:[esp+88]
00000036 : 51 PUSH ecx
00000037 : 52 PUSH edx
00000038 : 8BCE MOV ecx,esi
0000003A : B8605C4800 MOV eax,00485C60
0000003F : FFD0 CALL eax
00000041 : 8B8DE00B0000 MOV ecx,dword ptr ss:[ebp+00000BE0]
00000047 : 53 PUSH ebx
00000048 : 6A01 PUSH 01
0000004A : 56 PUSH esi
0000004B : 6A01 PUSH 01
0000004D : B880104800 MOV eax,00481080
00000052 : FFD0 CALL eax
00000054 : A13078B900 MOV eax,dword ptr ds:[00B97830]
00000059 : 8B401C MOV eax,dword ptr ds:[eax+1C]
0000005C : 8B6828 MOV ebp,dword ptr ds:[eax+28]
0000005F : 8B95E00B0000 MOV edx,dword ptr ss:[ebp+00000BE0]
00000065 : 8B5230 MOV edx,dword ptr ds:[edx+30]
00000068 : 8B4A04 MOV ecx,dword ptr ds:[edx+04]
0000006B : BA0000C842 MOV edx,42C80000
00000070 : 895120 MOV dword ptr ds:[ecx+20],edx
00000073 : BA0000C842 MOV edx,42C80000
00000078 : 895128 MOV dword ptr ds:[ecx+28],edx
0000007B : 61 POPAD
0000007C : C3 RET
|
|