|
这是武林外传的走路CALL
00489501 8B6C24 28 MOV EBP,DWORD PTR SS:[ESP+28]
00489505 6A 01 PUSH 1
00489507 8B8D 38150000 MOV ECX,DWORD PTR SS:[EBP+1538]
0048950D E8 6EAA0000 CALL ElementC.00493F80
00489512 8BF0 MOV ESI,EAX
00489514 8D4424 54 LEA EAX,DWORD PTR SS:[ESP+54]
00489518 50 PUSH EAX
00489519 53 PUSH EBX
0048951A 8BCE MOV ECX,ESI
0048951C E8 CFF90000 CALL ElementC.00498EF0
00489521 8D8C24 00010000 LEA ECX,DWORD PTR SS:[ESP+100]
00489528 8D9424 F4000000 LEA EDX,DWORD PTR SS:[ESP+F4]
0048952F 51 PUSH ECX
00489530 52 PUSH EDX
00489531 8BCE MOV ECX,ESI
00489533 E8 08FB0000 CALL ElementC.00499040
00489538 8B8D 38150000 MOV ECX,DWORD PTR SS:[EBP+1538]
0048953E 53 PUSH EBX
0048953F 6A 01 PUSH 1
00489541 56 PUSH ESI ; 0254B028
00489542 6A 01 PUSH 1
00489544 E8 27AF0000 CALL ElementC.00494470
易语言写的走路CALL
.版本 2
asm_置代码 ()
asm_pushad ()
asm_mov_eax_ptr (十六到十 (#基址))
asm_mov_eax_ptr_eax_add (十六到十 (#一级偏移))
asm_mov_esp_ptr_eax_add (十六到十 (#二级偏移))
asm_mov_ebp_esp ()
asm_push (十六到十 (“1”))
asm_mov_ecx_ptr_ebp_add (十六到十 (#目的地坐标改变值))
asm_mov_eax_常数 (十六到十 (#走路CALL1))
asm_call_eax ()
' ---一个CALL完成
asm_mov_eax_ptr (十六到十 (#基址))
asm_mov_eax_ptr_eax_add (十六到十 (#一级偏移))
asm_mov_ebp_ptr_eax_add (十六到十 (#二级偏移))
asm_mov_eax_ptr_ebp_add (十六到十 (“44”))
asm_mov_esi_eax ()
asm_lea_eax_ptr_ss_esp_add (十六到十 (“54”))
asm_push_eax ()
asm_push_ebx ()
asm_mov_ecx_esi ()
asm_mov_eax_常数 (十六到十 (#走路CALL2))
asm_call_eax ()
' ----第二个CALL完成
asm_lea_ecx_ptr_ss_esp_add (十六到十 (“100”))
asm_lea_edx_ptr_ss_esp_add (十六到十 (“F4”))
asm_push_ecx ()
asm_push_ebx ()
asm_mov_ecx_esi ()
asm_mov_eax_常数 (十六到十 (“00499040”))
asm_call_eax ()
' --第三个CALL完成
asm_mov_ecx_ptr_ebp_add (十六到十 (#目的地坐标改变值))
asm_push_ebx ()
asm_push (十六到十 (“1”))
asm_push_esi ()
asm_push (十六到十 (“1”))
asm_mov_eax_常数 (十六到十 (#走路CALL3))
asm_call_eax ()
' ---第四个CALL完成
asm_mov_eax_ptr (十六到十 (#基址))
asm_mov_eax_ptr_eax_add (十六到十 (#一级偏移))
asm_mov_eax_ptr_eax_add (十六到十 (#二级偏移))
asm_mov_eax_ptr_eax_add (十六到十 (#目的地坐标改变值))
asm_mov_eax_ptr_eax_add (十六到十 (“30”))
asm_mov_ecx_ptr_eax_add (十六到十 (“4”))
asm_mov_eax_常数 (取字节集数据 (到字节集 (X坐标), #整数型, ))
asm_mov_eax_ptr_ecx_add (十六到十 (“1C”))
asm_mov_eax_常数 (取字节集数据 (到字节集 (Y坐标), #整数型, ))
asm_mov_eax_ptr_ecx_add (十六到十 (“24”))
asm_popad ()
asm_ret ()
asm_调用函数2 (全局进程, asm_取代码 ())
点击后人物不会实现走路,游戏也不报错,没有反映.下面是调试输出的
00000000 : 60 PUSHAD
00000001 : A1E0CBD000 MOV eax,dword ptr ds:[00D0CBE0]
00000006 : 8B401C MOV eax,dword ptr ds:[eax+1C]
00000009 : 8B6028 MOV esp,dword ptr ds:[eax+28]
0000000C : 8BEC MOV ebp,esp
0000000E : 6A01 PUSH 01
00000010 : 8B8D38150000 MOV ecx,dword ptr ss:[ebp+00001538]
00000016 : B8803F4900 MOV eax,00493F80
0000001B : FFD0 CALL eax
0000001D : A1E0CBD000 MOV eax,dword ptr ds:[00D0CBE0]
00000022 : 8B401C MOV eax,dword ptr ds:[eax+1C]
00000025 : 8B6828 MOV ebp,dword ptr ds:[eax+28]
00000028 : 8B4544 MOV eax,dword ptr ss:[ebp+44]
0000002B : 8BF0 MOV esi,eax
0000002D : 8D442454 LEA eax,dword ptr ss:[esp+54]
00000031 : 50 PUSH eax
00000032 : 53 PUSH ebx
00000033 : 8BCE MOV ecx,esi
00000035 : B8F08E4900 MOV eax,00498EF0
0000003A : FFD0 CALL eax
0000003C : 8D4C2400 LEA ecx,dword ptr ss:[esp+00]
00000040 : 8D5424F4 LEA edx,dword ptr ss:[esp+F4]
00000044 : 51 PUSH ecx
00000045 : 53 PUSH ebx
00000046 : 8BCE MOV ecx,esi
00000048 : B840904900 MOV eax,00499040
0000004D : FFD0 CALL eax
0000004F : 8B8D38150000 MOV ecx,dword ptr ss:[ebp+00001538]
00000055 : 53 PUSH ebx
00000056 : 6A01 PUSH 01
00000058 : 56 PUSH esi
00000059 : 6A01 PUSH 01
0000005B : B870444900 MOV eax,00494470
00000060 : FFD0 CALL eax
00000062 : A1E0CBD000 MOV eax,dword ptr ds:[00D0CBE0]
00000067 : 8B401C MOV eax,dword ptr ds:[eax+1C]
0000006A : 8B4028 MOV eax,dword ptr ds:[eax+28]
0000006D : 8B8038150000 MOV eax,dword ptr ds:[eax+00001538]
00000073 : 8B4030 MOV eax,dword ptr ds:[eax+30]
00000076 : 8B4804 MOV ecx,dword ptr ds:[eax+04]
00000079 : B8000069C3 MOV eax,C3690000
0000007E : 8B411C MOV eax,dword ptr ds:[ecx+1C]
00000081 : B80000B8C1 MOV eax,C1B80000
00000086 : 8B4124 MOV eax,dword ptr ds:[ecx+24]
00000089 : 61 POPAD
0000008A : C3 RET
求高手指点错误.
|
|