Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Гайд BloodStrike — Разбор Messiah Engine и базовый Aimbot

Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
295
Реакции
7
Народ, решил накидать небольшой гайд по внутренностям BloodStrike. Движок у них — NetEase Messiah, и поначалу он может вынести мозг своей архитектурой указателей, особенно если привык к классике. Для тех, кто хочет поковыряться во внутреннем аимботе, это будет неплохой отправной точкой.

База и иерархия
Все начинается с модуля, тут стандартно:
Код:
Expand Collapse Copy
uintptr_t base = (uintptr_t)GetModuleHandleA(NULL);
Messiah плотно использует вложенные указатели для доступа к локальному игроку и камере. Ориентируйтесь на эти смещения:
  1. ClientEngine: base + 0x65F7AD0
  2. IGameplay: ClientEngine + 0x58
  3. ClientPlayer: IGameplay + 0x58
  4. Camera: ClientPlayer + 0x238
  5. LocalActor: ClientPlayer + 0x288

Работа со списком сущностей
EntityList — это кольцевой связный список. Идете от головы, пока не упретесь в нее снова.
Код:
Expand Collapse Copy
EntityList Head: *(uintptr_t*)(base + 0x6E4D0D8) + 0x8

Трансформация костей
Тут главное не запутаться: ворлд-спейс кости напрямую не хранятся. Есть относительная матрица костей и Actor Transform. Их нужно перемножать, иначе на выходе будет каша. Логика для Messiah:
Код:
Expand Collapse Copy
static void MessiahMatrixAdd(const XMFLOAT3X4& bonemat, const XMFLOAT3X4& pos, Vector3& out) {
    out.x = (pos._11 * bonemat._32) + (pos._14 * bonemat._33) + (pos._23 * bonemat._34) + pos._32;
    out.y = (pos._12 * bonemat._32) + (pos._21 * bonemat._33) + (pos._24 * bonemat._34) + pos._33;
    out.z = (pos._13 * bonemat._32) + (pos._22 * bonemat._33) + (pos._31 * bonemat._34) + pos._34;
}

Особенности реализации аимбота
Silent Aim тут требует работы с углами камеры (Camera + 0x110) и FOV (Camera + 0x338). Самый простой путь для теста — MouseEvent. Логика элементарная: итерируем сущности, фильтруем по маске (Players == 2), берем 7-ю кость (шея/голова), прогоняем через WorldToScreen и при попадании в FOV сдвигаем курсор.

- Bone Pointer Array: ActorInstance + 0x278 -> +0x18 -> +0x40 -> +0x18 -> +0x90 -> +0x8
- Матрица вида находится в области Camera + 0x40

Надеюсь, кому-то сэкономит время при реверсе. Кто уже пробовал цепляться к этой версии Messiah, какие нюансы по античиту словили?
 
Назад
Сверху Снизу