Вопрос У меня не перекрашивается иллюзия

https://qweme.dev
Пользователь
Статус
Оффлайн
Регистрация
25 Май 2022
Сообщения
165
Реакции[?]
87
Поинты[?]
21K
То есть CEntityIdentity (CBaseEntity) у тебя класс. И ты прибавляешь класс + нетвар.

Или что эт у тебя. Блять, еще бы понимать.

Это переменная у тебя? типо void* CBaseEntity\CEntityIdentity?
Или же это class CEntityIdentity?

Если же ты итерируешь ентити, то как?

Есть как минимум 3 варианта итерации. И один из них реально возвращает CEntityIdentity. Тогда я не понял, почему у тебя портрет перекрасился.
У меня очень много вопросов к твоему коду. И так мало ответов.
+++ самое очевидное это просто не валидная BaseEntity но тогда как портрет сработал че за пиздец
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
И ты прибавляешь класс + нетвар.
я прибавляю то что получил c uintptr_t ent = *reinterpret_cast<uintptr_t*>(global::g_pGameEntitySystem + 0x210); и ent = *reinterpret_cast<uintptr_t*>(ent + 0x58); и это же передаю в oncolorchanged
 
https://qweme.dev
Пользователь
Статус
Оффлайн
Регистрация
25 Май 2022
Сообщения
165
Реакции[?]
87
Поинты[?]
21K
я прибавляю то что получил c uintptr_t ent = *reinterpret_cast<uintptr_t*>(global::g_pGameEntitySystem + 0x210); и ent = *reinterpret_cast<uintptr_t*>(ent + 0x58); и это же передаю в oncolorchanged
так это не то лол, или то я уже окончательно запутался
 
Последнее редактирование:
🤡
Пользователь
Статус
Оффлайн
Регистрация
28 Апр 2014
Сообщения
127
Реакции[?]
163
Поинты[?]
21K
я прибавляю то что получил c uintptr_t ent = *reinterpret_cast<uintptr_t*>(global::g_pGameEntitySystem + 0x210); и ent = *reinterpret_cast<uintptr_t*>(ent + 0x58); и это же передаю в oncolorchanged
Если я правильно понял, ты делаешь хуету.

Ты получаешь: class CEntityIdentity

И передаешь CEntityIdentity* m_pNext; // 0x58, то есть следующий ентити?
 
https://qweme.dev
Пользователь
Статус
Оффлайн
Регистрация
25 Май 2022
Сообщения
165
Реакции[?]
87
Поинты[?]
21K
Если я правильно понял, ты делаешь хуету.

Ты получаешь: class CEntityIdentity

И передаешь CEntityIdentity* m_pNext; // 0x58, то есть следующий ентити?
я кажись понял
Его код:
global::g_pOnColorChanged = reinterpret_cast<oOnColorChanged>(util::FPat("client.dll", "83 F9 01 0F 85 ? ? ? ? 48 8B C4 55 48 8D 68 B8 48 81 EC 40 01 00 00 48 89 58 08 48 8D ? ? ? ? ? 48 89 70 10 48 8D 5C 24 60 48 89 78 18 48 8D ? ? ? ? ? 48 8B ? ? ? ? ? 48 89 44 24 50 48 8D ? ? ? ? ? 48 89 44 24 68 48 8D ? ? ? ? ? 48 89 45 80"));

void SetEntityRenderColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) {
      if (!this->DoesExists()) return;

    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 0) = r;
    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 1) = g;
    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 2) = b;
    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 3) = a;
    global::g_pOnColorChanged(CEntityIdentity);
}
Фикс его кода:
global::g_pOnColorChanged = reinterpret_cast<oOnColorChanged>(util::FPat("client.dll", "83 F9 01 0F 85 ? ? ? ? 48 8B C4 55 48 8D 68 B8 48 81 EC 40 01 00 00 48 89 58 08 48 8D ? ? ? ? ? 48 89 70 10 48 8D 5C 24 60 48 89 78 18 48 8D ? ? ? ? ? 48 8B ? ? ? ? ? 48 89 44 24 50 48 8D ? ? ? ? ? 48 89 44 24 68 48 8D ? ? ? ? ? 48 89 45 80"));

void SetEntityRenderColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) {
      if (!this->DoesExists()) return;

    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 0) = r;
    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 1) = g;
    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 2) = b;
    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 3) = a;
    global::g_pOnColorChanged(*reinterpret_cast<uintptr_t*>(CEntityIdentity));
}
скажу честно увидев бы я такой код я бы выстрелил себе в голову
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
я кажись понял
Его код:
global::g_pOnColorChanged = reinterpret_cast<oOnColorChanged>(util::FPat("client.dll", "83 F9 01 0F 85 ? ? ? ? 48 8B C4 55 48 8D 68 B8 48 81 EC 40 01 00 00 48 89 58 08 48 8D ? ? ? ? ? 48 89 70 10 48 8D 5C 24 60 48 89 78 18 48 8D ? ? ? ? ? 48 8B ? ? ? ? ? 48 89 44 24 50 48 8D ? ? ? ? ? 48 89 44 24 68 48 8D ? ? ? ? ? 48 89 45 80"));

void SetEntityRenderColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) {
      if (!this->DoesExists()) return;

    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 0) = r;
    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 1) = g;
    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 2) = b;
    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 3) = a;
    global::g_pOnColorChanged(CEntityIdentity);
}
Фикс его кода:
global::g_pOnColorChanged = reinterpret_cast<oOnColorChanged>(util::FPat("client.dll", "83 F9 01 0F 85 ? ? ? ? 48 8B C4 55 48 8D 68 B8 48 81 EC 40 01 00 00 48 89 58 08 48 8D ? ? ? ? ? 48 89 70 10 48 8D 5C 24 60 48 89 78 18 48 8D ? ? ? ? ? 48 8B ? ? ? ? ? 48 89 44 24 50 48 8D ? ? ? ? ? 48 89 44 24 68 48 8D ? ? ? ? ? 48 89 45 80"));

void SetEntityRenderColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a) {
      if (!this->DoesExists()) return;

    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 0) = r;
    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 1) = g;
    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 2) = b;
    *reinterpret_cast<unsigned char*>(*reinterpret_cast<uintptr_t*>(CEntityIdentity) + global::offsets::m_clrRender + 3) = a;
    global::g_pOnColorChanged(*reinterpret_cast<uintptr_t*>(CEntityIdentity));
}
скажу честно увидев бы я такой код я бы выстрелил себе в голову
ну да кстати так оно и есть по факту. я чет сначала не заметил что он не дереференсит в конце))
ток конечно не стоит ваще так писать, код "*reinterpret_cast<uintptr_t*>(CEntityIdentity)" дублировать везде.
C++:
auto CBaseEntity = *reinterpret_cast<uintptr_t*>(CEntityIdentity);
*reinterpret_cast<unsigned char*>(CBaseEntity + global::offsets::m_clrRender + 0) = r;
*reinterpret_cast<unsigned char*>(CBaseEntity + global::offsets::m_clrRender + 1) = g;
*reinterpret_cast<unsigned char*>(CBaseEntity + global::offsets::m_clrRender + 2) = b;
*reinterpret_cast<unsigned char*>(CBaseEntity + global::offsets::m_clrRender + 3) = a;
global::g_pOnColorChanged(CBaseEntity);
код с r g b a тоже не надо дублировать ->
C++:
auto CBaseEntity = *reinterpret_cast<uintptr_t*>(CEntityIdentity);
*reinterpret_cast<int*>(CBaseEntity + global::offsets::m_clrRender) = r | (g << 8) | (b << 16) | (a << 24);
global::g_pOnColorChanged(CBaseEntity);
ну и кастить тоже ничего не надо. и КЛАССЫ ебаные пора уже начать юзать
->
C++:
CEntityIdentity_someInstance->GetEntity()->ChangeColor(r, g, b, a);
...
//CBaseEntity::InvokeColorChangedCallback vvv
global::g_pOnColorChanged(this);
//CBaseEntity::ChangeColor vvv
Member<int>(m_clrRender) = r | (g << 8) | (b << 16) | (a << 24);
InvokeColorChangedCallback();
и вообще будь прототип функции правильный, не
typedef __int64(__fastcall* oOnColorChanged)(__int64);
а
typedef __int64(__fastcall* oOnColorChanged)(C_BaseEntity*);
такой хуйни бы не случилось. тебе бы(к морфлингу обращаюсь) не дало айдентити засунуть как CBaseEntity* в аргумент.
типы в С++ нужны чтобы как раз такой хуйни не происходило. юзая везде некий абстрактный __int64 ты получишь пизды в виде багов.
в общем реальный "фикс" его кода это начать использовать классы.
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
коллбеки кста не все 1 аргумент. они бывают до 4 аргументов
кому интересно пореверсите в этом регионе мне пока лень xD
networksystem.dll -> 0f b6 4d ?? 85 c9 74 ?? 83 e9 ?? 74
1657448333400.png
 
Shitcode lord 💩
Забаненный
Статус
Оффлайн
Регистрация
25 Ноя 2020
Сообщения
272
Реакции[?]
84
Поинты[?]
8K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Че за пиздец тут происходит? Тоже вкину свои 5 копеек.

Как найти:
C-like:
xref: "OnColorChanged"

.text:0000000180292EAF                 lea     rax, aOncolorchanged ; "OnColorChanged"
.text:0000000180292EB6                 mov     [rbp+40h+var_C0], rax
.text:0000000180292EBA                 lea     rax, OnColorChanged <<
.text:0000000180292EC1                 mov     [rbp+40h+var_A8], rax
.text:0000000180292EC5                 lea     rax, aOnrenderattrib ; "OnRenderAttributesChanged"
Как юзать:
class CBaseEntity
C++:
    void ChangeModelColor(int r, int g, int b, int a = 255) {
        uintptr_t Base = ((uintptr_t)this + Netvars::Offsets.m_clrRender);

        *(BYTE*)(Base + 0) = static_cast<BYTE>(r);
        *(BYTE*)(Base + 1) = static_cast<BYTE>(g);
        *(BYTE*)(Base + 2) = static_cast<BYTE>(b);
        *(BYTE*)(Base + 3) = static_cast<BYTE>(a);

        NVFunc.OnColorChanged(this);
    }
Тайпдеф:
typedef void (*OnColorChangedFn)(CBaseEntity*);

Всё это найти -- 10 минут времени. Если у ОПа это столько трудностей вызывает, наверное, ему не стоит заниматься читами.
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
Че за пиздец тут происходит? Тоже вкину свои 5 копеек.

Как найти:
C-like:
xref: "OnColorChanged"

.text:0000000180292EAF                 lea     rax, aOncolorchanged ; "OnColorChanged"
.text:0000000180292EB6                 mov     [rbp+40h+var_C0], rax
.text:0000000180292EBA                 lea     rax, OnColorChanged <<
.text:0000000180292EC1                 mov     [rbp+40h+var_A8], rax
.text:0000000180292EC5                 lea     rax, aOnrenderattrib ; "OnRenderAttributesChanged"
Как юзать:
class CBaseEntity
C++:
    void ChangeModelColor(int r, int g, int b, int a = 255) {
        uintptr_t Base = ((uintptr_t)this + Netvars::Offsets.m_clrRender);

        *(BYTE*)(Base + 0) = static_cast<BYTE>(r);
        *(BYTE*)(Base + 1) = static_cast<BYTE>(g);
        *(BYTE*)(Base + 2) = static_cast<BYTE>(b);
        *(BYTE*)(Base + 3) = static_cast<BYTE>(a);

        NVFunc.OnColorChanged(this);
    }
Тайпдеф:
typedef void (*OnColorChangedFn)(CBaseEntity*);

Всё это найти -- 10 минут времени. Если у ОПа это столько трудностей вызывает, наверное, ему не стоит заниматься читами.
да я так понимаю он все правильно нашел, просто он говнокодит отсюда и баги и нихуя не работает.
 
Сверху Снизу