Чтение содержимого процесса ⇐ C++
-
Гость
Чтение содержимого процесса
Я пытаюсь прочитать содержимое текущего процесса, чтобы найти шаблон, я получаю указатель на базовый адрес, вызывая GetModuleHandleA(), а затем хочу пройти через него и продолжить сопоставление байтов но я не знаю, какой максимальный размер я могу пройти?
Я пытался прочитать размер файла и использовать его в качестве максимального счетчика цикла.
Ниже приведен код, который я написал на данный момент
const char buf[] = { 0x40, 0x35, 0x02, 0x00, 0x78, 0x00 }; символ ProcessFilePath[MAX_PATH]; GetModuleFileNameA (NULL, ProcessFilePath, MAX_PATH); HANDLE hFile = CreateFileA(ProcessFilePath, ОБЩИЙ_ЧИТАТЬ, FILE_SHARE_READ | ФАЙЛ_SHARE_WRITE, НУЛЕВОЙ, ОТКРЫТЫЙ_EXISTING, ФАЙЛ_АТРИБУТЕ_НОРМАЛ, НУЛЕВОЙ); если (hFile == INVALID_HANDLE_VALUE) вернуть -1; Размер LARGE_INTEGER; GetFileSizeEx(hFile, &size); const беззнаковый символ* lpImage = (беззнаковый символ*)GetModuleHandleA(NULL); ИНТ Maincounter = 0; int Patternsize = SizeOf (buf); for (int maincounter = 0; maincounter < size.LowPart; maincounter++) { printf("%02x", lpImage[maincounter]); } Как мне прочитать всю память процесса? Как правильно определить размер памяти процесса? Для пояснения я пытаюсь прочитать память процесса и сопоставить последовательность байтов сигнатуры функции. Цель — найти, где в памяти находится функция.
Спасибо
Я пытаюсь прочитать содержимое текущего процесса, чтобы найти шаблон, я получаю указатель на базовый адрес, вызывая GetModuleHandleA(), а затем хочу пройти через него и продолжить сопоставление байтов но я не знаю, какой максимальный размер я могу пройти?
Я пытался прочитать размер файла и использовать его в качестве максимального счетчика цикла.
Ниже приведен код, который я написал на данный момент
const char buf[] = { 0x40, 0x35, 0x02, 0x00, 0x78, 0x00 }; символ ProcessFilePath[MAX_PATH]; GetModuleFileNameA (NULL, ProcessFilePath, MAX_PATH); HANDLE hFile = CreateFileA(ProcessFilePath, ОБЩИЙ_ЧИТАТЬ, FILE_SHARE_READ | ФАЙЛ_SHARE_WRITE, НУЛЕВОЙ, ОТКРЫТЫЙ_EXISTING, ФАЙЛ_АТРИБУТЕ_НОРМАЛ, НУЛЕВОЙ); если (hFile == INVALID_HANDLE_VALUE) вернуть -1; Размер LARGE_INTEGER; GetFileSizeEx(hFile, &size); const беззнаковый символ* lpImage = (беззнаковый символ*)GetModuleHandleA(NULL); ИНТ Maincounter = 0; int Patternsize = SizeOf (buf); for (int maincounter = 0; maincounter < size.LowPart; maincounter++) { printf("%02x", lpImage[maincounter]); } Как мне прочитать всю память процесса? Как правильно определить размер памяти процесса? Для пояснения я пытаюсь прочитать память процесса и сопоставить последовательность байтов сигнатуры функции. Цель — найти, где в памяти находится функция.
Спасибо
Мобильная версия