Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

24.10.2012, 12:25. Просмотров 346. Ответов 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;
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2012, 12:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание отладчика. DebugApi (C++):

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

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

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

Accembler: Программирование с использованием кодового отладчика debug - C++
Всем привет) Столкнулся с такой проблемой, дали лабораторную, ничего не объяснили как делать. Ниже ссылка) Подскажите как это...

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2012, 12:25
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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