Задать вопрос
@MrBrainop
Начал изучать html, Python и QT Designer

Как обратиться к адресу памяти?

Привет! Как обратиться к адресу памяти процесса и взаимодействовать с ним? Например как в CheatEngine найти какое-то значение(Value) по адресу памяти и изменять его.
Погуглив нашёл модуль PyMem но не понял/нашёл как его использовать для моей задачи.
  • Вопрос задан
  • 377 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@MrBrainop Автор вопроса
Начал изучать html, Python и QT Designer
Посмотрев и поковыряв исходники я нашёл способ!
import pymem

address = 0xF3D94B8             # Адрес памяти!(Подробнее в конце)
pm = pymem.Pymem("game.exe")    # Название файла процесса(Игры, Программы)

entity = pm.read_int(address)
print(entity)

P.S: Если брать адрес памяти в другой программе например в CheatEngine то изначально он будет выглядеть так 0F000000 измените его на 0xF000000(Добавьте x после 0), тогда будет работать!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@GeneD88
QA
https://pypi.org/project/mem-edit/


import ctypes
    from mem_edit import Process

    magic_number = ctypes.ulong(1234567890)

    pid = Process.get_pid_by_name('magic.exe')
    with Process.open_process(pid) as p:
        addrs = p.search_all_memory(magic_number)

        # We don't want to edit if there's more than one result...
        assert(len(addrs) == 1)

        # We don't actually have to read the value here, but let's do so anyways...
        num_ulong = p.read_memory(addrs[0], ctypes.c_ulong())
        num = num_ulong.value

        p.write_memory(addrs[0], ctypes.c_ulong(num + 1))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы