Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.174.174] |
|
Сообщ.
#1
,
|
|
|
Доброго времени суток. Суть задачи такова: есть программа, в которой есть некое число, которое я, разумеется знаю. Нужно из моей программы изменить это число т. е. надо каким то образом перебрать всю виртуальную память процесса. Подскажите какие функции существуют для перебора памяти?
|
Сообщ.
#2
,
|
|
|
Игорь98, напрямую тебе система этого сделать не даст. Вариант произвести DLL-injection - сделать свою дллку, которая перебирает значения памяти с определённого адреса и внедрить её в нужный процесс.
|
Сообщ.
#4
,
|
|
|
Вот тебе готовый пример
http://forum.vingrad.ru/forum/topic-353012.html |
Сообщ.
#5
,
|
|
|
Зачем кидать ссылки на левые ресурсы, если ответ есть у нас на форуме?
Найти последовательность байтов в памяти чужого процесса (сообщение #2748638) |
Сообщ.
#6
,
|
|
|
Там полный код.
|
Сообщ.
#7
,
|
|
|
Да неужели? А по ссылочке в моем посте (по ссылочке выше) ходил?
Добавлено И вообще, если комментарии на левом ресурсе ценности не представляют, лучше скопировать фрагмент кода сюда |
Сообщ.
#8
,
|
|
|
Игорь98
Очередной ArtMoney? Быстрее всего память процесса можно перебрать, находясь внутри этого процесса (см. "Инжект DLL"). VirtualQueryEx + прямое чтение памяти, тогда не будет тратится время на ReadProcessMemory. Но в нормальных играх уже давно есть защита от таких штук. Все критические значения в памяти будут лежать зашифрованными. |
Сообщ.
#9
,
|
|
|
Цитата Игорь98 @ Суть задачи такова: есть программа, в которой есть некое число, которое я, разумеется знаю. Нужно из моей программы изменить это число т. е. надо каким то образом перебрать всю виртуальную память процесса Одно дело искать некую более или менее уникальную строку, и совсем другое - некое малое вовсе не уникальное число. Ну переберешь ты ВСЮ память, получишь десяток-другой адресов как по приведенной в #4 ссылке, и что дальше - будешь все тупо заменять и смотреть "попал, не попал"? А если затрешь что-то важное в kernel32, user32 или в самой проге? По ссылочке #5 я намекал, что в подобных случаях нужно шарить не по всей памяти, а по кр.мере использовать доп.инфу о диапазонах адресов модулей из Module32First\Next |