Skip to content

Latest commit

 

History

History
20 lines (19 loc) · 2.72 KB

README.md

File metadata and controls

20 lines (19 loc) · 2.72 KB

ctf-wiki-learning

我开始学习ctf wiki并按照系统路线记录一些感悟和笔记。

字节序,又称端序或尾序(英语中用单词:Endianness 表示),在计算机领域中,指电脑内存中或在数字通信链路中,占用多个字节的数据的字节排列顺序。

在几乎所有的平台上,多字节对象都被存储为连续的字节序列。例如在 Go 语言中,一个类型为int的变量x地址为0x100,那么其指针&x的值为0x100。且x的四个字节将被存储在内存的0x100, 0x101, 0x102, 0x103位置。
字节的排列方式有两个通用规则:
大端序(Big-Endian)将数据的低位字节存放在内存的高位地址,高位字节存放在低位地址。这种排列方式与数据用字节表示时的书写顺序一致,符合人类的阅读习惯。
小端序(Little-Endian),将一个多位数的低位放在较小的地址处,高位放在较大的地址处,则称小端序。小端序与人类的阅读习惯相反,但更符合计算机读取内存的方式,因为CPU读取内存中的数据时,是从低地址向高地址方向进行读取的。
上面的文字描述有点抽象,我们拿一个例子来解释一下字节排列时的大端序和小端序。
在内存中存放整型数值168496141 需要4个字节,这个数值的对应的16进制表示是0X0A0B0C0D,这个数值在用大端序和小端序排列时的在内存中的示意图如下:
端序理解图

为何要有字节序

很多人会问,为什么会有字节序,统一用大端序不行吗?答案是,计算机电路先处理低位字节,效率比较高,因为计算都是从低位开始的。所以,计算机的内部处理都是小端字节序。
在计算机内部,小端序被广泛应用于现代 CPU 内部存储数据;而在其他场景,比如网络传输和文件存储则使用大端序。

python struct模块的通俗理解

(参考https://www.cnblogs.com/tomato0906/articles/4826759.html https://docs.python.org/2/library/struct.html)

2023.11.5

安装010editor(https://blog.csdn.net/NS_ice/article/details/132398846?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169917049016800222862964%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169917049016800222862964&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-132398846-null-null.142^v96^pc_search_result_base1&utm_term=010editor%E6%B1%89%E5%8C%96%E7%A0%B4%E8%A7%A3%E7%89%88&spm=1018.2226.3001.4187) 遇到问题“写入注册表失败”,关闭防火墙即可。