第二十五课(CE查找内存)
第二十五课(CE查找内存)概述:本节课主要讲了,CE查找内存的一些方法、一些简单的查找方法、内存地址的概念。通过251.exe讲解了用CE查找精确数值的方法,通过252.exe讲解了用CE查找减少数值的方法,通过253.exe讲解了用CE查找双浮点数的方法。最后通过251.exe被找到的精确数值为例,讲解了CE查找数值的来源,把251.exe的按钮功能,通过把dec修改成inc由原来的减1变成加1,通过把dec修改成mov由原来的减1变成一个固定值9999。 用到的工具:易语言编程工具、Cheat Engine、251.exe、252.exe、253.exe 视频教程中的CE版本是5.4简体中文版,我做笔记用的CE版本是7.0单文件版。由于版本和汉化翻译的不同,相关的名称和操作上可能会存在差异,我在笔记里面已经做了相关区分,()外面的是5.4版本的功能名称,()里面的是7.0版本的功能名称。 如果只是学习本节课的内容,7.0单文件版的功能就够用了,如果是用于游戏或者是大型软件,7.0单文件版在功能方面可能会存在BUG,如果出错的话,建议选择下面的完整版CE进行操作。 1个字节占用8个二进制位,1个32位制程序数据保存方法一般是4字节保存的。 CE查找精确数值(251.exe):点CE左上角“小电脑”,找到想要查找的进程,先把CE“扫描类型”选择“精确数值”,再在CE数值输入框输入想要查找的数值,点“首次扫描”会找到很多的地址,然后在自己的程序上面变动一下想要查找的数值,如果CE上面找到的地址也跟着数值变化,可以猜测这就是存放相应数值的地址。再在CE数值输入框输入程序上变化后的数值,点“再次扫描”就能确定这个地址是不是正确的。在CE上面选定相应地址,双击(右键)可以修改数值,也可以锁定数值不变化。 CE查找减少数值(252.exe):点CE左上角“小电脑”,找到想要查找的进程,先把CE“扫描类型”选择”未知初始化数值(未知的初始值)”再点击“首次扫描”,会扫出来很多的地址,然后在自己的程序上面变动一下想要查找的数值,先把“CE扫描类型”选择“减少了的数值…(数值减少了…)”,程序上面的数值减少了几就在CE上面填上几,然后点击“再次扫描”,左边出现的地址个数会减少只剩几个,然后再在自己的程序上面变动一下想要查找的数值,如果CE上面找到的地址也跟着数值变化,可以猜测这就是存放相应数值的地址,具体是不是正确的地址,可以在CE上面修改数值或者锁定数值,看看实际效果。 CE查找双浮点数(253.exe):点CE左上角“小电脑”,找到想要查找的进程,在CE数值输入框输入想要查找的数值,点“首次扫描”没有找到地址,就把CE的数值类型改成“双浮点”再点击“首次扫描”,这时候CE的左边就会显示相应地址,然后再在自己的程序上面变动一下想要查找的数值,如果CE上面找到的地址也跟着数值变化,可以猜测这就是存放相应数值的地址,具体是不是正确的地址,可以在CE上面修改数值或者锁定数值,看看实际效果。 CE查找数值的来源:以251.exe被找到的精确数值为例,在CE的最下面选中想要修改的地址,然后“右键”选择“查找访问该地址的代码(找出是什么访问了这个地址)”,“这将附加CE调试器到当前进程上.继续?(将会使用Cheat Engine的调试器附加当前进程.继续吗?)”选择“Yes(是)”,就会弹出一个空白的小窗口,标题是“下列代码访问选择的地址(下列操作访问了004A6640)”。然后在自己的程序上面变动一下想要修改的数值,原来空白的小窗口就会多出来几条“指令”,双击“指令”可以查看详细信息:dec就是减1的意思,他是首先把这个[004A6640]地址里面保存的值给它读取出来,然后把读取出来的值给它减上1,再把这个减1以后得到的数值保存到这个[004A6640]这个值的里面去。然后点击小窗口右边的“显示反汇编程序”,在“内存查看器(内存浏览器)”窗口的“工具”里面选择“自动汇编”,在“自动汇编”窗口的“模板”里面选择“代码注入”,“代码注入模板(你要跳转到什么地址吗?)”的下面写上想要修改数值的对应“地址”,这里填写的“地址”必须跟“内存查看器(内存浏览器)”窗口里面的“地址”一样,也就是251.exe+1071,确定之后CE就会自动帮你搭建一个可以注入代码的平台,在“自动汇编”窗口里面“originalcode”下面的代码就是咱们可以修改的代码。dec是减1的意思,inc是加1的意思,inc [251.exe+A6640]的意思就是先把[251.exe+A6640]里面的值读出来,然后加上1,再把这个数值保存到 [251.exe+A6640]这个内存地址里面去,跟这个dec是相反的。把“自动汇编”窗口里面的dec改成inc之后,再点击窗口最下面的“执行”并且确定“注入“,原程序251.exe的按钮,它本来是减1就变成了+1。mov [251.exe+A6640],1869F,就是把这个值”1869F“强行的赋给[251.exe+A6640],这个”1869F“是十六进制的,在251.exe程序上面会自动转换成十进制,”1869F“转换成十进制就是” 99999“,点击窗口最下面的“执行”并且确定“注入“,原程序251.exe的按钮,它本来是减1就变成了99999,它就不做相加相减的事情了,他直接就是固定的一个9999。
觅风易语言第二十五课(CE查找内存)课件源码工具笔记下载:
|