查看: 1134|回复: 0

[红客资讯] 【游戏漏洞】动态调试逆向函数的所有方法

[复制链接] [提交至百度]
发表于 2018-1-25 21:43:59 | 显示全部楼层 |阅读模式
CALL是什么?
就是我们正向开发的子程序,函数,方法
一个单独的CALL可以实现一个单独的功能
例如游戏里的走路,喊话,释放技能等等。
如果我们能够找到所有的CALL,那么就可以轻松实现游戏里所有的功能,甚至是变态功能,因为某些功能
只有在特殊情况下可以调用,如果我们直接调用的话,往往可能实现意想不到的效果。
逆向的过程中往往是分两部分,逆向数据和逆向CALL
如果你掌握了以下的方法
一半的东西就已经搞定了,我个人认为CALL是比较简单的,数据会难一些
那么我们来谈谈CALL的所有找法
第一种,通过调用关系去找
例如网游绝大部分功能都会向服务器发送封包,那么调用关系就是 “功能CALL调用发包函数”,所以我们只要在发包函数上下断就能够轻松返回到功能函数,入门的逆向人都会的一条指令就是 bp send... ... 当然现在已经过时了,原因就是古老的网游  一句bp send 搞定所有的功能函数,那么游戏公司也必然知道这点,所以就会重新实现发包函数,多次加密解密,线程发包等等方法,然后很多的CALL不能用这种方法找到。
但是,这也只是对发包函数的调用关系增加难度而已,永远改变不了,通过调用关系找CALL的思路。
因为有太多的API是某些动作必然会调用的,就需要大家自己去学习喽
第二种,通过参数找CALL
有方法就一定会有参数,有参数就是我们的突破口,就是我们的爆破点,有一些参数是必然的,而不是我们胡乱设想的,例如走路,他没有目的地坐标怎么走啊?没有目的地坐标他去哪呢?所以我们只要能够搜索到目的地的内存地址,下断即可断到走路函数,当然,也许不是返回,而是在访问参数的下面,因为要先访问参数才能调用函数嘛。
例子有很多,技能函数必然有代表什么技能的技能ID参数吧
喊话必然有喊话内容的参数吧,等等。
第三种,内部访问关系找CALL
这个更好理解了,也是我最常用的找CALL方法,这个函数方法内部会做什么?我们猜测就好了,然后对他会做的事情下断,是不是就可以断到这个函数了,可能是访问了某个地址,可能是修改某个标志位,太多太多的可能,当然  这种方法猜测的可能更多,很多时候不一定成功,但是给了我们很多彼此对抗的乐趣
例如寻路函数内部是不是会改变人物寻路状态的一个地址呢?因为人物是否在寻路状态很多操作是有分别的,所以在其函数内部应该对其进行改写。
又例如,控件输入call 内部是不是应该改写控件内容长度呢?否则谁来负责做这件事情呢?
如果猜测不成,我们就要想是什么样的写法导致不成,在这样的过程中,我们的思维和技术都在进步
方法还有很多,总体就这三大类
希望对大家有所帮助
在不断的学习中有所进步




上一篇:【神器】Burp Suite Pro Loader&Keygen By surferxyz
下一篇:微信欢乐夹娃娃红包网站PHP源码下载
回复

使用道具 举报

游客
请先登录
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

源码架设
快速回复 返回顶部 返回列表