Переполнение буфера - C (СИ)
Формулировка задачи:
Помогите разобраться
Лабораторная с переполнением буфера
Вот сам код программы и скриншот результата
После ввода строки аааааааааааааааааааааааааааааааааааааааа теоретически: должна выскочить ошибка и опереполнении буфера и тому подобное
запускаю exe файл на виртуалке xp sp3
компилирую на 2010 VS
я хочу сделать так, чтобы в уязвимой программе моей переполнялся стэк, и я потер адресса в EIP и туда вписал свой адресс на функцию Printff, которая в итоге должна выводить строчку QWERT...
выручайте
#include <stdio.h>
#include <string.h>
void printff()
{
printf("QWERTY");
}
int overflow(char *ptr)
{
char buffer[2];
strcpy(buffer, ptr);
return 0;
}
int main()
{
int a;
char argv[1];
int argc=2;
if(argc>1)
{
overflow(&argv[1]);
}
printf("%d\n", printff);
scanf("%d", a);
return 0;
}Решение задачи: «Переполнение буфера»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
void printff()
{
printf("QWERTY");
}
void overflow(char *ptr)
{
char buffer[2];
strcpy(buffer, ptr);
}
int main(int argc, char* argv[])
{
int a;
if(argс>1)
{
overflow(argv[1]);
}
printf("%d\n", printff);
scanf("%d", &a);
return 0;
}