免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
本次游戏没法给
内容参考于:微尘网络安全
工具下载:
链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3
提取码:6tw3
复制这段内容后打开百度网盘手机App,操作更方便哦
上一个内容:49.x86游戏实战-C++实现秒进图
上一个内容把秒进副本写到了C++代码里,接下来开始找在副本内怎么瞬移
打开游戏,然后打开OD并附加到游戏,然后来到公共CALL打断点,然后进入副本,然后在副本内手动移动到其它地图,来触发公共CALL的断点
然后取消断点,然后按CTRL+F9,然后就来到了下图位置
然后看着副本内切换地图它多调用了一个0x11285B0,之前没有HOOK它所以,要把它HOOK掉
HOOK代码
写完代码然后重新生成
重新生成完使用wctool.exe注入我们dll
然后启用HOOK
然后打开Dbgview.exe,然后再次手动切换地图,然后在Dbgview.exe里观察日志,下图切换了两次地图
接下里写汇编代码测试
pushad push 0x30 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1127D60 call eax push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128550 call eax push 0x1 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128550 call eax push 0x2F mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x11285B0 call eax push 0x125 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x11285B0 call eax push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128550 call eax push 0x9D1E mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128580 call eax push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128580 call eax push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128580 call eax push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128580 call eax push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128580 call eax push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x11285B0 call eax push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x11285B0 call eax push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x11285B0 call eax push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x11285B0 call eax push 0x7292 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128580 call eax push 0x89B0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x11285B0 call eax mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1127EC0 call eax popad
然后这里要先了解一件事情,游戏的地图的分布是下图的样子,红框圈出来的是副本中的一个场景(地图)
左右是x坐标,上下是y坐标
位置
现在知道这些地图相关的事情之后,就能看懂参数了
pushad push 0x30 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1127D60 call eax // 这里的0x2它是地图x的数据 push 0x2 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128550 call eax // 这里的0x1它是地图y的数据 push 0x1 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128550 call eax // 入参没用 push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x11285B0 call eax // 入参没用 push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x11285B0 call eax // 入参没用 push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128550 call eax // 入参没用 push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128580 call eax // 入参没用 push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128580 call eax // 入参没用 push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128580 call eax // 入参没用 push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128580 call eax // 入参没用 push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128580 call eax // 入参没用 push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x11285B0 call eax // 入参没用 push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x11285B0 call eax // 入参没用 push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x11285B0 call eax // 入参没用 push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x11285B0 call eax // 入参没用 push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1128580 call eax // 入参没用 push 0x0 mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x11285B0 call eax mov ecx,0x1AEB6E4 mov ecx,[ecx] mov eax,0x1127EC0 call eax popad