Есть пара вещей, которые вы обычно должны (или, по крайней мере, хотите) использовать, чтобы широко использовать ReadProcessMemory
. Для вашего первого вопроса, находя блоки памяти, которые можно прочитать, вы можете использовать VirtualQueryEx
, чтобы найти области памяти в процессе и как менеджер виртуальной памяти пометил каждую область.
Чтобы найти такие вещи, как расположение отдельных переменных, вам обычно нужно использовать API отладки - в частности, символьную часть - SymInitialize
, SymGetSymFromName
и, возможно, SymEnumerateSymbols
, чтобы вы получили достойное начало. Есть еще несколько, хотя ...