переполнение буфера: передача управление шеллкоду в linux
Код:
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[])
{
char buffer[500];
strcpy(buffer, argv[1]); //небезопасная функция
return 0;
}
#include <string.h>
int main(int argc, char* argv[])
{
char buffer[500];
strcpy(buffer, argv[1]); //небезопасная функция
return 0;
}
Дебагер пишет вышло исключение eip=01010101. Как найти начало шелл кода?
Гм, ты же шелл вставляешь вместе со строкой? То есть, он будет на стеке. Разве сейчас можно выполнять инструкции, которые находятся на стеке? По-моему, нельзя было.
Подскажите как найти адрес шелл кода
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[]) // здесь подправить и добавить
{
char buffer[512];
strcpy(buffer, argv[1]); //небезопасная функция
return 0;
}
В dbg запускаю run $(python -c 'print "\x41" * 512 + "\x01\x01\x01\x01" + "shell"
Дебагер пишет вышло исключение eip=01010101. Как найти начало шелл кода?
Цитата: BagiLR
//
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[]) // здесь подправить и добавить
{
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[]) // здесь подправить и добавить
{
Что?
По ходу, его ломанули — он занимается тем, что цитрует заглавные сообщения. Вот что ☺
Цитата: @pixo $oft
По ходу, его ломанули — он занимается тем, что цитрует заглавные сообщения. Вот что ☺
По смыслу отвечали бы