CE搜索基址和偏移教程(中文图文)
【图文解说】用CE寻找游戏指针的2种方法(原创)

【图文解说】用CE寻找游戏指针的2种方法(原创)方法一:分析法以CE教学软件为例,我用的CE版本是 6.2汉化版,教学软件没汉化,不同版本可能会略有不同。
打开CE教学软件“Tutorial-i386.exe”,输入密码525927直接跳到第8步,多级指针,打开CE加载CE教学。
输入教学软件上给出的数字进行搜索。
得到一个地址,黑色的,说明是动态地址。
所谓动态地址,就是这个址是会变的,比如说在游戏中存放人物血的数值的地址,每次变换角色或者重新登录甚至变换一下场景,都会发生变化。
那么,通过读写这个地址来得到人物的血量值,就无法实现,变一下就找不到了。
现在我们就是要来分析这个地址是怎么来的。
双击一下这个地址,添加到下面的地址栏,然后右键点击这个地址,“找出是什么改写了这个地址”按一下教学软件上的按键“Change Value”改变数值。
好了,出来一行代码,正是这行代码在改写这个地址里的数值。
双击这行,看详细信息,CE提示要寻找的指针可能是“d7780”我们点新的搜索,选中16进制,数值是“d7780”,结果出来了,还是黑色的。
同样的方法把它添加到下面地址栏,但现在起我们要“找出是什么访问了这个地址”重复这一步的操作,直到搜索到的地址是绿色的为止,绿色的地址,表示是基址,不再会发生变化。
现在回过来梳理一下这个过程,原来我们一开始找到的那个地址,是经过这4次变化得来的。
这个是基址,这里是用一个模块加偏移表示的。
我们在CE上,点“手工加入地址”,钩选“指针”,按“Add Offset”,添加成有4级偏移的指针,最底下方框中输入基址(模块名+偏移),逐级往上每次的偏移量。
好了,指针地址添加好了。
现在测试一下,按教学软件上的“Change pointer”改变指针,看一下我们分析出来的这个指针是不是准确同步变化。
同时也可以看到,改变指针以后,前面找出来的那些动态地址,全都没用了。
上面,简要说了用分析法查找多级指针的方法,说得比较粗略,网上类似的教程也较多,大家可以去找找参考一下。
CE寻找游戏基址

CE寻找游戏基址什么是游戏基址? 游戏基址是保持恒定的两部分内存地址的⼀部分并提供⼀个基准点,从这⾥可以计算⼀个字节数据的位置。
基址伴随着⼀个加到基上的偏移值来确定信息准确的位置(绝对地址)。
全局基址⼀级基址⼆级基址三级基址的关系: 第⼀步、计算机内存⼀般分为四级存储。
(印象⾥好像是四级)。
第⼆步、在最底下的,往往是游戏的全局基址(决定⽤户界⾯以及⼀些细节等)和⼀些响应⽤户操作⽽对应实施的命令。
第三步、该是传递基址了。
现在⽹游的基址往往是动态的。
这个是因为底层的基址不会直接传递给上⼀级内存。
它会加上⼀个偏移量,然后再传递。
这个传递就是指针了。
第四步、当传递到第四层的时候,就会表现在游戏的⽤户界⾯。
在本例中使⽤的是:间接寻址指令的地址字段不是操作数的真实地址,⽽是操作数的有效地址所在的存储单元的地址。
即操作数地址的地址。
"----->"表⽰"指针指向"基址(存放的内容是⼀级基址起始地址)——>⼀级基址(存放的内容是⼆级基址的起始地址:假定为a)[⼀级基址(a) + 偏移量]------>⼆级基址(存放的内容是三级基址的起始地址:假定为b);[⼆级基址(b)+偏移量]-------->三级基址三级基址-------->游戏界⾯⾃⼰制作游戏修改器必须要找到⼀级基址注意:对于单机游戏,游戏基址是不变的。
对⽹络游戏,更新时可能会变。
(因此才会有游戏更新后,某外挂不可以使⽤。
其本质可能是基址改变的。
)另外,所谓的游戏的基址存在于虚拟内存中,⽐如基址为0x006A9EC0。
问题:基址⽆⾮就是⼀块内存,同时基址⼜不可以改变,如果计算机中该块内存被占⽤了,然后再安装基址为0x006A9EC0的游戏,此时会不会写⼊失败,造成⽆法安装呢?解析:不会,基址0x006A9EC0是虚拟内存,会经过页⾯地址重地位,将虚拟地址转换成本机的物理地址,即不存在地址冲突问题。
CE入门教程游戏基址查找方法

CE入门教程游戏基址查找方法CHEAT ENGINE(以下简称CE)是我见过的最优秀的游戏作弊工具。
它的优点多不胜数,虽然单独从搜索游戏里面的数值来说,它并不比其他同类软件强多少,但它不仅仅是个游戏修改工具,它还有其他游戏修改软件所没有的一些特点,例如:它有强大的反汇编功能,这个是别的游戏工具中几乎没有的;还有,它本身就自带了外挂制作工具,可以直接由它生成外挂。
而它的界面非常简洁朴素,这也是我喜欢它的原因之一。
同类软件中,我觉得TSEARCH可以和它媲美,但TSEARCH的界面比较混乱,操作过于复杂,所以我个人并不喜欢TSEARCH。
在这个教程里面,你不会看到任何图片,因为我觉得我能用纯文字教你使用CE,如果你觉得没有图片就一定学不会,我想你没必要看下去了,因为我没空做图片,并且我觉得文字已经足够表达,没必要用多余的图片好了,废话少说,进入正题吧。
其实,使用CE的基本步骤,可以简单到一句话:1.运行CE->2.运行游戏->3.在CE中指定要修改的游戏->4.首次搜索一个数值->5.回游戏中让这个数值增加或减少->6.回CE按数值增减的情况再次搜索->7.重复5和6直到得到一个或很少的几个结果->8.在这几个结果中判断哪一个是真正的结果。
而下面的这个教程,就是要对上面说的这些步骤进行详细的解释,然后再用一个具体的例子来让大家真正掌握CE的用法。
当然,要用一个具体的例子来讲解CE的用法,需要一个游戏,以这个游戏的修改来讲解。
不过,如果真正的用一个游戏来做例子,那么大家也得找到我用的游戏,就算找得到,还有可能要安装,确实比较麻烦。
幸好,CE本身带了一个TUTORIAL,就是教程的意思,不过这个TUTORIAL,本身也是一个程序,它是作者为了让使用的人进行练习而编写的,它不但会一步一步地教你怎么用CE,而且它本身也和游戏差不多,除了没有游戏的画面。
如果你能使用CE按这个TUTORIAL的要求对它进行修改,我想你也应该能用CE对真正的游戏进行修改了。
CE入门简单实用教程(附图解)

现在开始搜索精确数值 100 数值中输入100点击首次扫描按钮一般游戏就是4字节,这里不需要改动,默认就好。
这次扫描我们得到 59 个结果,里面肯定有我们要找的那个血值,不过好像太多了。
我们再输入 96 点击再次扫描按钮结果只剩1个(这就是我们要找的),我们双击此地址将其添加到地址栏:只有1个结果了,这个就是我们要找的内存地址,双击将其加入到地址栏双击下图对应位置可快速更改数值。
第3关的密码是 419482这一关很重要,因为某些游戏中血显示的不是数字而是血条,这样的话教程2中的方法就失效了。
本关就你要教会你如何修改这些讨厌的未知数此时点击新扫描然后选择未知初始数值点击首次扫描然后出现了肯定是N多的结果,因为太多了,CE没有显示出来。
老办法,回到 Tutorial ,点击打我,CE会告诉你血量减了多少,比如-1这里面我们换个思路,假设CE没告诉我减少了多少或者我根本没看清,这时应该怎么办呢?注意看下面的操作一、扫描减少的数值下拉框,选择减少了的数值,按再次扫描(此时血量减少了)二、扫描不变的数值然后选择没变动的数值(此时血量没有变化)三、反复操作再回到Tutorial ,点击打我 => 扫描减少了的数值 => 扫描没变动的数值反复操作,最后就会只剩14个地址四、简单判断简单判断下(Tutorial中告诉你了这个数值是小于500的),很容易就找到了最终的地址双击把地址加到地址栏,然后更改数值为5000,就可以过关了(前面教程有说过,这里就不再重复了)闯关成功。
大家一定要明白这样操作的思路:血量减少=>CE搜索减少的数值血量不变=>CE搜索不变的数值血量增加=>CE搜索增加的数值这样反复筛减,就能很容易找到最终的结果。
第4关的密码是 890124这一关的操作和前面和基本相同,主要是介绍一下什么浮点数:浮点数就是带小数点的数字如何扫描呢:1、首先将数值类型改成浮点数。
2、浮点数扫描时不必输入后的小数94.444 扫描时输入94就可以了其它的操作和前面的基本相同大家也注意到了(上图),浮点数也分为2种:1、浮点数也叫单精度浮点数英文是Single Float2、双浮点数也叫双精度浮点数英文是Double Float这里面要强调的是:浮点数的长度是4字节,使用4字节也可搜索到浮点数,但需要使用模糊搜索。
CE各类教学

所有异常状态抗性 94c
物品栏负重上限 958
HP最大值 500
MP最大值 524
每分钟恢复HP 964(暴力恢复)
每分钟恢复MP 970(暴力恢复)
MP恢复速度 97c
硬直 9c4
跳跃力 9d0
移动速度 988
攻击速度 9ac
释放速度 9b8
城镇移动速度 c60
物理暴击率 9dc
魔法暴击率 9e8
回避率 91c
击飞敌人 bb4
浮空敌人 bc0
命中率 bcc
对人 bdc
攻城 be8
抗魔值 c74
火属性强化 c8c
冰属性强化 c98
暗属性强化 ca4
光属性强化 cb0
所有属性强化 cbc
加多少偏移 10a4 (比如魔剑阿波菲斯+11 这样的+数值)
[感电]状态变化持续时间增加 ec0
[石化]状态变化持续时间增加 ecc
[睡眠]状态变化持续时间增加 ed8
[灼伤]状态变化持续时间增加 ee4
[弱点]状态变化持续时间增加 ef0
[出血]状态变化持续时间增加 efc
[加速]状态变化持续时间增加 f08
鼠标基址+3C8( 3C8就是刚刚所说的偏移,偏移3C8后指着火蜥蜴药水会出现火蜥蜴本身的代码,通过修改的技能代码的方式使得一按火蜥蜴就会出现技能代码的效果)
鼠标基址+3CC(这个也是刚刚所说的偏移,偏移3CC后指着火蜥蜴药水会出现火蜥蜴本身的时间,不过时间在3C8修改之后完成成为了技能的伤害!默认6万,某些代码不会因为修改6万这个数值而改变本身伤害!)
CE查找基址的原理

CE查找基址的原理学外挂制做或不学的人都知道CE就是Cheat Engine,用这个玩意找基址(当然找基址也不是一定用CE,熟悉逆向的人也用调试器)用CE找基址是非常方便的,也知道怎么找,但是却不知道为什么这么找,那些个教程也没怎么说就说怎么找在这我随便说说比如,我要查找角色坐标的基址什么是基址,简单的说,只要这个应用程序不变,那么这个地址就不会变(比如全局变量,这个变量在编译就确定的它的地址了,编译成汇编后这个地址就直接拿来用了)动作:CE中查坐标值比如找到存放这个坐标值的内存地址是1111 (有可能是基址,在这里假如不是基址)那么就有[1111]==坐标动作:查找访问这个地址的代码比如:mov [eax+8],edi那么就有eax+8==1111; [eax+8]==[1111]==坐标; eax==1111-8==1103然后大家会再去查找1103为什么再去找这个eax的值(1103)?为什么重覆的这样找下去就能找到基址(如果选择的访问代码正确的话)?因为这个1103(也就是eax的值)不可能打娘胎时就在eax里,(就算在娘胎里混也要先播种吧)最起码也要一句mov eax,1103 这样才能到eax里,如果你在找访问该地址的代码时找到mov eax,1103 恭喜你,请重新找,你找错了,不可能找到这样的访问地址的代码重新讲上一回1103只有可能在内存由mov eax, dword ptr [1103的内存地址]这样的形式送给eax,就像上个世纪40年代送孩子一样当然可能不会直接mov eax dword ptr [1103的内存地址] 这样送给eax可能mov ebx, dword ptr [1103的内存地址]mov eax,ebx或其它,反正最后才到eax手中了所以我们才再在找内存中有1103的数的地址再找访问1103的地址的代码看看1103的地址是哪个混蛋+偏移形成的一般会再遇到像mov eax dword ptr [esi+10] 这样加偏移的代码再找esi的地址找访问地址的代码假如走狗屎运马上遇到mov eax dword ptr [立即数] 这回真要恭喜发财,基址捡到了。
新手经验CE找基址与各类方式,欢迎老鸟指点(原创)

先说下查找方式,大体就是肯定值查找模糊查找还有些值查找不出来的话先别急,因为那些值寄存方式不明白,所以可能会查找起来比较麻烦不知道存放方法的值可以先分析OD数据,OD分析数据中会得到很多数据,比如有些游戏存放坐标不是数据型,而是把数据改后存为文本型,找到寻路CALL后或需要用到坐标数据的CALL时就可以获得需要查找的值了。
这些下面再说先说下模糊查找,会模糊查找,确定值查找也就会了,不过确定值查找需要选择查找的数值类型模糊查找我用选择怪物数据为例下面画红圈的地方注意看1.肯定没有怪物和人物,NPC选中选中16进制,这样比较容易看数据。
数值填写0,然后点击首次扫描查找出来1大堆2.选中只怪物(注意:攻击的话别杀死怪物后再点扫描)扫描类型选择大于,再次点击再次扫描搜索出来来少了很多,不过还是太多了3.杀死怪物,然后扫描类型选择(精确数值)点击再次扫描4.看下扫描结果,应该仍是很多,然后重复2-3的步骤一直到看地址少于10个这里剩下3个值,0d3c1c9c和0d3c1ca0里寄存的有1个是怪物ID地址偏移,1个寄存怪物名称。
0d3c1ca4里寄存的是当前选中怪物血百分比其实那个游戏CALL里面挪用的选择怪物,解决怪物都是挪用这3个地址,若是不想做怪物过滤的话就没必要去查找怪物ID,怪物名称了。
总结回来很多不重要的功能能够不做就不做了。
不过很多游戏怪物过滤是很重要的。
呼呼下面说如何找出游戏基址直接拿上面地址找我拿0d3c1ca4来做例子双击0d3c1ca4再蓝色条部位随便哪处鼠标右键弹出下图蓝色部分点击鼠标左键,没有这个选项,我用的是弹出下图刚进这个图片的时候可能是空白的,因为没有动作调用这个地址,那么你选只怪物或已经选择了,那么换只会攻击那只怪物(这里需要注意,第1个mov eax,[esi+ecx*4-4] 可能开出来就会出现这种地址,这种地址表示数组地址,而在第1个就跳出来应该不会是咱们要找的偏移地址里面ecx一般=0 能够点进去看下查看里面ecx的值是不是=0 若是不是,那么那个就是咱们要找的偏移值。
Cheat Engine偏移地址查找方法[小杰]
![Cheat Engine偏移地址查找方法[小杰]](https://img.taocdn.com/s3/m/1d321cd476eeaeaad1f330d2.png)
Cheat Engine 偏移地址查找方法
前几天很多人说想学一下关于找地址偏移的问题这两天正好没事我就给大家讲一下如何使用CE 来查找内存的偏移地址会了这些无论是以后用到的给挑战改端或者是修改别的游戏都会有很大的帮助
我们现在就开始吧
一般来说,大家都应该知道怎么找到一个值的地址,然后去修改它,但是有些地址退出游戏后就变了
这就需要偏移了,现在教大家找偏移和基址
1.当然是开游戏,有CE载入它的进程(看图)
2.搜你要搜的值,一般用默认的那个(整数,4字节)
比如搜金钱,就输入金钱数,一开始会有很多个,这时要改变下金钱的数(捡钱扔钱随你)
然后再次搜金钱的数,循环数次后剩下1个或几个,双击它,看图,现在我的钱是
5
3.看图先
点击后得到这个(如图)
然后进入游戏改变一下金钱的数(扔钱捡钱随便你),之后得到如下图
双击后得到
4.根据刚才记下的esi,搜索下esi(如图)
5.这步很麻烦,我直接用说的了然后双击被点下来的那个
接下来
这时候要小退一下,记住`是小退,进来后看看那个地址的值是不是跟金钱一样,改变一下金钱的数,看会不会跟着改变,如果会,就代表找对了
郁闷,游戏突然掉了,我重来,不过是从上面那一步开始,到这里也算差不多完了
6.接下来要重复上面讲到的其中一步,就是双击后看到偏移是504的那一步,得到如图
看到了吧简单的方法我们就已经把金币的基址暴出来了但是我要提醒一下因为很多游戏岁着数据的加密我们每次进入游戏的时候这写地址都在不停的更改就介绍这么多吧如果有什么不明白的请在看完后进行留言我门根据大家的情况相应的做下解答。