光通传奇3 永恒传奇3(GSR版本) (四) 小地图自动巡路call
先根据小地图双击鼠标目标地址坐标X,Y的变化,找到自动巡路目的地坐标地址:
X = E8CAAC
Y = E8CAAE
在地址 E8CAAC 上 “find who access this address",得到:

转到 0x0004A35BA:
可以一眼看出来 ,明显直接就是自动巡路call了。
Mir3Game.exe+A35A8 - 8B 86 1C020000 - mov eax,[esi+0000021C]
Mir3Game.exe+A35AE - 8B 8E 20020000 - mov ecx,[esi+00000220]
Mir3Game.exe+A35B4 - 88 9E D7010000 - mov [esi+000001D7],bl '<======巡路1 ,到达0 esi = 0x0b8c8d0'
Mir3Game.exe+A35BA - 89 86 DC010000 - mov [esi+000001DC],eax '<======= 目的地X'
Mir3Game.exe+A35C0 - 89 8E E0010000 - mov [esi+000001E0],ecx '<======= 目的地Y'
Mir3Game.exe+A35C6 - E8 45F00400 - call Mir3Game.exe+F2610 ' 自动巡路call ,仅在窗口前台状态可以)'
Mir3Game.exe+A35CB - 8A C3 - mov al,bl
//-------------CE lua script 调用 AutoAssemble call--------------
function autoWalk(run,x,y)
--print("star...")
local sx = string.format("0x%X", x)
local sy = string.format("0x%X", y)
local srun = string.format("0x%X", run)
if run==nil then
run=0
end
local script =string.format( [[
globalAlloc(newmem,256)
newmem:
mov esi,0b8c8d0+01d7
mov [esi], %s
mov [0b8c8d0+1dc],%s
mov [0b8c8d0+1e0],%s
call 004EAC60
ret
createThread(newmem)
//dealloc(newmem)
]],srun,sx,sy)
local a = autoAssemble(script);
--log("==run.in..==="..newmem)
end
浙公网安备 33010602011771号