逆向工程核心原理笔记(二)——小端序标记法
字节顺序,又被称为端序或者是尾序,在计算机科学领域中,这存储器中或在数字通信链路中,组成多个字节的字的字节的排列顺序。
在几乎所有的机器上,多字节的对象都被存储为连续的字节序列,例如在 C 语言中,一个类型为 int 的变量 x 的地址为 0x100,那么其对应的指针为 &x = 0x100,并且 x 的四个字节将被存储在内存的 0x100,0x101,0x102,0x103的位置。
字节的排列顺序通常有两种方式,例如一个多位的整数,按照春初地址从低到高排序的字节中,如果这个整数的最低有效字节(类似于最低有效位)在最高有效字节的前面,则被称为小端序,反之则称为大端序,在网络应用中,字节序是一个必须被考虑到的因素,因为不同的机器类型可能采取不同的标准的字节序,所以需要按照网络标准进行转化。
如果我们加上上述变量 x 的类型为 int ,位于地址 0x100 处,他的值是 0x1234567,地址范围是 0x100 ~ 0x103 字节,但是其内部排列顺序则依赖于机器的类型,大端法从首位开始将是:0x100 0x101 0x102 0x103,而小端法将是:0x103 0x102 0x101 0x100
在大端序中,字符的排列顺序如下:
----------------- | ----------------- | 地址增 | 长方向 | ----------------- | ----------------> |
---|