Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
#1

Создание отладчика. DebugApi - C++

24.10.2012, 12:25. Просмотров 332. Ответов 0
Метки нет (Все метки)

Здравствуйте!
Нужно написать небольшой отладчик, но столкнулся с обной проблемой.

Чтобы установить breakpoint, нужно прочитать один байт по нужному адресу и перезаписать его на int 3.

Но вызвать ReadProcessMemory\WriteProcessMemory получается не везде. При попытке вызова GetLastError = 299: Only part of a ReadProcessMemory or WriteProcessMemory request was completed.

Например, нужно установить breakpoint на функцию GetProcessAddress:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
        PROCESS_INFORMATION openedProcessInfo;
        STARTUPINFO startInfo;
        startInfo.cb = sizeof(STARTUPINFO);
        ZeroMemory(&startInfo, sizeof(STARTUPINFO));
        ZeroMemory(&openedProcessInfo, sizeof(openedProcessInfo));
 
        BOOL isOpened = CreateProcess(L"C:\\example.exe",
            NULL, 
            NULL, 
            NULL, 
            false, 
            DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS, 
            NULL, 
            NULL, 
            &startInfo, 
            &openedProcessInfo);
 
        SIZE_T bytesRead;       
        BYTE instruction;
 
        if(!ReadProcessMemory(openedProcessInfo.hProcess, GetProcAddress, &instruction, 1, &bytesRead)) {
            cout << "GetLastError = " << GetLastError() << endl;
            return 1;
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2012, 12:25     Создание отладчика. DebugApi
Посмотрите здесь:

Магия отладчика - C++
Доброго времени суток! Возник такой вопрос: я использую среду разработки code::blocks 16.01 с компилятором mingw, и при просмотре того, как...

Дизасемблированный код в составе отладчика - C++
я взял код метод пузырька ,и перевел оптимизация по скорости и размеру #include &quot;iostream.h&quot; #include &quot;stdio.h&quot; void...

Кривой русский в консоли отладчика - C++
Создаю приложение c формой, но при компиляции почему то выдает не корректные сообщения об ошибках: 1&gt;MyForm.obj : error LNK2028:...

Где поставить вторую точку останова отладчика? - C++
Поставьте точку останова Отладчика на оператор j=i и в цикле работы getline(). getline(char s,int lim) { int c,i; static int...

Определить существует ли ромб с задаными сторонами a,b,c,d (без операторов ввода и ввывода,в режиме отладчика) - C++
Написать в с++

Настройка отладчика qt - C++ Qt
Установил qt 2.5.2. Установил MinGw. Инструменты/параметры/инструментарии В MinGW следующий набор опций Путь к компилятору...

Помощник отладчика - C++ Qt
Всем привет! Установил пакет Qt5.1...

Ошибка отладчика и предупреждение - Lazarus
Скажите из-за чего это

Изучение отладчика WinDbg 86/64 - Программирование
Доброго дня уважаемые гуру реверсинга и программирования, ищу специалистов для изучения отладчика WinDbg, реверсинга и других аспектов...

Работа отладчика VBA - MS Access
Подскажите знатоки из-за чего не может запуститься отладка процедуры vba. В окне кода ставлю курсор в одну из строк процедуры, нажимаю F8,...

Вопрос по работе отладчика - Visual Basic
Всем доброго времени суток! Столкнулся с курьезной ситуацией,а именно при пошаговом выполнении (f8) проекта все отрабатывает корректно,...

Кодировка отладчика: крякозябры - C++ Qt
Решил освоить Qt (установил 5.4), и вместо того, чтобы листать книжку Шлея я весь день дерусь с этим треклятым Qt Creator 3.3. Задал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru