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

VirtualQueryEx - дампим - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывод значения переменной в графическом окне http://www.cyberforum.ru/cpp-beginners/thread525663.html
Всем привет. В общем захотелось присобачить таймер в графическом окне, ведущий отсчёт секунд с начала запуска программы. Но вот столкнулся с такой проблемой - банальный outtextxy() ни в какую не...
C++ Перевод прописных символов введенной строки в строчные и строчных в прописные 1. Разработать программу перевода прописных символов введенной строки в строчные и строчных в прописные. 2. Разработать программу подсчёта статистики массива символьных строки в следующем виде:... http://www.cyberforum.ru/cpp-beginners/thread525641.html
C++ Как сделать виндоусовское окно?
как можно в си сделать виндоусовское окно? и можно какую-нибудь программу, например а + б, только в окне
Квадратная матрица: Вычислить сумму элементов, расположенных на главной диагонали и выше, которые превосходят все элементы C++
Помогите, пожалуйста, решить это задание! Плохо понимаю, как работать с массивами в C++ Дана действительная квадратная матрица порядка N (N - константа). Вычислить сумму тех из ее элементов,...
C++ База данных "Студент"(Turbo C) http://www.cyberforum.ru/cpp-beginners/thread525584.html
База данных "Студент"
C++ Динамический массив как глобальная переменная Доброго времени суток, даже с google никак не смогу разобраться со следующей задачей: Хочу объявить матрицу(matrix допустим) глобальной переменной в классе, её размерность x,y тоже глобальные... подробнее

Показать сообщение отдельно
Битл
0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 65
23.03.2012, 11:17  [ТС]
Цикл работает хорошо. Стыдно, что сам не сделал... Но я что-то никак не соображу, как прочитанный регион скопировать в выделенную память и получить с него массив?
Тут код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
while (lpMem < si.lpMaximumApplicationAddress) {
 
  VirtualQueryEx(phandle, lpMem, &mbi, sizeof(MEMORY_BASIC_INFORMATION));   // Узнаем о текущем регионе памяти.
 
     if((mbi.Protect & PAGE_READWRITE) || (mbi.Protect & PAGE_WRITECOPY)){    
                                                
        LPVOID p = VirtualAlloc(NULL,mbi.RegionSize,MEM_RESERVE,PAGE_READWRITE); // Выделяем память 
 
        PBYTE pBuffer = new BYTE[mbi.RegionSize];        // Буфер под считываемый регион
 
        ReadProcessMemory(phandle, mbi.BaseAddress, pBuffer, mbi.RegionSize, 0); // Считываю весь найденный регион  
 
        memcpy (p, pBuffer, mbi.RegionSize);    // Вот тут я допускаю ошибку
 
        cerr << "Начальный адрес просматриваемого региона" << hex << mbi.BaseAddress << endl;
 
        cerr << "Aдрес выделенного региона" << hex << p << endl;
                                    
        }
 
    lpMem = (LPVOID)((DWORD)mbi.BaseAddress + (DWORD)mbi.RegionSize);
                            
}


Правильно я понимаю, что VirtualAlloc возвращает начальный адрес выделенной памяти? Если нет, то как его получить?
lpAddress - задает начальный адрес. При этом адрес округляется до ближайшей границы блока размером 64 Кбайт.
Но мне нужен точный начальный адрес выделенной памяти. Буду благодарен за подсказки.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru