1 (изменено: T1ran, 2021-04-15 21:09:05)

Тема: AHK: Чтение памяти

Здравствуйте друзья! У меня возникли проблемы с чтением памяти, а именно с одной строчкой:

duck: = ReadMemory(offset_1 + offset_2 + (i * 0x10) & 0xFFF, PID, ProcessHandle)

Проблема заключается в том что не работает -

& 0xFFF

Вот функция чтения памяти которую я использую:

ProcessHandle: = DllCall("OpenProcess", "int", 2035711, "char", 0, "UInt", PID, "UInt")

а также:

ReadMemory(MADDRESS, PID = 0, ProcessHandle = -1)
{
VarSetCapacity(MVALUE, 4.0)
DllCall("ReadProcessMemory", "UInt", ProcessHandle, "UInt", MADDRESS, "Str", MVALUE, "UInt", 4, "UInt *", 0)
Loop 4
result + = *(& MVALUE + A_Index-1) << 8 *(A_Index-1)
SetFormat, Integer, D
return, result
}

Подскажите пожалуйста как правильно оформить.

2

Re: AHK: Чтение памяти

T1ran, языком конференции является русский. Исправьте!

3 (изменено: T1ran, 2021-04-15 21:10:24)

Re: AHK: Чтение памяти

ypppu
Спасибо, исправил тему

4 (изменено: teadrinker, 2021-04-16 02:22:30)

Re: AHK: Чтение памяти

T1ran пишет:

Подскажите пожалуйста как правильно оформить.

T1ran, зависит от того, какой результат вы хотите получить. Код, который вы используете, выглядит устаревшим и частично некорректным. Если хотите прочитать значение, равное 4 байтам, такой код должен сработать:

ReadMemory(addr, PID)
{
   hProcess := DllCall("OpenProcess", "UInt", PROCESS_VM_READ := 0x10, "UInt", false, "UInt", PID, "Ptr")
   DllCall("ReadProcessMemory", "Ptr", hProcess, "Ptr", addr, "UIntP", value, "Ptr", 4, "PtrP", read)
   DllCall("CloseHandle", "Ptr", hProcess)
   Return value
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder