硬编码
任何一个程序其实都可以看做两部分组成的,指令
和数据
cpu并没有明确的规定哪些要当做数据,哪些要当做指令来执行,把数据给EIP只要是遵循了指定的格式(x86 x64 ARM),cpu都会当做指令来执行
x86/x64架构应该遵守的指令格式
inter手册:Intel® 64 and IA-32 Architectures Software Developer Manuals
x86和x64在指令格式和描述上是基本相同的,x64只是在x86的基础上做了一些额外的扩展
inter手册位置: Volume 2, Chapter 2: 2.1 Instruction Format
x86
inter手册位置: Volume 2, Chapter 2: 2.2 IA-32e Mode
x64
在学习硬编码之前,我们需要有一个辅助学习的工具,可以把二进制转换为汇编代码(反汇编引擎)推荐x64/32dbg
或者是OllyDBG
,IDA pro
等
汇编指令最少占1个字节,最多15个字节