Вопрос Не получается использовать EntityList

Zodiak 1love
Пользователь
Статус
Оффлайн
Регистрация
19 Авг 2019
Сообщения
277
Реакции[?]
35
Поинты[?]
0
Весь UC(noad), yougame обыскал, и никак не могу пройтись по списку entity, как по индексу получать entity?
C++:
for (int i = 0; i < 64; i++) {
      uintptr_t Entity =
          GAME.client_dll + cs2_dumper::offsets::client_dll::dwEntityList;
      uintptr_t listEntity = Entity + ((8 * (i & 0x7FFF) >> 9) + 16);
      if (listEntity == 0)
        continue;
      uintptr_t entityController = listEntity + (120) * (i & 0x1FF);
      if (entityController == 0)
        continue;
      uintptr_t entityControllerPawn =
          entityController +
          cs2_dumper::schemas::client_dll::CCSPlayerController::m_hPlayerPawn;
      if (entityControllerPawn == 0)
        continue;
      listEntity = Entity + (0x8 * ((entityControllerPawn & 0x7FFF) >> 9) + 16);
      if (listEntity == 0)
        continue;
      uintptr_t entityPawn =
          listEntity + (120) * (entityControllerPawn & 0x1FF);
      if (entityPawn == 0)
        continue;
      int playerHealth =
          *(int *)entityPawn +
          cs2_dumper::schemas::client_dll::C_BaseEntity::m_iHealth;
      printf("Health: %d\n", playerHealth);
    }
Это крашит
 
Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,469
Реакции[?]
679
Поинты[?]
39K
А где эти штуки ?
Memory::Read<uintptr_t>

C++:
uintptr_t getPawn(uintptr_t EntityList, int Index) {
    uintptr_t ListEntity = Memory::Read<uintptr_t>(EntityList + (8 * (Index & 0x7FFF) >> 9) + 16);
    if (!ListEntity) return 0;

    uintptr_t EntityController = Memory::Read<uintptr_t>(ListEntity + 120 * (Index & 0x1FF));
    if (!EntityController) return 0;

    uintptr_t EntityControllerPawn = Memory::Read<uintptr_t>(EntityController + NetVar::m_hPawn);
    if (!EntityControllerPawn) return 0;

    uintptr_t ListEntity2 = Memory::Read<uintptr_t>(EntityList + 0x8 * ((EntityControllerPawn & 0x7FFF) >> 9) + 16);

    uintptr_t EntityPawn = Memory::Read<uintptr_t>(ListEntity2 + 120 * (EntityControllerPawn & 0x1FF));
    if (!EntityPawn) return 0;

    return EntityPawn;
}
 
Zodiak 1love
Пользователь
Статус
Оффлайн
Регистрация
19 Авг 2019
Сообщения
277
Реакции[?]
35
Поинты[?]
0
А где эти штуки ?
Memory::Read<uintptr_t>

C++:
uintptr_t getPawn(uintptr_t EntityList, int Index) {
    uintptr_t ListEntity = Memory::Read<uintptr_t>(EntityList + (8 * (Index & 0x7FFF) >> 9) + 16);
    if (!ListEntity) return 0;

    uintptr_t EntityController = Memory::Read<uintptr_t>(ListEntity + 120 * (Index & 0x1FF));
    if (!EntityController) return 0;

    uintptr_t EntityControllerPawn = Memory::Read<uintptr_t>(EntityController + NetVar::m_hPawn);
    if (!EntityControllerPawn) return 0;

    uintptr_t ListEntity2 = Memory::Read<uintptr_t>(EntityList + 0x8 * ((EntityControllerPawn & 0x7FFF) >> 9) + 16);

    uintptr_t EntityPawn = Memory::Read<uintptr_t>(ListEntity2 + 120 * (EntityControllerPawn & 0x1FF));
    if (!EntityPawn) return 0;

    return EntityPawn;
}
Internal софт
 
Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,469
Реакции[?]
679
Поинты[?]
39K
Я конечно не спец по этерналам, но сам метод получения entity у тебя либо экстернала, либо он общий, но ты не читаешь память, ты просто складываешь адреса друг с другом, а не получаешь их содержимое
 
Zodiak 1love
Пользователь
Статус
Оффлайн
Регистрация
19 Авг 2019
Сообщения
277
Реакции[?]
35
Поинты[?]
0
Я конечно не спец по этерналам, но сам метод получения entity у тебя либо экстернала, либо он общий, но ты не читаешь память, ты просто складываешь адреса друг с другом, а не получаешь их содержимое
Тогда бы не крашило, а оно крашит
 
Забаненный
Статус
Оффлайн
Регистрация
7 Фев 2025
Сообщения
6
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
7 Фев 2025
Сообщения
6
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Zodiak 1love
Пользователь
Статус
Оффлайн
Регистрация
19 Авг 2019
Сообщения
277
Реакции[?]
35
Поинты[?]
0
На самом деле я Zodiak
Read Only
Статус
Оффлайн
Регистрация
22 Дек 2020
Сообщения
1,104
Реакции[?]
200
Поинты[?]
98K
Так я могу прочитать память обычным dereference, а не функцией
ну так читай, ты не читаешь пацан
for (int i = 0; i < 64; i++) { uintptr_t Entity = GAME.client_dll + cs2_dumper::offsets::client_dll::dwEntityList; uintptr_t listEntity = Entity + ((8 * (i & 0x7FFF) >> 9) + 16); if (listEntity == 0) continue; uintptr_t entityController = listEntity + (120) * (i & 0x1FF); if (entityController == 0) continue; uintptr_t entityControllerPawn = entityController + cs2_dumper::schemas::client_dll::CCSPlayerController::m_hPlayerPawn; if (entityControllerPawn == 0) continue; listEntity = Entity + (0x8 * ((entityControllerPawn & 0x7FFF) >> 9) + 16); if (listEntity == 0) continue; uintptr_t entityPawn = listEntity + (120) * (entityControllerPawn & 0x1FF); if (entityPawn == 0) continue; int playerHealth = *(int *)entityPawn + cs2_dumper::schemas::client_dll::C_BaseEntity::m_iHealth; printf("Health: %d\n", playerHealth); }
у тебя блять один дереференс и то ты блять дереференсишь поинтер на павн как ИНТ ты че
 
Zodiak 1love
Пользователь
Статус
Оффлайн
Регистрация
19 Авг 2019
Сообщения
277
Реакции[?]
35
Поинты[?]
0
На самом деле я Zodiak
Read Only
Статус
Оффлайн
Регистрация
22 Дек 2020
Сообщения
1,104
Реакции[?]
200
Поинты[?]
98K
Сверху Снизу