AI摘要
本文介绍了进制的基本概念,包括二进制和十六进制的关系,以及程序分析的三个关键问题:程序的起始执行点、代码和数据的存储位置。文章还讨论了大小端序的概念,以Windows系统为例,解释了小端序的存储方式。最后,文章提到了硬编码,即把二进制数转换为汇编代码的过程,并提供了相关图片链接。
进制
4位二进制可以表示16种情况
16进制是逢16进1
一个十六进制数需要由4个二进制数表示
二进制与十六进制的关系 十六进制是二进制的简写,一个十六进制对应四位二进制数
2个十六位数就是一个字节(8位)
二进制(0-15):0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111
十六进制(0-15):0 1 2 3 4 5 6 7 8 9 A B C D E F
浅析程序内容
分析一个程序 必做的三件事:
1.程序从哪里开始执行的
2.代码存在哪里
3.数据存在哪里
大小端
windows一般采用小端序(低位在前)
比如在内存的数据位
0x78 0x56 0x34 0x12
反映到十六位地址就是0x12345678
0x12是高位字节 0x78是低位字节
存储是高位在后低位在前
硬编码
硬编码对应的是汇编语言 比如55对应push ebp
8B EC mov ebp,esp
作用是将二进制数转换为汇编代码

