Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2011, 12:28   #1
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию переполнение буфера

Нужно при помощи переполнения стека проскочить вызов MessageBox "до переполнения" и сразу вызвать MessageBox "после переполнения".
функция Call MessageBox (посмотрел в OllyDbg) находится по адресу 01381413
Самое главное, выскакивает не ошибка "обращение по несуществующему адресу", а просто Windows 7 выдаёт сообщение о том что прекращена работа программы. Предлагает отладку, поиск решений в Интернете и закрыть программу.
Я не так адрес функции передал?
Код:
#include <Windows.h>

//прототипы 
void show_array(int arrlen, char array[]);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR cmdLine, int cmdShow)
{
         char mystr[] = "111112222233333444445555566666777778"
             "\x01\x38\x14\x13";//адрес вызова функции "после переполнения" 01381413

    show_array(51, mystr);

    MessageBox(NULL, "до переполнения", "до переполнения", MB_OK);
    MessageBox(NULL, "после переполнения", "после переполнения", MB_OK);
    return 0;
}

void show_array(int arrlen, char array[])
{
    char buffer[32];
    int i;

    for (i = 0; i < arrlen; i++) buffer[i] = array[i];

}
Dimarik вне форума Ответить с цитированием
Старый 13.07.2011, 01:24   #2
|{ot
Форумчанин
 
Аватар для |{ot
 
Регистрация: 09.03.2008
Сообщений: 127
По умолчанию

ну так оттрасируй в отладчике и сам все увидешь...
|{ot вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 20000 рублей в месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Арифметическое переполнение hasana Помощь студентам 2 04.11.2010 18:08
Переполнение деления!!! zero-cool Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 28.09.2010 20:10
Переполнение стека NoHeart Общие вопросы Delphi 8 08.11.2009 16:03
Переполнение стека Ake Паскаль, Turbo Pascal, PascalABC.NET 3 30.05.2009 21:39
Переполнение Стека Викдон Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2008 19:16


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS