游戏的每一个动作都会向服务器端发送数据。截获发包数据可以知道每个动作都向服务器发送什么数据。
用OD附加游戏 输入命令bp Send 例如。
先扔地下件物品。然后输入命令bp Send 。这时用鼠标去捡物品。OD会中断。按三次Ctrl+F9,F8 就会回到游戏捡物的发包函数。
用OD附加游戏 输入命令bp Send 例如。
先扔地下件物品。然后输入命令bp Send 。这时用鼠标去捡物品。OD会中断。按三次Ctrl+F9,F8 就会回到游戏捡物的发包函数。
005A7C8A 6A 0A PUSH 0A
005A7C8C 56 PUSH ESI
005A7C8D 8B4A 20 MOV ECX,DWORD PTR DS:[EDX+20]
005A7C90 E8 BBA2FDFF CALL elementc.00581F50
0A是包的字节大小。16进制的0A转十进制就是10
ESI中的值就是发包数据。 这时可以跳到ESI数据窗口跟随。
大小为10.
0E25BD48 06 00 79 3E 02 C0 37 09 00 00 BC 0B 0A 00 00 00 .y>?...?....
从左查10个字节就是06 00 79 3E 02 C0 37 09 00 00 这就是检物的发包数据。
如果需要找走路。打怪等的发包数据。可以在00581f50下跟进此CAll中下断点
0889FDA8 005A7C95 返回到 elementc.005A7C95 来自 elementc.00581F50
0889FDAC 0E25BD48
0889FDB0 0000000A
上是堆栈窗口 0889FDB0右面的0000000A就是发包的大小
0889FDAC处是存储包发内容的地址0889FDB0
这样所有的动作只要在发包函数里下断点。看堆栈就行了。 不用在每个动作的汇编语句上下断了。