-
-
[原创]FPS游戏秒杀分析思路(一)
-
发表于:
2019-2-10 19:31
16296
-
---------------------------------------------------------------------------------------------------先随便说点---------------------------------------------------------------------------------------
今天已经初六了,天空微微飘起了小雪,于是就走到门外看雪。
然后就想到了来逛逛“看雪论坛”。
于是今天,带着无比给大家写个小小的逆向爽文~
---------------------------------------------------------------------------------------------------步入正题-----------------------------------------------------------------------------------------
众所周知,FPS游戏依然在网络游戏中占据很大市场,其独有的游戏体验也让很多外挂黑色产业工作者伸出了罪恶的双手。那么,今天,我们就来聊一下FPS游戏中的那些事儿~
不卖关子了,我们今天直接步入主题了!
/*
用到游戏:CS1.6
用到工具:Ollydbg CheatEngine枫叶人:https://bbs.pediy.com/thread-195729.htm 非常感谢老哥提供这么好用的工具
/*
0x01
首先,打开游戏,我们以敌人血量为突破口,在这里我们搜索的数值为浮点数,为什么呢?因为游戏中血量,坐标等精度比较高的数据,都会用浮点数来存放,所以我们搜索浮点数,然后不断筛选数据搜索到敌人血量,中间的过程不再赘述,赘述一下也行,那就是:
1.先搜索100,为什么搜索100,因为自身血量为100,所以,自己的血量应该也为100,敌我人物数据结构相同,除非敌人数据加密了
2.开枪打一下敌人,然后搜索减少的数值
3.然后开枪打一下,再次搜索减少的数值
4.这个时候,你应该观察一下有没有类似于血量的数据,应该能看到
我找到的数据:
因为是动态地址,所以你和我的地址应该是不同的哦~
只要你找到动态地址就OK啦~
0x02
然后,用OD对敌人血量地址下硬件写入断点,开枪命中敌人,OD断下,程序中断,断在了一个Call内
0x03
我们猜测,中断的代码位置应该属于敌人血量的运算,那么也就是说我们处在攻击Call或者说扣血Call中,这个时候,我们CTRL+F9返回,即可返回到外层攻击Call或者说扣血Call,外层Call会接受攻击的参数,大致流程如下:
那么我们回过头CTRL+F9返回看一下外层Call:
不同的枪械伤害是不一样的,攻击人物不同部位伤害也是不一样的,就好比我踩你脚,跟踢你蛋蛋的感觉是不一样的哦~
我们在Call地址下断点,先用手枪打一下脚部,为避免人物死亡,我已把敌人血量修改为100:
0x04
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2019-2-10 20:16
被小迪xiaodi编辑
,原因: