[红萝卜辅助编写系列]之内存读写写法(一)
本帖最后由 孤独的红萝卜 于 2015-1-1 17:33 编辑[胡萝卜FZ编写系列]之内存读写写法(一)
大家好,我是胡萝卜今天祝福大家元旦快乐在2015年里新年快乐。今天给大家带来新系列的图文-FZ编写系列-内存读写-植物大战僵尸内存读写(一)
先教给大家怎样找植物的基址与偏移我们先用CE来寻找一下阳光的基址于偏移。CE全称CheatEngine汉译为:作弊引擎汉化技巧:把CE的存放目录的名字全部都必须全是英文或者数字不能出现一个汉字否者汉化失败。运行指示:Windows XP或者Windows7 32位的都运行CE目录下的Cheat Engine.exe如果是Windows7 64位的则运行cheatengine-x86_64.exe我们打开CE点击左上角闪动的小电脑载入我们植物胆战僵尸的进程如下图:
我们搜索现在的阳光数如:9990,点击首次扫描找到两个全部双击拖下来。
修改他们的值看看植物大战僵尸的阳光数会不会变化。我们修改第一个值后植物的阳光数就变化了所以第一个地址是正确的。
我们开始右键正确的地址-找出是什么访问了这个地址。CE提示我们是否加载提示器我们点击“是”会显示出一个窗口我们点击第一个会显示另一个窗口,这个窗口会给我们显示出植物的偏移与寄存器基址如下图:
add eaxedx= 1C3F09A8我们把edx=1d8717b8的地址输入CE的编辑框里勾选Hex输入地址搜索。我们找的通常第一个地址。双击第一个地址。
我们继续上一次的步骤。
Mov ediEsi=003BAF10 我们搜索Esi的地址003BAF10当我们搜索出来后我们往下拉看到绿色的地址后就是正确的植物基址:
这个绿色的地址就是植物的基址了。植物基址=007794F8就是这样找到的基址于偏移的。
进入正题:导入组件
主要组件:
选择框一个时钟一个
帮助组件:帮助模块
编辑框一个超级模块7.26正式版
预览图:开始写代码-------------------------------------------------------------------建立一个程序集变量-进程ID双击窗口写一个代码取进程ID(“植物大战僵尸的进程名”)赋值于建立的程序集变量-进程ID(整数型)双击时钟在时钟的的子程序里建立二个变量-一级偏移(整数型)+二级偏移(整数型)在时钟的子程序下输入代码
植物基址偏移
add eaxedx=1d8717b8mov edi,esi=00a1af50植物基址=007794F8
这里的植物基址是一个常量所以在易语言里建立一个常量.版本 2
.常量 植物基址, "“007794F8”"
这样就可以写代码了。我们首先要读取植物的阳光内存代码如下图:
为什么要这样写呢因为这跟CE添加指针的步骤一样,偏移说的就是图中的“5578”和“868”因为我这里用“”引用所以是文本型所以要调用超级模块的十六到十的命令来吧文本型的偏移转换成整数型。我们所看的第一行的代码的意思就是读取植物大战僵尸的进程来读取这个植物的基址赋值给一级偏移然后再用赋值后的一级偏移再赋值,这一次是用第一次赋值的植物基址来加偏移就构成了跟CE完全相同的步骤。我们来验证下是否正确。吧时钟1的时钟周期改成1000再在时钟1下添加一行代码:编辑框1.内容= 到文本 (二级偏移)我们运行植物大战僵尸来看看编辑框是不是正确读取了阳光数。
这样我们就读取成功了。我们开始正式写代码。我们把最后两行代码删除重新写一个:写内存整数型 (进程ID,二级偏移, 9990) 如下图:
我们运行看看效果
成功!!!!!我们面临一个新问题。如何点击选择框来执行无限阳光呢?我们需要建立一个程序集变量AC(整数型)在启动窗口的程序中让AC=1然后把时钟的数值改回0双击选择框写代码如下:.版本 2
.如果 (AC = 1)
时钟1.时钟周期 = 1000
AC = 0
.否则
时钟1.时钟周期 = 0
AC = 1
.如果结束
就可以了。不信你试试。看图:
第一课结束谢谢大家的观看!!!
很好的教程,不过我觉得如果楼主打算出系列的话就从找基址什么的开始,因为很多像我一样的小白连基址都不会找
非常好的图文教程,谢谢老师,辛苦了。
这么好的图文教程 学习学习谢谢啦
不会找基址要怎么办?还没有了解过找基址
很详细的教程果断学习了{:5_116:}
很详细的教程。如此细腻必须精华!
好详细,真的学到了!
好详细的教程,非常感谢!
{:5_117:}谢谢分享呀。。。。我当初写这个,也是研究了好久。。。。。。