Поиск по указателю из CE через python

Новичок
Статус
Оффлайн
Регистрация
7 Мар 2023
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Есть найденный указатель в Cheat Engine, как я могу по данным сдвигам найти значение через питон и могу ли вообще ?
Код:
"jvm.dll"+007541C0 +D0 +30 +388 +D0 +150 +4D0 +4C
Пытался сделать по гайдам с инета, столкнулся с проблемой, что скрипт не может достать базовый адрес длл.
 
Начинающий
Статус
Оффлайн
Регистрация
23 Дек 2018
Сообщения
54
Реакции[?]
9
Поинты[?]
1K
Есть найденный указатель в Cheat Engine, как я могу по данным сдвигам найти значение через питон и могу ли вообще ?
Код:
"jvm.dll"+007541C0 +D0 +30 +388 +D0 +150 +4D0 +4C
Пытался сделать по гайдам с инета, столкнулся с проблемой, что скрипт не может достать базовый адрес длл.
 
Начинающий
Статус
Оффлайн
Регистрация
2 Янв 2023
Сообщения
17
Реакции[?]
1
Поинты[?]
0
1. Получить дескриптор модуля jvm.dll
Код:
import ctypes

module_handle = ctypes.windll.kernel32.GetModuleHandleA("jvm.dll")
2. Рассчитать адрес, на который указывает найденный указатель
Код:
offsets = [0x007541C0, 0xD0, 0x30, 0x388, 0xD0, 0x150, 0x4D0, 0x4C]

address = module_handle
for offset in offsets:
address = ctypes.c_void_p(address + offset).value
3. Прочитать значение из памяти
Код:
process_handle = ctypes.windll.kernel32.OpenProcess(0x0010, False, ctypes.windll.kernel32.GetCurrentProcessId())

value = ctypes.c_int()
ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_void_p(address), ctypes.byref(value), ctypes.sizeof(value), None)

ctypes.windll.kernel32.CloseHandle(process_handle)

print(value.value)
 
Начинающий
Статус
Оффлайн
Регистрация
23 Дек 2018
Сообщения
54
Реакции[?]
9
Поинты[?]
1K
1. Получить дескриптор модуля jvm.dll
Код:
import ctypes

module_handle = ctypes.windll.kernel32.GetModuleHandleA("jvm.dll")
2. Рассчитать адрес, на который указывает найденный указатель
Код:
offsets = [0x007541C0, 0xD0, 0x30, 0x388, 0xD0, 0x150, 0x4D0, 0x4C]

address = module_handle
for offset in offsets:
address = ctypes.c_void_p(address + offset).value
3. Прочитать значение из памяти
Код:
process_handle = ctypes.windll.kernel32.OpenProcess(0x0010, False, ctypes.windll.kernel32.GetCurrentProcessId())

value = ctypes.c_int()
ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_void_p(address), ctypes.byref(value), ctypes.sizeof(value), None)

ctypes.windll.kernel32.CloseHandle(process_handle)

print(value.value)
:roflanEbalo::roflanEbalo::roflanEbalo:
 
Сверху Снизу