[入門] 堆疊上的小端序
100 分
Pwn簡單
題目描述
附件 lock.c 模擬一把有輸入長度漏洞的門鎖。結構裡有 8 bytes 的名字,後面緊接一個 32-bit 整數。程式把整個結構的長度當成輸入長度,讓後面的門鎖值也能被覆寫。
你的目標是在 little-endian(小端序) 環境下,組出剛好 12 bytes 的輸入:前 8 bytes 全是 ASCII 的 A,後 4 bytes 將門鎖值改成程式中的 UNLOCK。
作答方式
將這 12 bytes 依實際輸入順序轉成 24 個小寫十六進位字元,包在 flag{...} 裡提交。不要把十六進位字元本身當成程式的二進位輸入。
可以閱讀原始碼手算;也可以在自己的 Linux 小端序環境編譯,將二進位輸入送進程式驗證:
gcc -std=c11 -O0 -o lock lock.c
練習重點: 緩衝區覆寫、結構排列與整數端序。
顯示提示
ASCII A 是 0x41。小端序會把整數的最低位元組放在最低位址。