rnf147852 发表于 2017-11-1 14:56:22

任鸟飞谈逆向----DNF重新实现的发包函数找法

我们知道网络游戏一定要客户端和服务端通信,否则就成了单机游戏了。那么通信就一定要用到发包函数,发包函数有哪些呢?主要就是三大发包函数:send sendto 以及WSASend。通过发包函数下断,根据函数调用关系,可以很容易的找到游戏里的各种功能函数。那么我们拿XNF来实验,看是否可以断到功能函数。https://mmbiz.qlogo.cn/mmbiz_png/AWEDBp7zbXWSGbweFqspgiaFuybg8O17B3un0g6aWV5cTlL2AVlTvgpt6YgO7u4UJIdFSgnOSaEIUrL8ianzKIjw/0?wx_fmt=png我们发现无论是在send 头部还是 sendto 和 WSASend 头部下断在游戏里做任何动作,游戏都不会断下。那是为什么呢?说好的可以找到功能函数呢?原因很简单!两种可能如果有什么不懂 可以关注微信公众号 任鸟飞逆向交流学习第一种可能检测了断点。我们通过硬件断点方式以及在函数其他位置下断等方式发现并非是检测断点第二种可能重新实现了发包函数。那么基本可以确定,这个游戏重新实现了发包函数,但是我们说,所谓的重新实现,不过是按照原来的函数重新写的而已,是没有办法面目全非的。同样也是两种办法,第一种特征码定位,这是一个办法,但是,你并不知道他重新实现的代码处在什么模块之内,而且你也不知道他是否修改了哪一小块代码,同时你也不知道他是重新实现的这三大发包函数的哪一个,好吧,这是一个体力活,在不是完全没有办法的前提下,我是不会选择这样的方案的。第二种这三大发包函数内层还会调用系统的发包函数 WSPSend那么我们只要找到WSPSend,在这个函数上下断就可以断到重新实现的发包函数了。怎么去找呢?我们先找到一个正常send发包的进程https://mmbiz.qlogo.cn/mmbiz_png/AWEDBp7zbXWSGbweFqspgiaFuybg8O17Bz9xzbpEqPP9acoP6a9VzYv41YPu3ibBBx64bKoiaAumc2LObRxYmdDuQ/0?wx_fmt=png在send函数内部    call 的续表函数位置下断进程做任意发包动作断下以后 我们点F7 进入续表函数进来的这个函数就是 WSPSendhttps://mmbiz.qlogo.cn/mmbiz_png/AWEDBp7zbXWSGbweFqspgiaFuybg8O17BAXQmbEYk2zqORWYfy2vz2QNzibqN1T28qh1KoNjfgoINHblE34khzDg/0?wx_fmt=png记录下WSPSend 的地址 如图 719C583F当然每台电脑是不同的然后附加上XNF 到该地址下断(同一台电脑哦)做任意发包动作断下以后    通过调用关系可以顺利的返回到重新实现的发包函数https://mmbiz.qlogo.cn/mmbiz_png/AWEDBp7zbXWSGbweFqspgiaFuybg8O17Bw6h0iblgm7u17rz0SAribSESxiaZmiaW92sCOTyrNkEjJSoQHEKib9q6gOQ/0?wx_fmt=png这次我们再做任何发包动作都可以断下了都可以找到功能函数了https://mmbiz.qlogo.cn/mmbiz_png/AWEDBp7zbXWSGbweFqspgiaFuybg8O17BDffLxg4Pblwo6wyaBhhh4iaenNj3UxEA77E8ew9AeSuJbdB07YsBWBg/0?wx_fmt=png

rnf147852 发表于 2017-11-6 14:27:56

联系我时,请说是在 挂海论坛 上看到的,谢谢!

rnf147852 发表于 2017-11-9 13:24:52

腾讯统一登录器--QQ仙侠传控件登录和GetWindowLong应用 http://pan.baidu.com/s/1eQo8ZtC

rnf147852 发表于 2017-11-13 18:59:52

腾讯的所有游戏 这个基本通用

rnf147852 发表于 2017-11-16 12:58:50

XNF重新实现的发包函数找法
腾讯游戏多是这样

rnf147852 发表于 2017-11-20 13:14:29

任鸟飞谈逆向----XNF重新实现的发包函数找法
页: [1]
查看完整版本: 任鸟飞谈逆向----XNF重新实现的发包函数找法