Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2011, 13: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, 02:24   #2
|{ot
Форумчанин
 
Аватар для |{ot
 
Регистрация: 09.03.2008
Сообщений: 127
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц



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