ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > Реверсинг
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Вопросы: buffer overflow
  #1  
Старый 07.11.2006, 17:13
Qwazar
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме:
10605912

Репутация: 4693


По умолчанию Вопросы: buffer overflow

Итак, купил вумную книжку "The Shellcoders Handbook: Discovering and Exploiting Security Holes". Пытаюсь разобраться с примерами из книжки на практике. Возникла проблема с первым же примером.

PHP код:
void return_input()
{
 
char array[30];
 
gets(array);
 
printf("%s\n", array);
}

main()
{
 
return_input();
 return 
0;

Хочу вызвать функцию return_input() дважды, при помощи gdb узнаю её адрес "0x8048594".

Потом (если я прав), смотрю результат дизассемблирования функции return_input(), для того, чтобы понять сколько места резервируется в стеке, вижу:
Код:
0x08048594 <return_input+0>:    push   %ebp
0x08048595 <return_input+1>:    mov    %esp,%ebp
0x08048597 <return_input+3>:    sub    $0x28,%esp
0x0804859a <return_input+6>:    sub    $0xc,%esp
0x0804859d <return_input+9>:    lea    0xffffffd8(%ebp),%eax

....
Если я прав, то мне нужно число 0x28 (40 в 10й системе) и к этому числу надо прибавить 8, для того чтобы переписать указатели ebp и eip. Или мне нужно (0x28+0xC)+8??

В общем пишу программулинку, которая тупо переписывала бы адреса:
PHP код:
main()
{
 
int i=0;
 
char stuffing[48];
  
 for (
i=0;i<=44;i+=4)
  *(
long*)&stuffing[i] = 0x8048594;
  
puts(stuffing);

В итоге когда её выход перенаправляю в уязвимую программу всё равно вижу "Segmentation fault (core dumped)".

Смотрю состояние регистров, ebp переписался значением 0x8048594, а в eip лежит 0x1. Почему? Что я не так делаю?
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..

Мой блог:http://qwazar.ru/.
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
buffer overflow ProTeuS Реверсинг 10 26.10.2006 15:58
NVidia Binary Graphics Driver For Linux Buffer Overflow Exploit Goudini Защита ОС: вирусы, антивирусы, файрволы. 0 18.10.2006 14:13
Microsoft Internet Explorer MHTML URI Buffer Overflow Vulnerability NeMiNeM Forum for discussion of ANTICHAT 1 08.06.2006 17:03
ms04-011_Lsasrv.dll RPC buffer overflow remote Elemetn Защита ОС: вирусы, антивирусы, файрволы. 2 19.04.2006 10:00
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ