4.第二阶段x86游戏实战2-CE加强修改移动速度(浮点数存放方式与转换)

news2024/11/17 15:52:52

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

本次游戏没法给

内容参考于:微尘网络安全

工具下载:

链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3

提取码:6tw3

复制这段内容后打 开百度网盘手机App,操作更方便哦

上一个内容:3.第二阶段x86游戏实战2-认识强大的CE找血量

上一个内容里通过搜索血量简单认识了CE这个软件(或者说是工具),本次来个趁热打铁在上一个内容的基础上,再深入理解CE的使用,CE有很多玩法,上一个内容里写的只是其中一种

然后本次来搜索角色的移动速度,上一个内容里可以看出使用CE搜索要通过一个可以改变的值来入手,所以既然要找移动速度那就要让移动速度发生变化才行,只有改变了移动速度才能使用CE多次搜索才能使用CE搜索得出来,移动速度这个东西,然后一般移动速度是本地的,也就是说本地修改之后其它玩家也能看到你速度加快了,但是不是本地的也要看游戏一般是本地的,一般移动速度加一点减一点服务器不会做检测,会在允许范围之内,也有的游戏会每次都会验证,本地修改移动速度会无效。

然后怎么更改移动速度?比如可以通过加速度的技能、加速度的坐骑等方式来更改移动速度,然后移动速度的数据宽度一般是一个字节、或者4个字节、也有可能是浮点型(小数),这里写到浮点型所以要写一下浮点型是什么

浮点数:

浮点型有单浮点(单位是float)、双浮点(单位是double),然后单浮点和双浮点都是小数,单浮点是4字节小数、双浮点是8字节小数,可以看出双浮点比单浮点表示的小数范围大,所以它俩的区别就是可以表示的数值范围不一样

然后浮点数的二进制转十进制或十六进制有点复杂现在不容易写明白,不过浮点数的二进制转十进制或十六进制不知道怎么转的也没事,对于逆向没有影响,因为CE这种工具都给转换好了,不需要我们自己转换

浮点数转换方式:

0 01111110 00000000000000000000000 这个二进制是0.5的二进制,然后怎么把二进制算成0.5的?为了防止看着头疼,公式就不写了,直接上傻瓜模式,如下图,小数在计算机中的存储方式,可以看出它分成了三段,这是以 IEEE 754标准存放的浮点数(小数)数据,计算机中常用的浮点数存储标准就是IEEE 754标准

三段分别的意思,下图红框圈出来的位(这些数是二进制数,一个二进制数的单位是位)它的值是1表示负数0表示正数,说它们是三段为什么只圈出了最左边的第一位?因为剩下的两段的名字不直观看了会蒙,为了遵循傻瓜模式指定不能让人看蒙了所以直接不写,直接继续看下方的例子

要注意虽然是遵循傻瓜模式但是不会 加乘除就没办法了,可以直接放弃,不要关注浮点数和二进制怎么转的了,使用CE这种工具给你转吧,不用钻牛角尖,知道怎么转的用处也不大。

如下图以单浮点为例,下图第二段也就是红框圈出来的这一段,首先把二进制是1的全部进行相加结果是2+4+8+16+32+64 = 126,然后下图圈出来一共有8位,然后就是2的7次方也就是2乘2乘2乘2乘2乘2乘2-1=127也就是7个2相乘然后减1的结果,然后用126-127=负1,然后就是2的负1次方也就是1除2=0.5,0.5就这样得到的

然后上面是一个简单的例子在看0.6的,0.6二进制是0 01111110 00110011001100110011010 可以看到它从左边数第三段有1有0了,这种怎么算?然后第二段与0.5一样所以第二段的结果也是0.5,所以就只剩下计算第三部分就可以了,如下图0.5是2的-1次方也就是1除以2等于0.5,0.25是2的-2次方也就是1除以2除以2=0.25其它的都是同理,它最后几位普通的计算器根本无法计算了,后几位是通过AI计算的,AI最后一位也计算不了了,然后最后一位粗略的值0.000000119209

然后把二进制的值是1的拿出来相加最终的结果是0.2000000476837158,得到这个结果之后对它进行加1,为什么加1?IEEE 754标准(或者说是规则)它规定了就得加1(实际上是加2的0次方,2的0次方的结果也是1),加完1之后的结果是1.2000000476837158,然后0.5乘1.2000000476837158结果就是0.6

计算的结果,然后可以看到下图红框0.6后面还有一堆数字,这是正常现象,计算机中的浮点数就是存在这种问题,这个问题叫做精度问题,所以在使用浮点数的时候要注意,高级语言都有专门处理浮点数的函数(直接百度搜C++精度问题这种关键字就能找到)可以避免精度问题

上方是通过IEEE 754标准进行二进制转浮点数的方式,然后浮点数转二进制,以 251.62 这个数为例子,首先251的二进制是11111011,也就是 1+2+8+16+32+64+128=251,然后0.62的二进制它需要计算0.62乘以2直到乘到整数为止,但是计算机有宽度单浮点只有23位,如果是循环小数最多只能乘23次2,多了计算机没法存放,然后开始计算

0.62乘以2结果是1.24,然后二进制取整数位也就是1

然后上方把1拿了出来所以就是0.24乘以2,结果是0.48,然后把0拿出来,现在的二进制是10

然后是0.48乘以2,结果是0.96,然后把0拿出来,现在的二进制是100

然后0.96乘以2,结果是1.92,然后把1拿出来,现在的二进制是1001

然后上面把1拿了出来所以就是0.92乘以2,结果是1.84,然后把1拿出来,现在的二进制是10011

然后0.84乘以2,结果是1.68,然后把1拿出来,现在的二进制是10011

然后0.68乘以2,结果是1.36,然后把1拿出来,现在的二进制是100111,然后0.62不能精确表示一个有限的二进制小数,所以就取到100111,不信的可以继续往下乘以2

然后251.62的二进制就是11111011.100111,这个11111011.100111是251.62的二进制表示法并不是计算机存储的那个,计算机存放浮点数是遵循的IEEE 754标准,所以要把11111011.100111转成IEEE 754标准,转换方式

首先把11111011.100111变成1.1111011100111这样的,也就是小数点往前移动,一直移动到左边剩1位,然后小数点移动了7位,然后127+7(移动几位就加几)得到134,这个134的二进制是10000110,这就是第二部分,第三部分11110111001110000000000(23位,不够23位往后面补0),超过23位计算机没法存(现在的计算机可以存,用双浮点就可以存了,如果双浮点是52位不够52位就补0),最终的二进制是0 10000110 11110111001110000000000

以单浮点IEEE 754标准为例:

符号位:0(正数)

质数位:10000110

尾数位:11110111001110000000000

质数位说的就是第二部分、尾数位说的就是第三部分,这俩词很抽象很难理解直接忽略

补充:

0.5转二进制的转法,上面写了小数部分乘以2,0.5乘以2等于1,然后二进制就是0.1,上面通过往左移动小数点的次数对127进行相加得到了第二部分,这种只有1位的怎么移动?这里记住0就是127-1=126所以第二部分的二进制是01111110,第三部分,0.5的二进制是0.1,这个1根据IEEE 754标准它会隐藏,所以0.5第三部分的二进制是00000000000000000000000也就是23个0,只要二进制是0.几的默认把后面第一个1隐藏变成0就可以了

然后移动速度的值一般0-30左右,所以先使用范围搜索

如下图

然后通过上图可以看到数值类型是单浮点,这是通过挨个试,试出来的,然后根据经验移动速度一般是字节、4字节、单浮点这三种

然后搜索,如下图搜出了很多

然后来到游戏中,改变移动速度,这里是通过技能减少了移动速度,然后就选择数值减少了

然后还原移动速度,也就是增加移动速度,然后如下图

然后扫描之后结果又变少了,但还是很多,所以继续

这次什么移动速度没有变化,所以如下图,使用未变动的数值扫描

然后扫描之后

然后继续减少移动速度(开始重复上面的步骤了)

然后最终剩下125个,现在可以动手了

首先如下图CTRL+A全选结果,然后点下图红框

下图红框圈出来的有整数、有小数、小数是0.几还有带字母的科学计数法的小数,这些可以忽略,因为这些一看就不满足移动速度这个东西

下图和上图不一样了,这是因为通过上面的步骤重新找了一次(上面是边记录边找的,搞的有点乱所以重新找了一次),然后最终发现一件事,它原本的速度是整数,如下图,原本速度是4,它是一个整数,这怎么发现的?通过坐骑,坐骑加百分之80的速度发现的,之前通过技能改变的移动速度,技能改变的速度是把移动速度减半,所以没发现

然后给它改成1000之后效果跟瞬移一样了

然后符合移动速度的小数,如下图

然后上面是通过坐骑发现它原本速度是4,如果没有坐骑怎么确定?如下图,把带字母的小数也就是科学计数法全部删掉,如下图选中之后右击点击删除记录,这种带字母的可能是内存地址,如果随意更改会游戏会崩溃,所以这里要先把带字母的全部进行删除记录

删除所有带字母的之后,然后如下图选中一半剩下的数值

然后鼠标右击选择更改记录里的数值

然后这个数值最好改的大一点,如果改动很小会感觉不出移动速度变快了,从而导致错过正确的值

然后更改完之后回到游戏看看移动速度有没有变化,如果没有变化再选择剩下的那一堆地址进行更改记录然后选择数值,然后再回到游戏,一般经过这两次的修改肯定有一次游戏的移动速度变快了,如果下图绿框里修改之后游戏移动速度变快了,那就把红框里的地址(内存地址)全部删除

然后如下图,再从剩下来的内存里选中一半然后更改它们的值,然后就开始重复上面的步骤了,这样一半一半的改最终肯定会找到移动速度的地址(内存地址)


img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2119743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2.3.2 协程调度器实现与性能测试

LINUX 精通 8 day24 20240909 晚19:35 - 20: 47 课程链接地址 老师画图用的是excalidraw 可以在线 本地! Excalidraw:开源实用的白板画图工具(在线/本地安装)-CSDN博客 2.3.2 协程调度器实现与性能测试 复习了上…

HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)

跟着该视频学习,记录笔记:【黑马程序员pink老师前端入门教程,零基础必看的h5(html5)css3移动端前端视频教程】https://www.bilibili.com/video/BV14J4114768?p12&vd_source04ee94ad3f2168d7d5252c857a2bf358 Day3 内容梳理:…

使用ChatGPT生成爆款小红书文案,有手就行!

小红书,作为当下热门的社交电商平台,以其独特的社区氛围、精准的用户画像和高粘性的互动模式,吸引了大量年轻用户,尤其是女性用户。平台上的内容风格多样,涵盖了美妆、时尚、生活方式等多个领域。 本文将介绍小红书平台…

为何家用无线路由器不能实现PROFINET通信?

家用无线路由器和工业通信设备到底有什么不同?工控人加入PLC工业自动化精英社群 首先,在技术上,两者存在明显的差异。 家用无线路由器主要是为了提供互联网接入和家庭设备间的连接,而PROFINET则是专为工业自动化设计的通信协议。就…

1分钟教你用AI制作美女热舞视频,收益可观,操作简单(附工具及教程资料)

美女跳舞,听着是不是就觉得会很哇塞? 不管是男的女的、老的少的都喜欢看,而且一般美女跳舞的账号涨粉都很快,势头都贼猛。 今天就给大家分享一个很热门的小副业——AI美女跳舞。 更多实操和AI绘画工具,可以扫描下方&…

通过SSH服务远程操作Linux(ubuntu)主机

首先SSH是什么?SSH(Secure SHell)是Linux、Unix、Mac及其他网络设备最常用的远程CLI管理协议,SSH使用秘钥对数据进行加密,保证了远程管理数据的安全性。Secure Shell (SSH) 是一种网络协议,允许用户通过加密…

OpenCV-轮廓特征

文章目录 一、简介1.意义2.类别 二、代码实现1.数据预处理2.计算周长3.绘制外接圆轮廓4.绘制外接矩阵 三、总结 一、简介 1.意义 在OpenCV中,轮廓检测后得到的轮廓不仅是一系列点的集合,还可以进一步分析以提取有用的特征。这些特征包括但不限于轮廓的…

纷享销客CRM+契约锁:“好应用+电子签” 融合领先实践

9月6日,主题为“智享未来 领创CRM新纪元”的2024纷享销客伙伴大会湖北站圆满结束,此次盛会吸引了来自不同行业的精英代表、技术专家,共同探讨CRM领域的最新趋势、创新实践与未来机遇。纷享销客战略伙伴契约锁受邀参加本次大会,为现…

一区霜冰算法+双向深度学习模型+注意力机制!RIME-BiTCN-BiGRU-Attention

一区霜冰算法双向深度学习模型注意力机制!RIME-BiTCN-BiGRU-Attention 目录 一区霜冰算法双向深度学习模型注意力机制!RIME-BiTCN-BiGRU-Attention效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现RIME-BiTCN-BiGRU-Attention霜冰算法…

NLP-新词挖掘

一、背景 网络领域的新词发现(挖掘)是一个非常重要的nlp课题。在处理文本对象时,非常关键的问题在于“切词”这个环节,几乎所有的后续结果都依赖第一步的切词。因此切词的准确性在很大程度上影响着后续的处理,切词结果…

树莓派通过串口驱动SU-03T语音模块

树莓派通过串口驱动SU-03T语音模块 文章目录 树莓派通过串口驱动SU-03T语音模块一、SU-03T语音模块的配置和烧录1.1 PIN引脚配置:1.2 设置唤醒词:1.3 设置控制详情:1.4 下载SDK并烧录到语音模块: 二、测试语音模块三、树莓派通过串…

在这12种场景下会使Spring事务失效--注意防范

在某些业务场景下,如果一个请求中,需要同事写入多张表的数据,但为了保证操作的原子性(要么同事插入数据成功,要么同事插入失败),例如,当我们创建用户的时候,往往会给用户…

图的广度优先遍历与深度优先遍历(C语言)

这是结果 #include <stdio.h> #include <stdlib.h> #include <stdbool.h>#define _CRT_SECURE_NO_WARNINGS// 定义边表结点结构 typedef struct EdgeNode {int adjvex; // 邻接顶点域&#xff0c;存储该边所指向的顶点struct EdgeNode* next; // 指向下一条…

Oracle Linux 8.10安装Oracle19c(19.3.0)完整教程

安装前请仔细将文档通读一遍&#xff0c;安装过程中根据安装命令仔细核对&#xff0c;特别留意一些字体加粗或标红的字样&#xff0c;遇到问题请及时咨询公司 1、基础环境 1.1、操作系统 cat /etc/redhat-release 1.2、主机名 医院默认分配的主机名可能跟其他主机会有重复&a…

【阿里云】10分钟在网站上增加一个AI助手

文章目录 方案预览1. 创建大模型问答应用1.1 创建应用1.2 获取调用 API 所需的凭证 2. 搭建示例网站2.1 创建应用2.2 访问网站 3. 为网站增加 AI 助手3.1 增加 AI 助手相关代码3.2 验证网站上的 AI 助手 4. 为 AI 助手增加私有知识4.1 配置知识库 总结应用于生产环境前端代码服…

mysql使用笔记

1、下载mysql,本教程适用于免安装版。 https://dev.mysql.com/downloads/mysql/ 当前最新版本是8.0.27,如果想安装其他版本,选择Achives. 下载后减压到要放置的目录中。 E:\mysql-5.7.35-winx64 这是我的路径,在根目录下建立一个my.ini 文件,用来放置配置信息,保存的时候…

猫咪浮毛有这么严重?你不知道的浮毛清理好物——宠物空气净化器

家人们谁懂啊&#xff0c;男朋友整天和我家猫争宠&#xff0c;最近还上升到了有猫没他的地步。猫咪刚开始接回来的时候压根不掉毛&#xff0c;他们相处的特别好&#xff0c;呆在一起玩的时间比我还多。可是这样温馨的相处没持续多久就变了&#xff0c;之前不掉毛都是猫咪的假象…

MIST:用于组织病理学亚型预测的多实例选择性Transformer|文献速递--基于深度学习的医学影像病灶分割

Title 题目 MIST: Multi-instance selective transformer for histopathological subtype prediction MIST&#xff1a;用于组织病理学亚型预测的多实例选择性Transformer 01 文献速递介绍 组织病理学亚型预测在癌症疾病的诊断和治疗中具有重要的临床意义。组织病理学亚型…

反序列化漏洞练习1

根据代码可以看出来sis类只是接收了参数cmd&#xff0c;下边是通过get获得cmd的值&#xff0c;所以可以在序列化过程中直接为cmd赋值。 根据源码编写序列化代码 <?php class sis{public $cmdsystem("whoami");?>;public function __wakeup(){eval($this-&g…

记录深度学习量化操作

0. 简介 深度学习中做量化提升运行速度是最常用的方法&#xff0c;尤其是大模型这类非常吃GPU显存的方法。一般是高精度浮点数表示的网络权值以及激活值用低精度&#xff08;例如8比特定点&#xff09;来近似表示达到模型轻量化&#xff0c;加速深度学习模型推理&#xff0c;目…