我正在解决http://pwnable.kr/play.php上的 bof 挑战, 需要粉碎以下代码的堆栈
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void func(int key){
char overflowme[32];
printf("overflow me : ");
gets(overflowme); // smash me!
if(key != 0xcafebabe){
system("/bin/sh");
}
else{
printf("Nah..\n");
}
}
int main(int argc, char* argv[]){
func(0xdeadbeef);
return 0;
}
并且我得到了我应该利用的任务的编译器版本很简单但是当我溢出数组时overflowme
我从未转移到的控件/bin/sh
而是我得到类似*** stack smashing detected ***: ./bof terminated
尝试1的东西
:尝试用零填充数组除了key
但失败的尝试2:得到存储数组的内存转储并使用该转储使数组溢出但仍然失败