內容物
- e7bc5d2c0cf4480348f5504196561297
分析
一樣丟 DIE
發現是 C 寫的 ELF 一樣沒有殼
但是被 stripped 了
好難QQ
這篇有比較多參考 write-up 跟 AI
程式啟動的步驟是
entry → __libc_start_main → main
而 64bit 環境下 __libc_start_main 用暫存器傳參數
32bit 則是在 stack 傳參數
所以這一題可以知道是 64bit
int __libc_start_main(
int (*main) (int, char **, char **), // <--- 第一個參數 (RDI) 就是 main
int argc, // <--- 第二個參數 (RSI)
char **ubp_av, // <--- 第三個參數 (RDX) = argv
void (*init) (void), // <--- 第四個參數 (RCX) = constructor
void (*fini) (void), // <--- 第五個參數 (R8) = destructor
void (*rtld_fini) (void), // <--- 第六個參數 (R9) = dynamic linker destructor
void (*stack_end) // <--- 第七個參數 (Stack)
);
所以現在知道要去哪裡找 main 了
然後 main 做的事就是呼叫 sub_402079
並且裡面東西非常多