GameHackLab[RU]
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Что такое дамп памяти/снимок/состояние?

    Запланировано Прикреплена Закрыта Перенесена Взлом игр (вопросы и ответы)
    5 Сообщения 3 Posters 173 Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • S
      Sergey99
      отредактировано

      У меня есть игра, в которой есть персонаж, который может ходить, бегать и прыгать. У него есть здоровье. Я могу сохранить состояние игры (процесса) - сделать снимок/дамп с помощью специального инструмента. Дальше похожу, побегаю, уменьшу количество здоровья и загружу дамп/снимок в память процесса и в итоге получу исходные координаты и начальное количество здоровья (которое было на момент создания дампа). Похожая штука есть в эмуляторах.

      Могу ли я сказать, что снимок или дамп памяти — это байты, которые были сохранены на момент создания снимка в виртуальном адресном пространстве (в куче, сегменте кода, сегменте данных, BSS-сегменте, стеке и в области для загруженных библиотек, см. изображение ниже)?

      7051cf53-d6c6-4af7-953b-22163489669a-image.png

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

      StoneWeaverS 1 ответ Последний ответ Ответить Цитировать 0
      • StoneWeaverS
        StoneWeaver administrators @Sergey99
        отредактировано

        @Sergey99 привет, не совсем понимаю твой вопрос. Дамп памяти - это всегда байты, снятые с определенного региона памяти, или же со всего адресного пространства памяти.

        S 1 ответ Последний ответ Ответить Цитировать 0
        • S
          Sergey99 @StoneWeaver
          отредактировано Sergey99

          @StoneWeaver вот если прочитать байты со всего виртуального адресного пространства процесса, это будет называться сохранением состояния или снимка программы? Если да, то получается если я запишу обратно все эти байты в память процесса это будет называться восстановлением состояния.

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

          1 ответ Последний ответ Ответить Цитировать 0
          • StoneWeaverS
            StoneWeaver administrators
            отредактировано

            @Sergey99 В общем случае да, но ты учти, что после перезапуска программы велика вероятность, что восстановление из предыдущего сохранённого состояния не сработает.

            1 ответ Последний ответ Ответить Цитировать 0
            • Partizan1078P
              Partizan1078
              отредактировано

              Это что имеется ввиду? Это как у артмани. Есть функция сохранения процесса. Если да то это не дамп.
              f86e7eeb-4f0e-421a-8489-4e10fc599647-dfgdfg456456dfd3456.png

              1 ответ Последний ответ Ответить Цитировать 0
              • Первое сообщение
                Последнее сообщение