AHK: Автообновление оффсетов для ahk читов

Решил сделать свое автообновление оффсетов для ahk читов через сканирование памяти. Работает на любой windows.
Что для этого нужно:

  1. Basic memory class by RHCP. Скачать можно отсюда. Т.к. не вижу особого смысла использовать ReadProcessMemory напрямую. То значит, будем использовать данный класс.
  2. Собственно, пишем чит:
_classmemory.setSeDebugPrivilege()

setbatchlines -1
lou := new _ClassMemory("ahk_exe csgo.exe", "", hProcess)
if !IsObject(lou)
{
    if (hProcess = "")
        msgbox OpenProcess failed. If the target process has admin rights, then the script also needs to be ran as admin. Consult A_LastError for more information.
    else msgbox The program isn't running (not found) or you passed an incorrect program identifier parameter.
    msgbox A_LastError %A_LastError%
    ExitApp
}

base := lou.getModuleBaseAddress("client.dll")
Pattern := [0x8D, 0x34, 0x85, "??", "??", "??", "??", 0x89, 0x15, "??", "??", "??", "??", 0x8B, 0x41, 0x8, 0x8B, 0x48, "??"]

address := lou.modulePatternScan("client.dll", Pattern*)

loc := lou.read(address + 3, "UInt")
var := lou.read(address + 18, "UChar")
dwLocalPlayer := (loc + var) - base

; или dwLocalPlayer := lou.read(address + 3, "UInt") - base + 4
msgbox % dwLocalPlayer ; в десятичной системе

Пояснения:
Класс памяти можно добавлять прямо в ahk скрипт или подключать через #Include.

Необходимые шаблоны можно найти здесь.
Пример:

"name": "dwLocalPlayer",
      "extra": 4,
      "relative": true,
      "module": "client.dll",
      "offsets": [
        3
      ],

Смещения 3, “extra”: 4, нужно указывать, чтобы получить правильный оффсет, пример:

loc := lou.read(address + 3, "UInt") - base + 4

Есть что не получается, можете писать в комменты, постараюсь помочь :smiley:.

3 Likes

Огромное спасибо

1 Like