新手逆向(3)——部分知识储备

本文深入探讨了大端序和小端序的概念,详细介绍了它们在内存地址中的数据存储方式。同时,全面解析了IA-32架构下各类寄存器的功能,包括通用寄存器、段寄存器、程序状态与控制寄存器及指令指针寄存器,帮助读者理解CPU内部数据处理机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小端序和大端序

  • 大端序:高位字节保存在内存的低位地址
  • 小端序:高位字节保存在内存的高位地址
    例如:
    0x12345678,其高位为0x12,低位为0x78;

大端序:
地址         数据

00401008(高地址)   0x78

00401006      0x56

00401004      0x34

00401002(低地址)   0x12

小端序:
地址         数据

00401008(高地址)   0x12

00401006      0x34

00401004      0x56

00401002(低地址)   0x78

IA-32寄存器

寄存器:是CPU内部存放数据的一些小型区域与RAM(随机存储器)略有不同。CPU访问RAM时经过较长的物理地址,所需时间长;而寄存器集成在CPU内部,读写速度快。
IA-32寄存器是英特尔推出的32位元架构;由4类寄存器组成:

  • 通用寄存器(32位,8个)
  • 段寄存器(16位,6个)
  • 程序状态与控制寄存器(32位,1个)
  • 指令指针寄存器(32位,1个)

1.通用寄存器
EAX:累加器
EBX:基址寄存器
ECX:计数器
EDX:数据寄存器
以上四个主要用于算术运算(ADD,SUB,XOR,OR等),常用于保存常量或变量的值。
EBP,ESI,EDI,ESP就不做多解释(主要也都看不懂),主要作用如下:
ESP表示栈区域的栈顶指针;
EBP表示栈区域的基地址;
EDI与ESI与特定指令使用(LODS,STOS,REP,MOVS等),主要用于内存复制。

2.段寄存器
CS:代码段寄存器
SS:栈段寄存器
DS,ES,FS,GS:数据段寄存器

3.程序状态与控制寄存器:EFLAGS:标志寄存器

  • ZF  若运算结果为0,则其值为1(True),否则其值为0(False)
  • OF  有符号整数溢出时,OF置1;MSB(最高有效位)改变时,OF置1
  • CF  无符号整数溢出时,其值置1

4.指令指针寄存器:EIP
EIP中保存着CPU要执行的指令

这个没什么好说的,就是按FILO(First In Last Out,后进先出)原则存储数据

这一篇就是简单地了解一下以后所需知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值