看板 C_and_CPP 關於我們 聯絡資訊
hi all 我把程式再改寫成這樣 =================== char shellcode[]="\x31\xdb\x89\xd8\x40\xcd\x80"; int main(int argc, char** argv){ __asm__ ( "call shellcode;" ) printf("main\n"); return 0; ================== 這個就是直接測試shellcode能不能用 但我一跑還是core dump 用gdb看是死在shellcode裡 可是這個shellcode我是用下面這個組語產生的 ================ "xorl %ebx, %ebx;" "movl %ebx, %eax;" "inc %eax;" "int $0x80;" ================ 這個exit的asm code我直接跑是ok的 但是把機器碼抓出來 寫到shellcode裡 用call shellcode的方法來呼叫 就會core dump 不知哪位大德可以給一點方向 卡很久實在是很嘔啊… 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.51.128
cobrasgo:自問自答,原來是stack已經被設定為RW,要RWE才能跑… 12/30 17:49