硬編碼
任何一個程序其實都可以看做兩部分組成的,指令
和數據
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個字節