吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

领取今日签到奖励
查看: 4349|回复: 54
上一主题 下一主题

[游戏安全] FPS游戏秒杀逆向分析思路(一)

  [复制链接]
跳转到指定楼层
楼主
发表于 2019-2-10 19:43 回帖奖励
本帖最后由 机智聪明的小迪 于 2019-2-10 19:46 编辑





---------------------------------------------------------------------------------------------------先随便说点---------------------------------------------------------------------------------------


今天已经初六了,天空微微飘起了小雪,然后就想到了来逛逛“吾爱破解”。
于是今天,带着无比给大家写个小小的逆向爽文~

---------------------------------------------------------------------------------------------------步入正题-----------------------------------------------------------------------------------------
众所周知,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

然后攻击敌人脚部,程序中断在这个位置,然后看堆栈数据:

为什么看堆栈数据呢,因为call的参数已经被压入了,全都是push啊~

看一下push的几个数据:



0x05

再看一下敌人的血量:





敌人血量变成了83


0x06



此时,我们把敌人血量修改为100,攻击胸部,查看中断后的堆栈数据:





0x07

再看一下血量数据:









程序中断,堆栈中数据如上图,敌人血量变成了72

0x08


通过分析我们得知,堆栈中数据只有第三个数据变化了,也就是Call的第三个参数变化了,我们这个时候将敌人血量修改为100,在中断的情况下修改堆栈中的数值测试:







0x09


然后我们去开一枪:





通此时敌人被一枪秒杀,而且血量也变成了负数,太可怕惹~

至于寻址,找到最终静态地址,这里就不做过多演示啦~

本文的目的呢,是一篇清爽的小文章啦,为了能够带很多新手朋友认识逆向,了解逆向,引发兴趣的~

最后总结




没啥总结,新的一年,一起加油吧!




免费评分

参与人数 20吾爱币 +29 热心值 +17 收起 理由
Rasaki + 1 我很赞同!
雨中凯旋 + 1 我很赞同!
byytmz + 1 + 1 我很赞同!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
不羁的生命 + 1 + 1 谢谢@Thanks!
未闻の花名 + 1 + 1 热心回复!
从入门到入狱 + 1 + 1 我很赞同!
wzdm98 + 1 + 1 我很赞同!
神枪泡泡丶 + 2 + 1 用心讨论,共获提升!
jiejie2ningning + 1 + 1 热心回复!
jw987123jw + 1 + 1 用心讨论,共获提升!
888001 + 1 + 1 我很赞同!
CrazyNut + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
威风的黑龙 + 1 我很赞同!
dongfang155 + 1 + 1 我很赞同!
Honey丶Linux + 2 + 1 我很赞同!
qaz003 + 1 + 1 哈哈,踢蛋蛋的感觉~~
52loli + 1 + 1 我很赞同!
yangyuejia + 1 好教程文章,必须支持谢谢分享
老罗791 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

推荐
发表于 2019-2-10 22:24
kilkilo502 发表于 2019-2-10 20:32
谢谢分享啊!!!就是没有网游去搞。。有网游去搞搞爽了。。。

本教程是单机游戏修改,网游数据是由服务器计算,修改无效,甚至会被检测出来直接封号
推荐
发表于 2019-2-12 10:53
kilkilo502 发表于 2019-2-11 21:26
战地之王怎么有全屏秒杀。。。

这个说来就复杂了,网游的数据有的是本地计算,有的是服务器计算,具体来讲又分为很多种,有的是本地计算然后服务器效验的,比如DNF,完全服务器来计算是不现实的,所以就出现了外挂,用来修改本地数据的,用来修改封包的,真讲起来太复杂了
沙发
发表于 2019-2-10 20:02
3#
发表于 2019-2-10 20:29

签名我喜欢,立马把手机放裤裆里头
4#
发表于 2019-2-10 20:30
分析透彻 洞察力无解 虽然搞不清你在干嘛 就单纯觉得牛逼
5#
发表于 2019-2-10 20:32
谢谢分享啊!!!就是没有网游去搞。。有网游去搞搞爽了。。。
6#
发表于 2019-2-10 21:12
感谢大佬分享。。
7#
发表于 2019-2-10 21:28
很不错的文章教程谢谢
8#
发表于 2019-2-10 21:37
感谢楼主的分享
9#
发表于 2019-2-10 22:06
谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则


免责声明:
吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Service@52PoJie.Cn

快速回复 收藏帖子 返回列表 搜索

RSS订阅|手机版|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2019-3-26 06:10

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表