- 注册时间
- 2013-5-24
- 最后登录
- 1970-1-1
该用户从未签到
|
这是在OD中找到的CALL,代码和摩恩老师找到的一样。代码中EBP是基址,摩恩老师找到的基址是ebx,我的是ebp.
0047C600 |. 8B8D E00C0000 MOV ECX,DWORD PTR SS:[EBP+CE0]
0047C606 |. 6A 01 PUSH 1
0047C608 |. E8 73960000 CALL ElementC.00485C80
0047C60D |. 8BF0 MOV ESI,EAX
0047C60F |. 8D4424 48 LEA EAX,DWORD PTR SS:[ESP+48]
0047C613 |. 33DB XOR EBX,EBX
0047C615 |. 50 PUSH EAX
0047C616 |. 53 PUSH EBX
0047C617 |. 8BCE MOV ECX,ESI
0047C619 |. E8 F2E50000 CALL ElementC.0048AC10
0047C61E |. 8D8C24 980000>LEA ECX,DWORD PTR SS:[ESP+98]
0047C625 |. 8D9424 8C0000>LEA EDX,DWORD PTR SS:[ESP+8C]
0047C62C |. 51 PUSH ECX
0047C62D |. 52 PUSH EDX
0047C62E |. 8BCE MOV ECX,ESI
0047C630 |. E8 1BE70000 CALL ElementC.0048AD50
0047C635 |. 8B8D E00C0000 MOV ECX,DWORD PTR SS:[EBP+CE0]
0047C63B |. 53 PUSH EBX
0047C63C |. 6A 01 PUSH 1
0047C63E |. 56 PUSH ESI
0047C63F |. 6A 01 PUSH 1
0047C641 |. E8 2A9B0000 CALL ElementC.00486170
以下是我写的汇编代码,用的魔鬼作坊5.1的模块,但是调用就卡死不知道为什么
调用其他的CALL都没问题,我写错了吗?求指导
子程序 _按钮1_被单击
.局部变量 x1, 整数型
.局部变量 y1, 整数型
x1 = 到整数 (编辑框1.内容)
y1 = 到整数 (编辑框2.内容)
自动走路 (x1, y1)
.子程序 自动走路
.参数 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 (十六到十 (“CE0”))
asm_push (十六到十 (“1”))
asm_mov_eax_常数 (十六到十 (“00485C80”))
asm_call_eax ()
asm_mov_esi_eax ()
asm_lea_eax_ptr_esp_add (十六到十 (“48”))
asm_xor_ebx_ebx ()
asm_push_eax ()
asm_push_ebx ()
asm_mov_ecx_esi ()
asm_mov_eax_常数 (十六到十 (“0048AC10”))
asm_call_eax ()
asm_lea_ecx_ptr_esp_add (十六到十 (“98”))
asm_lea_edx_ptr_esp_add (十六到十 (“8c”))
asm_push_ecx ()
asm_push_edx ()
asm_mov_ecx_esi ()
asm_mov_eax_常数 (十六到十 (“0048AD50”))
asm_call_eax ()
asm_mov_ecx_ptr_ebp_add (十六到十 (“0CE0”))
asm_push_ebx ()
asm_push (十六到十 (“1”))
asm_push_esi ()
asm_push (十六到十 (“1”))
asm_mov_eax_常数 (十六到十 (“00486170”))
asm_call_eax ()
asm_mov_eax_ptr (十六到十 (#基址))
asm_mov_eax_ptr_eax_add (十六到十 (“1c”))
asm_mov_eax_ptr_eax_add (十六到十 (“28”))
asm_mov_eax_ptr_eax_add (十六到十 (“CE0”)) ' 目标改变数字
asm_mov_eax_ptr_eax_add (十六到十 (“30”))
asm_mov_ecx_ptr_eax_add (十六到十 (“4”))
asm_mov_eax_常数 (取字节集数据 (到字节集 (x), #整数型, ))
asm_mov_ptr_ecx_add_eax (十六到十 (“20”))
asm_mov_eax_ptr (十六到十 (#基址))
asm_mov_eax_ptr_eax_add (十六到十 (“1c”))
asm_mov_eax_ptr_eax_add (十六到十 (“28”))
asm_mov_eax_ptr_eax_add (十六到十 (“CE0”)) ' 目标改变数字
asm_mov_eax_ptr_eax_add (十六到十 (“30”))
asm_mov_ecx_ptr_eax_add (十六到十 (“4”))
asm_mov_eax_常数 (取字节集数据 (到字节集 (y), #整数型, ))
asm_mov_ptr_ecx_add_eax (十六到十 (“28”))
asm_ret ()
asm_popad ()
asm_调用函数 (进程ID, asm_取代码 ()) |
|