最近在弄 shellcode, 不過在寫測試程式的時候, 卻都會跑出來 Segmentation fault
查了一下, ubuntu 在 9.04 之後有將 CONFIG_CC_STACKPROTECTOR 啟動.
啟動這個 Option 之後, Kernel 可以保護 userspace ELF 的 internal stack.
(請參閱 Security Features Historical )
若是要跳過這個機制, 在 compile time 可以加上 “-z execstack”
不確定是不是要 CPU 支援 NX bit
如果用 readelf -a 來看二個執行檔, 一般的 ELF 程式在 Type 的地方會是 EXEC(Executable file), 如果是加上 -z execstack 的程式會是 REL (Relocatable file).
Section Header 以 REL 會單純許多
Ref.
Testing ShellCodes in Ubuntu 10.10
這樣感覺 Linux 很難摸 ;-/
發佈留言