Как читать переменные сторонних приложений из памяти? - PullRequest
1 голос
/ 11 мая 2009

Я пытаюсь читать переменные из памяти. Переменные, которые не принадлежат моей собственной программе. Например, допустим, у меня в браузере запущено приложение Adobe Shockwave (.dcr), и я хочу прочитать из него различные переменные. Как это делается? Нужно ли подключать процесс? Но он работает под виртуальной машиной, поэтому я не знаю, как это сделать.

Эта задача довольно тривиальна в обычных приложениях w32 (так как в основном это просто CBT-перехват / подкласс), но, как я уже говорил, я понятия не имею, как это сделано с помощью flash / shockwave.

Я использую C ++ (VS9) в качестве среды разработки, если вы хотите знать.

Любые советы будут высоко оценены, поэтому спасибо заранее.

С наилучшими пожеланиями, nhaa123

Ответы [ 2 ]

1 голос
/ 11 мая 2009

Если вы пытаетесь сделать это вручную только для одного или двух экспериментов, это легко. Попробуйте инструмент типа Cheat engine , который похож на бесплатный, быстрый и простой процесс. По сути, он сканирует пространство памяти процесса на предмет заданных значений ключа. Затем вы можете отфильтровать эти начальные результаты поиска позже. Вы также можете изменить те значения, которые вы найдете, жить. Приведенная выше ссылка показывает быстрый пример его использования для нахождения счета или денежного значения в игре и редактирования его в реальном времени по ходу игры.

0 голосов
/ 11 мая 2009

без отладки двоичных файлов / библиотек приложений, ваш единственный шанс - спросить некоторых хакеров.

Обычно вы можете подключиться к процессу с помощью отладчика, но без символов отладки двоичных файлов вы не увидите никаких имен переменных - только адреса памяти.

Далее код Flash / Shockwave запускается в песочнице внутри браузера, чтобы предотвратить дыры в безопасности при манипулировании кодом Flash. Таким образом, у вас нет реальной возможности получить доступ к работающему Flash-коду / плагину, выполняющему Flash-код, - за исключением того, что у вас есть манипулируемая версия такого плагина.

Таким образом, вашу задачу довольно трудно решить без использования менее легальных методов. Следующая сложная вещь - это виртуальная машина - это можно решить, внедрив ваше приложение как клиент-серверное решение, где «инспектор» / сторожевой таймер работает как сервер внутри виртуальной машины, а клиент запрашивает переменную status / content, запущенную на вашем компьютере. нормальный хозяин. Связь может быть выполнена как простое сокетное соединение.

Если у вас есть возможность написать свой собственный плагин Flash / Shockwave, возможно, вы сможете увидеть содержимое переменных.

Извините, что больше не могу вам помочь.

чао, 3DH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...