CheatEngine(CE)AA教程

更新时间:2023-07-14 02:31:17 阅读: 评论:0

CheatEngine(CE)AA教程
Cheat Engine(CE)AA教程
适合CE初学者观看
1. 介绍
2. 寄存器
秦始皇是怎么死的2.a 32位寄存器
2.b 16位寄存器
3. 指令
3.a JMP
3.b MOV
3.c Push/Pop + The Stack
豪爽的近义词3.dalloc/label/registersymbol
3.e Call and Ret
3.f 其他
汤阴岳飞庙4. Array of Bytes
5. 结尾
6. 人员名单/致谢词
额外内容: 写一个脚本
1. 介绍
腰椎痛
'哟,我猜你在读这个是因为下面两件事中的一个。
1) 你正在试图学习自动汇编(我不会叫你菜鸟,因为每个人都是从哪里开始的,对吧=) ) or
2) 你想测试你的自动汇编知识(作为扩展)。
那么,如果你是前者,那就慢慢的体会好每个部分,并且在继续进行前确认自己已经明白了
这章。
Dark Byte wrote:
所见这首诗的意思大多数人都认为AA很难,其实它可容易了。
来自CE作者自己的话
如果是后者,那我不会给你提任何的建议,即使我想帮忙。如果你发现有什么错了,或者含糊或者认为我可以做的更好,请告诉我。我一直处于自我学习的状态! 等等!别问,我知道你在想什么。
You wrote:
为什么我非要听一个还在学习的人的话?
好,我来告诉你,我的朋友。即使我仍然在学习,我了解AA,并且我认为与你分享知识是一件很棒的事。=)
Edit: 这个是很久以前写的,但是现在我学到了很多,并且已经重新检查了。
现在,让我们投身入奇幻的电脑世界
2. 寄存器
这些也许你已经在一些脚本中看到过,它们被非常广泛的使用。有两种寄存器被使用,接下来来进行讲解。
---------------
2.a 32 Bit
---------------
首先,我将解释每个寄存器是如何得到它们的名字的,这会帮助你记住它们哪个是哪个。
首先,以E开头(如果你注意了下面,你会发现所有的寄存器都是以E开头的) 它告诉你这个寄存器是32位寄存器。而A,B,C,D的含义你看完描述就能明显得体会到了。像SI,DI,BP,SP,IP也是一样。在EAX,EBX,ECX,EDX后面的X,他简单的表示已经没有更多的字母了。有点像一个NOP 命令(之后你将读到)。如果你注意了,你会发现每个32位寄存器都是3个字母。
EAX: 累加器(Acculmulator register)。能够用来当存储器
EBX: 从前,它是个基础寄存器,但现在只是个闲着的存储器
ECX: 计数器(Counting register)。也能用来当存储器
EDX: 数据寄存器(Data register)。跟之前三个一样,能用来当存储器。
ESI: 源址变址寄存器(SourceIndex register)。是字符串形式的指针变量,但你现在还不用担心那部分。能够用来当存储器。
EDI: 目的变址寄存器(DestinyIndex register)。又一次,能够当作存储器,并且是个字符串形式的指针变量,但别担心。
EBP: 机制指针寄存器(Ba Pointer register)。是用来临时存储ESP,当然也可以像常规的存储器那样使用。
ESP: 原址指针寄存器(Source Pointer register)。它在堆栈里指向寄存器和地址(这个内容待会再说)。
EIP: 指令指针寄存器(Instruction Pointer register)。错误的使用会使你正在试图修改的程序崩溃。
---------------
2.b 16 Bit
---------------
16位寄存器和32位寄存器很相似,他们间有两个区别。一是,32位寄存器名字是三个字母,而16位寄存器是两个字母。还有一件事就是16位寄存器比32位寄存器多但别担心。16位寄存器我们一般都用不上。
AX: 参照EAX
BX: 参照EBX
CX: 参照ECX
DX: 参照EDX
SI: 参照ESI
DI: 参照EDI
BP: 参照EBP
SP: 参照ESP
IP: 参照EIPhotmail邮箱注册入口
---------------
关于寄存器的内容还很多。如果你想学习更多关于寄存器的只是,那就去拜Google大神吧。对于绝大多数的学习者来说求知欲都是很重要的。
3. 命令
当今,什么语言没有它自己的函数和命令呢? 与英文相比,命令像个单词,而操作代码像个句子。操作代码并不难,比如:
Code:
jmp 00123EAA
关于操作代码你应该知道两点。
首先,在操作码里,一般都会有个地址或者寄存器,以及一个显而易见的命令。地址是Hex 形式的,是Hexadecimal的缩写。Hexadecimal是16进制数。就如同10进制那样。
按照这种思路想一想。如同上面提到的那样,我们一般使用十进制。这就意味着我们在一个列里不能有“10”,因为它占了两个地方。而16进制,10至15都可以放在一个列里头。但
是你会发现,“10”并没有出现在列里头。
先冷静,这是因为在Hex进制里,10是用A表示的,而11是用B,直到15是F。再往后,它就是10,然后11,直到1F,如果超过了20(十进制)就得从15(十六进制)往后算。有个简单的转换方法就是用操作系统自带的计算器,这里不赘述了。
还有,每一个地址都有它的操作码和字节码。这个字节数就是代表操作码是什么,每一个命令都一一对应已经定义好的字节码。我知道那些常用函数的字节码是什么,如果你想知道那些字节码的话,你还是指望别人吧,推荐去拜Google大神=)
最后,想注释很方便。要注释的话,就把"//"放在命令后边或某块空处,然后打上你想打的。如果你不打"//" ,那电脑就会以为你在打命令呢。
现在,让我们来了解每个命令都是干啥的。创意手工
3.a JMP
JMP 命令是最常使用的命令之一(就如同MOV 那样,接下来会讲)。也许你在操作码和脚本里看到的"JMP" 不像"MOV" 那么多,那是因为JMP 命令有很多变种。下面就是列表。
JMP: 始终跳转(Always jump to)
JE/JZ: 相等则跳转(Jump to if equal)
验收方案
JNE/JNZ: 不等则跳转(Jump to if not equal)
JA: 无符号大于则跳转( Jump to if Above)
JG: 有符号大于则跳转(Jump to if Greater)
JNA: 无符号不大于则跳转(Jump to if not Above)

本文发布于:2023-07-14 02:31:17,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1095346.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:寄存器   命令   指针   存储器   汇编   代码
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图