На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
Дорогие друзья! Поздравляем вас с днём Победы!
msm.ru
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта (C++) user posted image FAQ Форума user posted image Наши Исходники user posted image Поиск по Разделу user posted image MSDN Library Online (Windows Driver Kit) user posted image Google

Ваше мнение о модераторах: user posted image B.V.
Модераторы: B.V.
  
> Перебор памяти процесса
    Доброго времени суток. Суть задачи такова: есть программа, в которой есть некое число, которое я, разумеется знаю. Нужно из моей программы изменить это число т. е. надо каким то образом перебрать всю виртуальную память процесса. Подскажите какие функции существуют для перебора памяти?
      Игорь98, напрямую тебе система этого сделать не даст. Вариант произвести DLL-injection - сделать свою дллку, которая перебирает значения памяти с определённого адреса и внедрить её в нужный процесс.
          Вот тебе готовый пример
          http://forum.vingrad.ru/forum/topic-353012.html
            Зачем кидать ссылки на левые ресурсы, если ответ есть у нас на форуме?
            Найти последовательность байтов в памяти чужого процесса (сообщение #2748638)
              Там полный код.
                Да неужели? А по ссылочке в моем посте (по ссылочке выше) ходил?

                Добавлено
                И вообще, если комментарии на левом ресурсе ценности не представляют, лучше скопировать фрагмент кода сюда
                  Игорь98
                  Очередной ArtMoney? Быстрее всего память процесса можно перебрать, находясь внутри этого процесса (см. "Инжект DLL"). VirtualQueryEx + прямое чтение памяти, тогда не будет тратится время на ReadProcessMemory. Но в нормальных играх уже давно есть защита от таких штук. Все критические значения в памяти будут лежать зашифрованными.
                    Цитата Игорь98 @
                    Суть задачи такова: есть программа, в которой есть некое число, которое я, разумеется знаю. Нужно из моей программы изменить это число т. е. надо каким то образом перебрать всю виртуальную память процесса

                    Одно дело искать некую более или менее уникальную строку, и совсем другое - некое малое вовсе не уникальное число. Ну переберешь ты ВСЮ память, получишь десяток-другой адресов как по приведенной в #4 ссылке, и что дальше - будешь все тупо заменять и смотреть "попал, не попал"? А если затрешь что-то важное в kernel32, user32 или в самой проге? По ссылочке #5 я намекал, что в подобных случаях нужно шарить не по всей памяти, а по кр.мере использовать доп.инфу о диапазонах адресов модулей из Module32First\Next
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0308 ]   [ 16 queries used ]   [ Generated: 10.05.24, 16:09 GMT ]