添加一名作者
在FPS游戏中,射击函数的调用非常频繁,因此如果服务器端需要检查每颗子弹的射击状态,那么服务器的负载将会极高。尤其是像CS这样的局域网游戏,这种压力在早期的低配置电脑上就显得更加难以承受。因此,拍摄能力的很多关键信息都是在现场验证的。接下来,通过调整游戏代码,可以实现无限子弹、无后坐力、速射三个功能。
使用CS创建一个awp房间。玩家可以在这张地图上拾取狙击步枪。我想在这张地图上为AK实现无后坐力快速射击。
首先,如果使用CE扫描AK子弹的数量,你会得到大约200的结果(见图)
您可以看到,您可以更改每个结果,并更改其中一个地址中的项目符号数量(见图)。
使用OD加载游戏,并在地址上方和下方的硬件上写入断点。再次射击将断开游戏(见图)
您可以看到带项目符号的数字来自eax,而eax 来自上面的dec eax。这意味着代码每次经过这里,eax就会减1。如果将此dec设置为nop,则子弹数不会变化,如果设置为inc,则子弹数会增加,但当子弹数达到临界值时,会返回0并再次增加。
我们回到外层观察一下拍摄功能(附图)
该函数有三个参数,只有当AK 开火时才会被中断。这表明每把枪的射击功能都是独立的。分析这三个参数,我们可以得出前两个参数是浮点数,第三个参数是0。这里,我们首先记录前两个参数的值分别为0.009624999和0.09549999。
然后用同样的方法得到狙击枪的射击功能(见图)
可以看到前两个参数是0.001和1.45,第三个参数也是0。我们不知道第一个参数是什么,但是如果我们比较两把枪,这两个值匹配,所以我们知道第二个参数很可能是枪的射击间隔,或者射速。我明白了。两把枪的真实情况。要检查这一点,请将AK 的第二个参数更改为0.001(如图所示)(如图所示)
当你射击的时候,可以明显的看到射击速度变快了,但是枪身晃动也更加剧烈了。因此,在解决射速和子弹数量之后,最后的任务是解决窗口抖动问题。
为了查看抖动代码在哪里,我调用了AK的拍摄函数,发现单独调用这个函数也会使窗口抖动。这意味着抖动代码位于函数内部。
如果在代码中实现窗口抖动,实际上会改变角色的方向,在拍摄时微调方向值就可以获得抖动效果。此方向的值通常存储为浮点数,因此请分析函数内以浮点数编写的代码。
函数开头被剪辑完后,按F8逐一步进。 1D901574 中函数的一些参数被分配了浮点数。据观察,这些值看起来相对较大,但实际上并非如此。适合功能用途。
如果继续往下分析,可以看到1D901697里面写的是浮点数代码,但是观察结果发现这里写的拍摄间隔是0.0099(参考图)
如果继续往下看,你会看到函数很快就退出了,只剩下一个退出前没有分析的子函数(见图)。
该函数的所有参数都是浮点数,由此推断该函数是窗口抖动函数。有两种方法可以解决此问题:您可以在函数内继续分析以找到抖动的确切代码,或者可以直接对函数进行NOP 以避免传递抖动代码。我们选择第二种简单粗暴的方法,但是当然我们还需要观察nop函数之前的平栈情况。该函数一共有7个函数,内部函数返回1C。这是精确平衡的,所以我们应该说所有7 个参数和CALL 都是NOP(见图)。
之后我再次射击,发现枪口非常稳定,说明改装成功。
然而,如果你移动、跳跃或下坡,这些改变将被证明是无效的,并且用于射击的代码将根据情况而不同。以下代码已修改(如图)(如图)
现在您已经修改了AK47,请以相同的方式尝试在其他枪支上进行无后坐力射击。
标题:cs1.6外挂作弊器,cs外挂网
链接:https://yyuanw.com/news/xydt/7836.html
版权:文章转载自网络,如有侵权,请联系删除!