游戏辅助教程-地址篇 CE找地址技巧 找不可见数据和可见数据技巧 教程详解 常见搜索技巧列举 CE搜索入门教程详解
该教程为系列教程,后续教程程会持续更新
对当前教程有疑问请在下方留言,我会按照大家建议修改和完善课程内容。请大家多多关注支持。
CE找地址教程
目录
CE找地址教程
1.讲在前面
2.数值类型
3.搜索精确的数值
4.搜索模糊数值
技巧-模糊搜索法
5.搜索浮点数
技巧-二分排除法
6.模糊搜索的补充
7.常见游戏的数值特征
FPS人物坐标
FPS人物视角
1.讲在前面
本问讲的是找地址教程,并不是找基址教程,找基址教程会在本博客专栏后面的教程里讲解。
课程从最简单的找地址说起,逐渐深入。另外分享一个些主流游戏类型的关键数据搜索技巧,提高大家的搜索效率。
本文以植物大战僵尸和cs1.6为示例。因为我发现大部分涉及的搜索技巧,这两个游戏里面都会涉及到。
2.数值类型
游戏中的各种数据都是存在内存里面,我们在CE搜索的时候,首先要知道我们要搜索的是什么数据类型,这样才不会走岔路,CE所列举的数值类型是对所有数值通用的,这里我对每个数值类型做一下说明
类型 | 内存大小 | 说明 |
---|---|---|
字节 | 1 | -128 到 127 或 0 到 255 |
2 字节 | 2 | -32,768 到 32,767 或 0 到 65,535 |
4字节 | 4 | -2,147,483,648 到 2,147,483,647 或 -2,147,483,648 到 2,147,483,647 |
8字节 | 8 | -2^32 到 2^32 -1 或 0 到2^64 - 1 |
单浮点 | 4 | 1.2E-38 到 3.4E+38 精度6位小数 |
双浮点 | 8 | 2.3E-308 到 1.7E+308 精度15位有效小数 |
不同的数值有不同的范围,我们搜索的时候,要先排除不可能的数值范围。
比如人的生命值为1883 ,那就不可能是字节型。因为字节型最大能表示255
比如金钱为500000,那么就不可能是字节型,和2字节型。因为2字节最大能表示的数是65535
实际搜索中,常用2字节,4字节来搜索整数。常用单浮点来搜索小数。
3.搜索精确的数值
这种地址即,所见即所得。界面上写着什么数值,内存中就是什么数值。这种也是最简单的搜索法。
这里搜索是植物大战僵尸的阳光数值。
首次搜索75 再次搜索100
可以看到,这时候我们搜到这个地址就是阳光地址了,我们修改数值为2500
这时候我们看到阳光值已经变成2500了
4.搜索模糊数值
这里我们采取的例子是植物大战僵尸金钱的数值(下左图)
问题:
这里我们按照之前方法搜索54910,发现搜索结果为空(上右图)。
即,游戏中金钱的数值,并不是以54910的数值存在的。
这时候,就需要我们的模糊搜索法了。
技巧-模糊搜索法
模糊搜索法是在不知道数据具体是多少,却能知道数值的变化规律时,采用的的搜索方法。此时,我们依据数据的变化去定位数值的基址。
首先,我们选择未知初始值,单击首次扫描。这时候我们可以搜索到4794w个地址
我们买个化肥,金币减少,这时候我们 再次扫描 减少的数值。
重复 买物品,搜减少数值 操作
经过多次筛选,剩下992个数值。这时我们停止消费金钱,多次再次扫描未变动的数值。剩下3个地址,
我们对这三个数值进行依次修改尝试,发现第二个地址为正确数值,显示数值= 实际数值*10
至此,我们通过模糊搜索找到了金钱的基址已经显示数值和实际数值的对应关系。
附注:模糊搜索扫描类型的解释
部分模糊搜索条件需要用户输入数值,以x,y代替
1.值大于....(x): 在当前扫描结果中,筛选出值大于x的地址。
2.值小于....(x):在当前扫描结果中,筛选出值小于x的地址。
3.值介于....(x,y)两者之间: 在当前扫描结果中,筛选出 >=x 并且 <= y的地址。
4.增加的数值: 相当于上次扫描结果,数值增加了。如 先前值 25,当前值 28;先前值1000,当前值2234。
5. 数值增加了....(x): 相当于上次扫描结果,数值增加了x。当x输入为2时,先前值 25,当前值 27 满足条件;先前值1000,当前值2234不满足条件。
6.减少的数值: 相当于上次扫描结果,数值减少了。如 先前值 25,当前值 12;先前值1000,当前值834。
7. 数值减少了....(x): 相当于上次扫描结果,数值减少了x。当x输入为2,先前值 25,当前值23 满足条件;先前值1000,当前值834不满足条件。
8.变动的数值:相对于上次扫描结果,数值发生了改变。
9.未变动的数值:相对于上次扫描结果,数值未发生改变。
5.搜索浮点数
这里类型不一致主要是,浮点数和整数。浮点数可以表示带小数的数值,而整数不行。在绝大部分游戏中,浮点数是必不可少的数据类型。
因内存中浮点数和整数的表示方法不一样(具体详细参照浮点数在内存中的存储方式),以整数形式的值去搜索浮点数,是不可能搜到结果的。我们用CE写一个浮点数100,看看他对应的整数是多少
可以看到,浮点数100,对应的整数值为 1120403456。
注:这里说明一下,CE中类型为 2字节,4字节,8字节均为整数型。单浮点,双浮点均为浮点型。具体类型定义,请参数C语言数据类型定义。
下面就是实战环节了。
CS1.6人物生命值为浮点数(Valve后续作品求生之路生命值却是整数,摸摸头)。
这里不讲解以整数型搜索的错误示范,网友们可自行尝试。修改后即使显示的生命值变成了自己想要的数值,但实际扣血中并不生效。如你现在生命值为85,你通过整数值搜索出的地址改为100,下次扣血依然从85开始算。
这里我们看到目前的生命值,是100 。我们搜索浮点数 99 到101。
这里为什么会搜索99 到101,而不是直接搜索100?
这里是经验之谈,比如很多游戏内存里面生命值是80.4,界面上显示的是80,有的游戏内存里生命值是79.1,他界面上依然显示80。由此可见,内存中数值和界面上显示的数值可能有1的误差,误差的原因是把浮点数转整数,根据不同的取整方式,造成不同的显示结果。但是,cs1.6这款游戏你直接搜精确数值浮点数100就好了,也能搜索出来。
因此,当我们发现目标数值是浮点数的时候,我推荐用范围搜索,因为这个能适用所有游戏。
这里我们改变一下生命值,当前生命值为80 ,的我们搜索79 到 81
重复 减少生命值,再次搜索 操作
问题,无论如何重复搜索,都会剩下将近两百个地址。按照之前的方法,一个一个算是不可能的。现在就介绍一种排除方法。
技巧-二分排除法
这里,我们先把搜索的结果都添加到地址栏里。
按住shift选中第一条和中间的一条,选中差不多一半的地址,按space,或者右键菜单锁定地址
锁定后,激活栏会变成,这表示值被锁定,锁定表示CE自动写入固定数值。比如锁定的时候这个数值,是100,那么每隔一定时间(默认0.5秒),都会朝这个地址写入100。
锁定地址之后,
1 如果发现我们在游戏中消耗的生命值会自动回复,则表明,我们要找的地址在锁定的地址中。
2 如果我们游戏中的生命值正常扣,则我们要找的地址不在锁定地址中。
此时,我们发现生命值变成了94,则我们要搜索的地址不在目标范围内。这时,我们应该删除当前锁定地址。并在锁定剩下的一半的地址。
判断生命值是否正常扣除,重复之前判断。
1 如果锁定的地址,不能对人物的生命产生影响,删除当前锁定的地址,锁定剩下地址的一半的地址。
2 如果锁定的地址,能锁住任务生命。删除未锁定的地址,把当前地址锁定的地址解锁一半,看生命值是否影响。
我们的思路是,通过锁定,排除掉不对生命值影响的地址。
通过一段时间的尝试,我们发现只留下四个地址,我们就依次修改生命值,看哪个生效,最终,找到地址0x080B1D5C为任务的生命值。锁定该地址后,人物生命任何形式的消耗都讲自动回复。
修改成100 后,生命值变成100。
6.模糊搜索的补充
模糊搜索的先决条件是,你知道数值是按照什么规律变化。
要是你不知道数值如何变化,那怎么搜索呢。
比如消耗金钱,可以搜索,减少的数值。获得金钱可以搜索增加的数值。但是,比如枪械的后坐力,很多同学可能无从入手,不知道后坐力数值的特征。
这里我给大家提供一种解决办法,或者说一种思路。解决这类问题主要是两种思路,
一种是来源于自己推测,如果你是个游戏开发人员,你自己实现后坐力如何测试。比如说冷却时间,一个魔方的冷却时间是5秒,那么我会搜索一个计时器,记录当前距离上次释放的时间,从0 涨到5000ms。
一种来源是经验,可以从其他地方收集,或者你自己的经验。比如fps游戏人物的位置是浮点数类型的,不是整数型,等等。
文章最后一节会补充一些游戏的数值特征,并且会根据情况持续更新完善。
7.常见游戏的数值特征
FPS人物坐标
x,y,z均为单浮点浮点数。并且数值响相邻,如 x地址 + 4 = y地址 x地址+ 8 = z地址。
FPS人物视角
游戏中人物视角主要包括水平视角和垂直视角。
cs1.6 :
垂直视角最顶部为-89.0 最底部为89.0。
水平视角范围 为 0.0-360.0 ,垂直视角地址-4 = 水平视角地址
天际起源: 垂直视角最顶部为89.0 最底部为271。
水平视角范围 为 0.0-360.0 ,垂直视角地址-4 = 水平视角地址
游戏辅助教程-地址篇 CE找地址技巧 找不可见数据和可见数据技巧 教程详解 常见搜索技巧列举 CE搜索入门教程详解相关推荐
- 《C#网络编程高级篇之网页游戏辅助程序设计(扫描版)》
<C#网络编程高级篇之网页游戏辅助程序设计>通过编写C#网络编程语言中具有代表性的实例,向读者深入细致地讲解了如何利用C#语言进行网页游戏辅助程序设计.本书通过大量的代码引导读者一步步学习 ...
- 初级游戏外挂编程详解 windows运行原理+游戏辅助编程 游戏外挂编程
@TOC初级游戏外挂编程详解 windows运行原理+游戏辅助编程 游戏外挂编程 [1]什么是windows API Windows API 中文翻译过来就是windows应用程序接口(Applica ...
- 用 Node.js 写微信小游戏辅助
似乎使用 Python 写各种辅助的居多,我们来走一波 JS 流吧! GitHub:weixin-game-helper ? 微信小游戏辅助合集 目前已有的游戏辅助: 包你懂我 大家来找茬腾讯版 头脑 ...
- 1.5w字的Rmarkdown入门教程汇总
全文1.5w字,预计阅读时间40min,建议结合b站视频一起学习 本文框架 第一章:Rmarkdown 简介 Rmarkdown 是 R 语言环境中提供的 markdown 编辑工具,运用 rmark ...
- Android入门教程:ConstraintLayout约束布局
原文首发自掘金芦苇APP团队,转载到自己小号上再发一遍~ 翻译By Leelion6.关于 ConstraintLayout 的文章其实已经不少了,不过看到这篇文章写的很有趣,以及在翻译的过程中,感受 ...
- 舵机任意角度程序_【舵机初动】基于Mind+ Ardunio入门教程10
点击上方"蘑菇云创造"可以关注我们哦 本项目要接触到舵机.舵机是一种电机,它使用一个反馈系统来控制电机的位置.可以很好掌握电机角度.大多数舵机是可以最大旋转180°的.也有一些能转 ...
- arduino舵机达180不到_【舵机初动】基于Mind+ Ardunio入门教程10
点击上方"蘑菇云创造"可以关注我们哦 本项目要接触到舵机.舵机是一种电机,它使用一个反馈系统来控制电机的位置.可以很好掌握电机角度.大多数舵机是可以最大旋转180°的.也有一些能转 ...
- python画图颜色表示大小变化_python画图(线条颜色、大小、类型:点、虚线等)(图文详细入门教程四)...
初衷 本人由于平常写论文需要输出一些结果图,但是苦于在网上搜python画图时,详细的教程非常多,但是就是找不到能马上解决自己问题那一行代码,所以打算写一些适合需求简单的朋友应急用的教程,应急就必须方 ...
- 取得数组下标_《零基础C++入门教程》——(8)搞定二维数组与循环嵌套
一.学习目标 了解二维数组的使用方法 了解循环嵌套的使用方法 目录 预备第一篇,使用软件介绍在这一篇,C++与C使用的软件是一样的,查看这篇即可:<零基础看得懂的C语言入门教程>--(二) ...
- python画图marker显示_python画图(标记、marker、设置标记大小、marker符号大全)(图文详细入门教程五)...
初衷 本人由于平常写论文需要输出一些结果图,但是苦于在网上搜python画图时,详细的教程非常多,但是就是找不到能马上解决自己问题那一行代码,所以打算写一些适合需求简单的朋友应急用的教程,应急就必须方 ...
最新文章
- 报错解决transmission: Error: Input/Output error和ls: reading directory '': Input/output error
- 权威报告丨2018-2019 新型互联网生态研究报告摘要
- 使用SpringBoot框架和SpringSecurity框架整合出现because its MIME type ('text/html') is not executable
- php复合索引,关于复合索引和单独索引的一个问题
- 汇编语言 【大练习】寻址方式在结构化访数据访问中的应用
- 物料编码是计算机系统对物料,物料编码是什么?
- php倒计时不停止,php – 当窗口不在焦点时停止的Javascript倒计时器
- 小企业环境中磁带备份和恢复的利与弊
- Activity与Intent机制的学习笔记--转自feisky
- CSDN,我!王睿,回来了!!!
- EMS设置发送连接器和接收连接器邮件大小
- uniapp某个页面高度占满写法
- 【边喝caffee边Caffe 】(二)python版本的报错:Mean shape incompatible with input shape
- Android:Java集合面试题集锦
- 解决vscode下载慢的问题
- MNIST手写数据,从训练到数据预测(keras)
- C语言数字图像处理进阶---1 Photoshop图层算法
- c语言中执行cl exe时出错,执行cl.exe时出错怎么办
- PCB抄板过程中反推原理图的方法
- [Odoo] Odoo 上传附件 attachment
热门文章
- 【C++】DLL文件的编写与实现——三步走
- uniapp苹果内购总结
- matlab求斐波那契数列第n项的值,求fibonacci数列第n项的值. 1 1 2 3 5 8....n ?
- 国内外IT学习网站和工具
- 如何在CSDN编辑器(Markdown编辑器)中输入数学符号
- 澳洲最有“名气”的十三大黑客
- java怎么打印星期_java中获取日期是星期几的两种方法
- 如何使用EPLAN PRO PANEL 制作部件-带3D接线部分
- Spring 技术总结
- WebP已经适合主流使用?美图图像选型评测及优化历程