Пытаюсь разобраться с использованием ReadProcessMemory(). Создал тестовое приложение, приложение должно запустить калькулятор и попытаться прочитать первый байт кода калькулятора. При запуске приложение не может выйти из while(), т.е. не происходит чтения. Что я делаю не так?
| Код | int _tmain(int argc, _TCHAR* argv[]) { //тут информация о запуске процесса STARTUPINFO si; //очищаем ZeroMemory(&si,sizeof(STARTUPINFO)); //тут храниться информация о процессе PROCESS_INFORMATION pi; //грузим наш процесс CreateProcess(_T("C:\\WINDOWS\\system32\\calc.exe"),NULL,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi); //буфер для хранения считаных байтов char* lpBuffer = new char [0xFF]; //очищаем буфер ZeroMemory(lpBuffer, 0xFF); //количество считанных байт DWORD dwRead = 0; //сдвиг чтения DWORD *offset = 0; //читаем while(!ReadProcessMemory(pi.hProcess, offset, lpBuffer, 1, &dwRead)); //удаляем буфер delete [] lpBuffer; return 0; }
|
|