12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
三国霸业 战车-珍宝-觉醒-攻城掠地SF-全新玩法 免费玩新区 攻城掠地私服 进入游戏
手游私服盒子 各类免费游戏 0.1折送海量资源 各类手游私服 进入游戏
皇家MU2 《奇迹 2:传奇》韩国网禅公司《奇迹》正统续作。 3D锁视角Mmrpg 暗黑3+传奇+流放之路+奇迹 进入游戏
查看: 435|回复: 0

FPS游戏秒杀逆向分析思路(一)

[复制链接]

303

主题

303

帖子

616

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
616
发表于 2019-8-23 15:12:03 | 显示全部楼层 |阅读模式




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


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

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


然后我们去开一枪:





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

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

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

最后总结




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





来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-11-1 09:33 , Processed in 0.133789 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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