搜索
查看: 290|回复: 1
收起左侧

[火線精英] 火线精英内存梓瞄问题解决

[复制链接]

该用户从未签到

发表于 2025-10-14 00:47:29 | 显示全部楼层 |阅读模式
本帖最后由 KingGod 于 2025-10-14 00:50 编辑

相信大家在写火线精英内存梓瞄的时候会发现一个问题,鼠标的XY坐标数据各有2条,修改鼠标XY坐标时,XY坐标并不会进行变化,必须要在游戏中移动一下鼠标才会更新XY坐标,那么有2种解决办法

1.在梓瞄代码段使用让鼠标移动的api函数来移动1个像素点
2.分析判断逻辑,修改内存

今天要讲的也是第2种,也是全网最简单的方法,那么话不多说,直接上鼠标逻辑汇编代码段(在游戏中找到鼠标XY坐标后,右键查找访问,走动一下,出来的第一条就是)
QQ20251013-234422.png
相信大家看到这里就知道为什么鼠标XY各有2条数据了,那么这里我们来一点点分析
首先函数初始是先将eax+58和eax+48分别放入了xmm0和xmm1寄存器,+58和+48就是我们的鼠标Y坐标,然后使用ucomisd进行了浮点数的比较,正是因为使用了ucomisd,所以结果将会直接保存到CPU标志位,下面的逻辑判断为了大家能看的更清楚,我会逐步拆解
sete cl:如果鼠标Y和鼠标Y相等,那么cl=1
setnp ch:如果鼠标Y和鼠标Y都不为nan,那么ch=1
and cl,ch:如果他们既相等,也都不为nan,则为真
movzx ecx, cl:就不用我多说了把c1 8->32,用作后续的test
test ecx, ecx:这里就是用作更新标志,ecx=0,ZF=1,ecx!=0,ZF=0
sete cl:cl = ZF的意思
其实这里的代码可以理解为在做取反,结果为0,cl就等于1,最后将结果存到ebp-28中
下面的比较和跳转意思就是只有在xmm0和xmm1寄存器相等时才继续比较eax+50和eax+40,+50和+58就是我们鼠标的X坐标,意思就是只有鼠标Y和鼠标Y相等时才进行鼠标X的比较
防止大家看不懂,我将这里的汇编代码翻译为了易语言代码
QQ20251014-004714.png

那么如何让他直接更新鼠标坐标而不进行任何判断呢,答案就在最终的判断
79B6E393 - 8B 4D D8          mov ecx,[ebp-28]
79B6E396 - 85 C9             test ecx,ecx
79B6E398 - 0F84 59030000     je 79B6E6F7
此时已经将判断结果存到了ecx中,下面的test便是决定是否更新鼠标坐标的关键,此时有2种办法,第一种就是直接给ecx赋值,让他永远为更新状态,第二种方法就是直接nop 掉 test或je







上一篇:有lol 台服外服的便宜一体化脚本吗,麻烦各位发一下
下一篇:洛克王国明曦微端PVP对战助手4.6

签到天数: 71 天

[LV.6]常住居民II

发表于 2025-10-14 14:30:08 | 显示全部楼层
有成品吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册用户

本版积分规则

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