Мне нужно прочитать память программы из другого приложения. У меня есть весь процесс и приложение "соединение" на месте.
У меня есть функция, которая ищет шаблон в памяти открытого процесса, и которая благодаря сигнатуре возвращает действительную точку входа в интересующую меня функцию.
Проблема в том, что инструкция по сборке, которая приводит меня к данным (которые я не могу найти по смещению или подписи), выглядит следующим образом:
H5Calc.exe+12DDC5B - E8 10F1FFFF - call H5Calc.exe+12DCD70
Я искал вокруг и обнаружил, что это может служить моей цели:
return (MainClass*) *(DWORD*) PatternPointer;
но проблема в том, что приведенная выше строка будет работать при использовании «инъекции», а я использую ReadProcessMemory, поскольку мне это не разрешено.
Итак, может кто-нибудь помочь "перевести"
(MainClass*) *(DWORD*) PatternPointer;
операцию указателя в вызове ReadProcessMemory с учетом ассемблерной инструкции? Учитывая, что я открываю из другого приложения, у меня нет доступа к области памяти H5Calc, если не с помощью ReadProcessMemory (которую я могу регулярно вызывать для других операций).
Любая помощь приветствуется.
Спасибо.
ReadProcessMemory(hProc, (void *)0x12DCD70, &data, sizeof data, NULL);
, может быть? (при условии, чтоdata
являетсяDWORD
или указателем, конечно.) - person   schedule 29.10.2013'12dcd70'
ни из'e8 10f1ffff'
, ни из1sddc5b <= this one the address i get to from the signature
:( - person Alpha cockroach   schedule 29.10.2013e8 10f1ffff0
. - person Alpha cockroach   schedule 29.10.2013