wow.exe+32B702:
0072B6FB - 75 25 - jne wow.exe+32B722
0072B6FD - A1 F408BD00 - mov eax,[wow.exe+7D08F4]
0072B702 - 39 50 30 - cmp [eax+30],edx <<
0072B705 - 74 1B - je wow.exe+32B722
0072B707 - D9EE - fldz
EAX=19D1AEF0
EBX=289542C8
ECX=289542C8
EDX=00000000
ESI=05BFFA64
EDI=00000000
EBP=05BFF9C4
ESP=05BFF9BC
EIP=0072B705
First seen:0:14:49
Last seen:0:14:50
0072B705 | 74 1B | je wow.72B722 | 判断zf标志位,如果为1则跳转
0072B707 | D9EE | fldz | 寻路功能开始
0072B709 | 51 | push ecx | ecx:&"衳n"
0072B70A | D91C24 | fstp dword ptr ss:[esp],st(0) |
0072B70D | 8955 F8 | mov dword ptr ss:[ebp-8],edx |
0072B710 | 8955 FC | mov dword ptr ss:[ebp-4],edx |
0072B713 | 8B55 08 | mov edx,dword ptr ss:[ebp+8] |
0072B716 | 52 | push edx |
0072B717 | 8D45 F8 | lea eax,dword ptr ss:[ebp-8] | eax=ebp-8
0072B71A | 50 | push eax | eax是一个地址 32bit系统下占8个字节
0072B71B | 6A 04 | push 4 |
0072B71D | E8 DEBCFFFF | call <wow.sub_727400> | 移动/寻路功能 内平栈 4个参数
0072B722 | 8BE5 | mov esp,ebp |
猜测移动call:call <wow.sub_727400>
分析call <wow.sub_727400>:
内平栈
4个参数
使用了ecx
函数头部:
00727400 | push ebp | 标准函数头部
00727401 | mov ebp,esp |
00727403 | sub esp,18 |
00727406 | push ebx |
00727407 | mov ebx,ecx | ecx没有进行初始化 但是使用了 我们要调用这个函数的话也需要在函数外对ecx进行赋值
ecx没有初始化,但是使用了,所以我们要调用call之前也需要对ecx赋值
分析一下这个call的参数:
0072B709 | push ecx |
0072B70A | fstp dword ptr ss:[esp],st(0) |
0072B70D | mov dword ptr ss:[ebp-8],edx |
0072B710 | mov dword ptr ss:[ebp-4],edx |
0072B713 | mov edx,dword ptr ss:[ebp+8] |
0072B716 | push edx |
0072B717 | lea eax,dword ptr ss:[ebp-8] | eax=ebp-8
0072B71A | push eax | eax是一个地址 32bit系统下占8个字节
0072B71B | push 4 |
- push 4
- push eax 8个字节的内存全为0
- push edx 下断 坐标 C60BD2E2 C2E2F2A7 42A633DC
- push ecx ecx=0x28DA8800
sub esp, 0x200
lea edx, [esp]
mov dword ptr [edx], 0xC60BD2E2
mov dword ptr [edx+0x4], 0xC2E2F2A7
mov dword ptr [edx+0x8], 0x42A633DC
lea eax, [esp]
mov dword ptr [eax+0xc], 0
mov dword ptr [eax+0x10], 0
lea eax, [eax+0xc]
push 0x28DA8800
push edx
push eax
push 4
mov ecx, 0x28DA8800
call 0x00727400
add esp, 0x200
写汇编代码验证call <wow.sub_727400>为寻路call
没有回复内容