CE教程之自动汇编.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CE教程之自动汇编
Cheat Engine最强大的地方,莫过于他的内存反汇编功能了,这给我们提供了无限的可能。
那么,什么是
汇编呢?引用来自互动百科的内容——
汇编程序把汇编语言翻译成机器语言的过程称为汇编。
汇编语合中用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。
这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。
于是汇编语言亦称为符号语言。
用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理的系统软件。
简单来解释就是,在不考虑组译器的情况下(实际上修改游戏的话也不需要关注这个),可以理解为,我们的CPU在处理程序时所用的低级机器语言就是汇编。
很不幸的是,汇编不愧为低级语言,学习起来极其复杂,我周围连能够看懂汇编的人都寥寥无几,更不要说会用的人了。
还好我们并不需要用汇编来写程序,只需要把最常用的几个命令了解即可。
所以我的汇编水平也是非常之烂,恐怕还有无数的错误,只能勉强应付一下常用的反汇编修改了。
那么我就现学现卖一
次好了^_^。
这一次,我们的目标是最近很火热的小游戏《植物大战僵尸》。
进入开始游戏,准备开始修改。
召唤出我们的CE。
改钱的步骤太简单了,就不再浪费时间。
现在我们已经找到了太阳币的地址,点右键,
选择寻找写入这个地址的地址。
回游戏,点个太阳加点钱,然后回来,果然他已经找到了操作码。
双击打开额外信息对话框,这里实际上我们可以看到非常多有用的内容,比如说关于太阳币的指针是[eax+00005560]。
关于指针修改的内容之前
已经讲过了,所以这里不再重复。
不过要注意的话,直接搜索eax的数值,会出来很多个地址,令人难以确定。
所以我们可以稍微往上看一行,“mov eax, [esi+04]”这一段操作码,可以看到实际上esi里的地址就是真正的eax,添加指针的时
候只要输入10455E40+5560即可。
好了,回正题。
我们右键打开详细的内存区域,来看一下之前找到的那段操作码。
好,现在开始准备对他进行自动汇编。
点击菜单栏的工具-自动汇编(或者按快捷键Ctrl+A)。
在弹出的对话框中点击模板-脚本注入。
现在就会生成图中的内容。
add [eax+00005560],ecx就是我刚才点击了一个太阳加钱时的操作码,意思是,给指针[eax+00005560]增加数值ecx。
现在我们简单的修改一下,改成 add [eax+00005560],500。
点击执行,提示注入成功。
要注意的是,在这里所有的数值都是16进制的,也就是说500h换算为十进制,实际上是1280。
现在再回游戏点一下太阳,怎么样,钱不是增加了1280。
当然,自动汇编还可以有很多好玩的用处,比如说每造一个向日葵就自动增加50个太阳币之类,只要再原来的地址下面新增一行即可。
我懒得继续写下去了,有兴趣可以自行尝试。