FPS游戏自动瞄准敌人头部?是如何实现的(二)周围目标与准星数据
周围所有目标
追周围遍历 如果你认为上一篇文章的方法比较难,你完全可以不用 因为我们突破口很多,哪个简单用哪个即可 断到的这个位置难,那么PASS
可以运行程序 还有有其他的地方访问 例如下面
对象来源于上面的call,call内部
来源内部
返回
继续返回
得出公式
[[Crossout.exe+0FF6ECC]+([Crossout.exe+1815BF0+n*898+2BE0]&0FFF+2AAD)*C]
总结
[[Crossout.exe+0FF6ECC]+( i &0FFF+2AAD)*C] 对象 [Crossout.exe+0FF6ECC]+( i &0FFF+2AAD)*C]为0 代表死亡 [[Crossout.exe+0FF6ECC]+( i &0FFF+2AAD)*C]+68 UTF_8名称 [[Crossout.exe+0FF6ECC]+( i &0FFF+2AAD)*C]+0C0 血量[[Crossout.exe+0FF6ECC]+( i &0FFF+2AAD)*C]+2B0 X [[Crossout.exe+0FF6ECC]+( i &0FFF+2AAD)*C]+2B4 Z [[Crossout.exe+0FF6ECC]+( i &0FFF+2AAD)*C]+2B8 Y
准星数据查找
我们想要达到FPS游戏自瞄的效果,就需要知道准星的位置,并且能够修改准星的位置。
准星的位置分为2个部分组成,即水平位置摇摆角和高度位置俯冲角。 说的通俗一点就是准星水平位置和准星高度位置。
因为准星高度位置可变化范围比较小,所以我们先扫描准星高度位置 在准星高度位置的内存地址周围就会找到准星水平位置,就好像我们找到了人物的X坐标, 那么周围 一定有Y坐标是一个道理。
准星平放
扫描未知初始值
准星上移
扫描增加的数值
经过多次筛选 剩余 50个地址 其中有2个是基地址
两个基地址拿下来分析
第二个地址修改无效果,会被立刻写回原来的值
我们修改第一个地址 修改前
修改后
修改0以后 ,我们发现 准星高度位置发生变化了 ,并且趋近于水平方向
得到地址
Crossout.exe+182ACE8 准星高度位置俯冲角
在这个地址附近我们又找到了
Crossout.exe+182ACE4 准星水平位置摇摆角
准星变化规律
我们光得到了准星的内存地址是没有用的 要知道准星的变化规律,然后精准的计算出我们应该把准星调整到什么位置。
我们把准星水平方向转一圈观察准星水平位置摇摆角 首先,我们要确定坐标系的方向,方法很容易,向前走,如果Y不断增加,X不怎么变化, 那么为正北方向,如果不是,我们调整角度再走,总之转一圈总会找到大概方向的。
正东方向为X不断增加,Y 几乎不变化。
当我们确定了坐标系以后,再来看准星水平位置摇摆角的变化 发现他是顺时针不断减少 正北为π
转到正东减少为π/2
转到正南减少为0
转到正西减少为-π/2
转回正北减少为-π 然后突然变回π 就好像360度 0度和360度是重合的一样道理。
那么这样就确认了准星水平位置摇摆角的变化规律
我们把准星从最低拉到最高观察准星高度位置俯冲角
发现最低位置是 -1.4左右 不到-π/2
发现最高位置是 1.4左右 不到π/2
那么可能是我们的准星没有办法达到正上方或则是正下方 导致的 偏差 也有可能是就是-1.4 到 1.4 表示正下方到正上方的 那么这个微小的差别我们到游戏里代码 测试
的时候进行微调修改,否则单是观察是观察不出来的
最后得出以下结论
Crossout.exe+182ACE4 XY朝向摇摆角 -π到π
Crossout.exe+182ACE8 Z朝向俯冲角 -0.5π到0.5π
细致分析其变化规律:
准星水平位置摇摆角 正北是π,逆时针逐渐减小,正南是0,继续逆时针减小到正北为-π π和-π重叠 (正北方向Y轴逐渐增加,正东方向X轴逐渐增加)
准星高度位置俯冲角 正上方是0.5π,正下方是-0.5π
深入学习游戏逆向分析,****学院搜索-----吉林飞郁网络培训.
购课与选课咨询飞郁客服QQ:290330101,再根据自身情况与客服建议下购买学习,并享受不定额度优惠.