12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
查看: 587|回复: 0

任鸟飞谈逆向----FPS游戏CS无后座力快速射击

[复制链接]

51

主题

51

帖子

112

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
112
发表于 2020-2-9 04:43:11 | 显示全部楼层 |阅读模式
在FPS游戏中,射击函数是调用非常频繁的,如果要对每一颗子弹的射击情况进行服务器验证的话,对服务器的压力是非常大的。
尤其是CS这种局域网游戏,对于早些年的低配置电脑来说,这种压力更加难以承受。所以射击函数的很多重要信息都是在本地进行验证的。
下面我们通过篡改游戏代码的方式来达到无限子弹,无后坐力,快速射击三种功能。
我们用CS创建一个awp房间,玩家可以在这个地图上拾取到狙击枪,我们要在这个地图中实现AK的无后座速射。首先用CE对AK的子弹数量进行扫描,可以得到将近200个结果(如图)







分别对这些结果进行修改,发现其中的一个地址可以改变子弹的数量(如图)







用OD加载游戏,并在地址上下硬件写入断点,再次射击时游戏断下(如图)




我们可以看到子弹的数量是来源于eax的,而eax在上面来源于一个dec eax,也就是说每次代码经过这里,eax自减1。我们将这条dec改成nop就可以让子弹数量不变,如果将其改为inc的话,就可以让子弹越用越多,不过当子弹多到一个临界值就会归零,并从新递增。我们返回到外层来观察一下这个射击函数(如图)



这个函数有3个参数,而且只有AK射击时会断下,这说明每一种枪的射击函数是独立的。对三个参数进行分析,可以得出前面两个参数是浮点数,而第三个参数为0。这里我们先记录一下前两个参数的数值分别为0.009624999和0.09549999。下面我们用同样的方法得到狙击枪的射击函数(如图)



得出前两个参数为0.001和1.45,第三个参数也是0。第一个参数我们无法判断是什么,我们把两把枪对比后可以发现第二个参数很有可能是枪的射击间隔,也就是射击速度,因为这两个数值和两把枪实际情况是匹配的。为了验证这一点,我们将AK的第二个参数改为0.001(如图)(如图)





这是我们进行射击可以看到射击速度明显变得快了很多,但是枪的抖动也变得更加厉害。那么在解决了射击速度和子弹数量之后,我们的最后一个任务就是将窗口抖动解决掉。为了验证抖动代码所在的位置,我们对AK的射击函数进行调用,发现单独调用这个函数窗口也会抖动,也就是说这个抖动代码是在函数内部的。窗口抖动如果用代码去实现,其实就是对人物朝向的一种改变,在射击的同时对朝向值进行微调就可以达到抖动的效果。而这个朝向值往往是用浮点数存放的,所以我们在函数内部对浮点数写入代码进行分析。在函数头部下断后,按F8逐条向下走,在1D901574处的函数的参数中有一些是对浮点数赋值的,我们观察下发现这些数值看起来都比较大,并不太适合做为一个朝向(如图)



于是我们继续向下分析,在1D901697处可以看到一条浮点数写入代码,但是观察后发现这里写入的是射击间隔0.0099(如图)



继续向下看,我们发现函数马上就结束了,而结束前只剩下一个子函数没有进行分析(如图)



这个函数的参数都是浮点数,我们猜测这个函数就是窗口的抖动函数。这里有两种办法,第一种是到函数内部继续分析,找到抖动的精确代码,第二种是直接将函数NOP掉,那么同样不会经过抖动代码。我们选择简单粗暴的第二种,当然在nop函数前还要观察平栈情况。函数共有7个函数,而函数内部会retn 1C,正好是平衡的,所以我们要讲7个参数和CALL都NOP掉(如图)



之后我们再次进行射击,发现枪口非常平稳,这说明我们修改成功了。但是当我们移动或者是跳跃,下坡时,发现这些改动都失效了,说明在不同的情况下射击经过的代码是不同的,为了能让人物在任何情况下都能无后座力速射,我们又改动了以下代码(如图)(如图)





这样我们就完成了对AK47的修改,大家可以尝试用同样的方法找到其他枪的无后座速射。
来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

x
楼主热帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 17:43 , Processed in 0.125000 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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