首先我来讲下 为什么要学汇编语言基础,
要分析一个游戏程序或软件程序的数据,首先必须学会汇编是必须的,分析数据 就意味这需要看懂反汇编代码。
那么学习汇编难么,呵呵 也许你自己去试着接触过汇编,有些同学可能觉得很难,有些学员觉得很容易,
不是有句话说来着:万事开头难嘛!凡是任何事情都是开头比较难,只要熬过开头就OK了。
那么怎么样学好汇编语言呢?那么如果你要学会汇编 就得放开思维,把那些汇编 指令 寄存器 寻址方式 都融会贯通的灵活记住!
实在记不住的就背吧 这是最古老的方法.[不推荐这方法],不过不要紧我会把我的汇编经验知识全部一课一课的发帖出来给大家学习!觉得好的话 介绍汇编朋友来学习哦
那么从这节课程开始 我们就可以来学习汇编入门第一课 寄存器,
没有学习过汇编的同学 可能不懂什么叫寄存器 呵呵 提起神来 认真学哦!
寄存器:
其实是一个存放中央处理器的临时存放数据的一个容器,寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。
电脑的中央处理器 也就是CPUCPU的构造是非常复杂的,但我们分析游戏数据 只需要学习寄存器 汇编指令
寻址方式就可以了 毕竟我们只是用汇编分析数据 而不是汇编写程序!
寄存器分8位 16位 32位 64位寄存器组 我们必须掌握了解它们
如果大家有厌学症 那么我劝你还是放弃编程 放弃写辅助,没人是随随便便整天玩 睡觉就成功的!
那么我们先从8位寄存器组开始了解,
8位寄存器组
数据寄存器有8个 分别是AH, AL, BH,BL ,CH,CL, DH,DL
掌握技巧:记住 A B C D 分别 加上 H,L 在后面即可 [学习少不了需要技巧]
8位寄存器在CPU中能存放一个字节长的数值
16位寄存器组
16位寄存器有 4个数据寄存器分别为 AX ,BX, CX, DX
掌握技巧:记住 A B C D 分别 加上 X 就很容易记了
16位寄存器有 2个堆栈指针寄存器分别为 SP, BP
16位寄存器有 2个数据指针寄存器分别为 SI, DI
16位寄存器有 1个标准寄存器为 Flags
16位寄存器有 1个指令指针寄存器为 IP
16位寄存器有 6个数据段寄存器分别为 ES,CS,SS,DS
不过目前的软件系统 大多数都是用32位 32位程序都是直接用32位内存地址 所以16位寄存器大家稍微了解下就可以了!
那么32位寄存器是目前程序比较广泛用到的所以得掌握,
32位寄存器组
有4个数据寄存器 分别是: EAX, EBX, ECX, EDX
2个堆栈指针寄存器 ESP,EBP
2个数据指针寄存器 ESI,EDI
1个标志寄存器 EFlags
1个指令指针寄存器 EIP
还有6个数据段寄存器 ES,CS,SS,DS,FS,GS
本节课程总结:
32位寄存器 16位寄存器 8位寄存器 都有很好的掌握了解方法 知道它们是用来干嘛的就可以了 不需要去了解它是怎么做出来的,因为我们是分析数据 不是写程序!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)