Исходник Nemesis double-tap shift (full reversed)

Начинающий
Статус
Оффлайн
Регистрация
20 Янв 2018
Сообщения
574
Реакции[?]
397
Поинты[?]
62K
говорю сразу, здесь фулл код только самого шифта, саму систему эксплоитов и прочую хуйню я не реверсил
было сделано наспор для линея :roflanEbalo:

1651898407618.png

C++:
#pragma once

void WriteUsercmd(bf_write* buf, CUserCmd* in, CUserCmd* out)
{
    using WriteUserCmd_t = void(__fastcall*)(void*, CUserCmd*, CUserCmd*);
    static auto Fn = (WriteUserCmd_t)csgo->Utils.FindPatternIDA(GetModuleHandleA(g_Modules[fnva1(hs::client_dll.s().c_str())]().c_str()),
        hs::write_user_cmd.s().c_str());

    __asm
    {
        mov     ecx, buf
        mov     edx, in
        push    out
        call    Fn
        add     esp, 4
    }
}

bool ShiftCmd(int* new_commands, int* backup_commands, void* ecx, int slot, bf_write* buf, int unk, bool real_cmd) {
    static auto original_fn = g_pClientHook->GetOriginal <WriteUsercmdDeltaToBufferFn>(g_HookIndices[fnva1(hs::Hooked_WriteUsercmdDeltaToBuffer.s().c_str())]);

    auto new_from = -1;
    auto shift_amount = csgo->shift_amount;

    csgo->shift_amount = 0;

    auto commands = *new_commands;
    auto shift_commands = std::clamp(commands + shift_amount, 1, 62);
    *new_commands = shift_commands;
    *backup_commands = 0;

    auto next_cmd_nr = csgo->client_state->iChokedCommands + csgo->client_state->nLastOutgoingCommand + 1;
    auto new_to = next_cmd_nr - commands + 1;
    if (new_to <= next_cmd_nr) {
        while (original_fn(ecx, slot, buf, new_from, new_to, true)) {
            new_from = new_to++;

            if (new_to > next_cmd_nr)
                goto next_cmd;
        }
        return false;
    }
next_cmd:
    *(int*)((uintptr_t)interfaces.prediction + 0x1C) = 0;
    *(int*)((uintptr_t)interfaces.prediction + 0xC) = -1;

    auto fake_cmd = interfaces.input->GetUserCmd(slot, new_from);
    if (!fake_cmd)
        return true;

    CUserCmd to_cmd;
    CUserCmd from_cmd;

    from_cmd = *fake_cmd;
    to_cmd = from_cmd;

    ++to_cmd.command_number;

    if (real_cmd) {
        int iterator = 0;

        do
        {
            interfaces.prediction->Update(
                csgo->client_state->iDeltaTick, csgo->client_state->iDeltaTick > 0,
                csgo->client_state->nLastCommandAck,
                csgo->client_state->nLastOutgoingCommand + csgo->client_state->iChokedCommands);

            to_cmd.buttons &= ~0xFFBEFFF9;

            auto new_cmd = interfaces.input->GetUserCmd(to_cmd.command_number);
            auto verified_cmd = interfaces.input->GetVerifiedUserCmd(to_cmd.command_number);

            std::memcpy(new_cmd, &to_cmd, sizeof(CUserCmd));
            std::memcpy(&verified_cmd->m_cmd, &to_cmd, sizeof(CUserCmd));
            verified_cmd->m_crc = new_cmd->GetChecksum();
            WriteUsercmd(buf, &to_cmd, &from_cmd);

            ++iterator;
            if (iterator >= shift_amount) {
                auto& out = csgo->packets.emplace_back();

                out.is_outgoing = true;
                out.is_used = false;
                out.cmd_number = csgo->client_state->nLastOutgoingCommand + csgo->client_state->iChokedCommands + 1;
                out.previous_command_number = 0;
            }
            else
            {
                auto net_chan = csgo->client_state->pNetChannel;
                if (net_chan) {
                    ++net_chan->iOutSequenceNr;
                    ++net_chan->iChokedPackets;
                }
                ++csgo->client_state->iChokedCommands;
            }
     
            from_cmd = to_cmd;
            ++to_cmd.command_number;
             
        } while (iterator < shift_amount);
    }
    else {
        to_cmd.tick_count = INT_MAX;
        do {
            WriteUsercmd(buf, &to_cmd, &from_cmd);

            ++to_cmd.command_number;
            shift_amount--;
        } while (shift_amount > 0);
    }
}

bool __fastcall Hooked_WriteUsercmdDeltaToBuffer(void* ecx, void*, int slot, bf_write* buf, int from, int to, bool isnewcommand)
{
    static auto original_fn = g_pClientHook->GetOriginal <WriteUsercmdDeltaToBufferFn>(g_HookIndices[fnva1(hs::Hooked_WriteUsercmdDeltaToBuffer.s().c_str())]);

    if (!csgo->local
        || !csgo->is_connected
        || !csgo->is_local_alive
        || csgo->game_rules->IsFreezeTime()
        || csgo->local->HasGunGameImmunity()
        || csgo->local->GetFlags() & FL_FROZEN)
        return original_fn(ecx, slot, buf, from, to, isnewcommand);

    if (csgo->need_to_recharge || !csgo->shift_amount)
        return original_fn(ecx, slot, buf, from, to, isnewcommand);

    if (from != -1)
        return true;

    uintptr_t frame_ptr = 0;
    __asm mov frame_ptr, ebp;

    auto backup_commands = reinterpret_cast <int*> (frame_ptr + 0xFD8);
    auto new_commands = reinterpret_cast <int*> (frame_ptr + 0xFDC);

    return ShiftCmd(new_commands, backup_commands, ecx, slot, buf, -1, !csgo->break_lc);
}

из плюсов разве что хороший мувмент и не нужно мануалом нихуя фиксить
но есть способы сделать эксплоиты куда лучше.....
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
18 Мар 2022
Сообщения
32
Реакции[?]
2
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
говорю сразу, здесь фулл код только самого шифта, саму систему эксплоитов и прочую хуйню я не реверсил
было сделано наспор для линея :roflanEbalo:


C++:
#pragma once

void WriteUsercmd(bf_write* buf, CUserCmd* in, CUserCmd* out)
{
    using WriteUserCmd_t = void(__fastcall*)(void*, CUserCmd*, CUserCmd*);
    static auto Fn = (WriteUserCmd_t)csgo->Utils.FindPatternIDA(GetModuleHandleA(g_Modules[fnva1(hs::client_dll.s().c_str())]().c_str()),
        hs::write_user_cmd.s().c_str());

    __asm
    {
        mov     ecx, buf
        mov     edx, in
        push    out
        call    Fn
        add     esp, 4
    }
}

bool ShiftCmd(int* new_commands, int* backup_commands, void* ecx, int slot, bf_write* buf, int unk, bool real_cmd) {
    static auto original_fn = g_pClientHook->GetOriginal <WriteUsercmdDeltaToBufferFn>(g_HookIndices[fnva1(hs::Hooked_WriteUsercmdDeltaToBuffer.s().c_str())]);

    auto new_from = -1;
    auto shift_amount = csgo->shift_amount;

    csgo->shift_amount = 0;

    auto commands = *new_commands;
    auto shift_commands = std::clamp(commands + shift_amount, 1, 62);
    *new_commands = shift_commands;
    *backup_commands = 0;

    auto next_cmd_nr = csgo->client_state->iChokedCommands + csgo->client_state->nLastOutgoingCommand + 1;
    auto new_to = next_cmd_nr - commands + 1;
    if (new_to <= next_cmd_nr) {
        while (original_fn(ecx, slot, buf, new_from, new_to, true)) {
            new_from = new_to++;

            if (new_to > next_cmd_nr)
                goto next_cmd;
        }
        return false;
    }
next_cmd:
    *(int*)((uintptr_t)interfaces.prediction + 0x1C) = 0;
    *(int*)((uintptr_t)interfaces.prediction + 0xC) = -1;

    auto fake_cmd = interfaces.input->GetUserCmd(slot, new_from);
    if (!fake_cmd)
        return true;

    CUserCmd to_cmd;
    CUserCmd from_cmd;

    from_cmd = *fake_cmd;
    to_cmd = from_cmd;

    ++to_cmd.command_number;

    if (real_cmd) {
        int iterator = 0;

        do
        {
            interfaces.prediction->Update(
                csgo->client_state->iDeltaTick, csgo->client_state->iDeltaTick > 0,
                csgo->client_state->nLastCommandAck,
                csgo->client_state->nLastOutgoingCommand + csgo->client_state->iChokedCommands);

            to_cmd.buttons &= ~0xFFBEFFF9;

            auto new_cmd = interfaces.input->GetUserCmd(to_cmd.command_number);
            auto verified_cmd = interfaces.input->GetVerifiedUserCmd(to_cmd.command_number);

            std::memcpy(new_cmd, &to_cmd, sizeof(CUserCmd));
            std::memcpy(&verified_cmd->m_cmd, &to_cmd, sizeof(CUserCmd));
            verified_cmd->m_crc = new_cmd->GetChecksum();
            WriteUsercmd(buf, &to_cmd, &from_cmd);

            ++iterator;
            if (iterator >= shift_amount) {
                auto& out = csgo->packets.emplace_back();

                out.is_outgoing = true;
                out.is_used = false;
                out.cmd_number = csgo->client_state->nLastOutgoingCommand + csgo->client_state->iChokedCommands + 1;
                out.previous_command_number = 0;
            }
            else
            {
                auto net_chan = csgo->client_state->pNetChannel;
                if (net_chan) {
                    ++net_chan->iOutSequenceNr;
                    ++net_chan->iChokedPackets;
                }
                ++csgo->client_state->iChokedCommands;
            }
     
            from_cmd = to_cmd;
            ++to_cmd.command_number;
             
        } while (iterator < shift_amount);
    }
    else {
        to_cmd.tick_count = INT_MAX;
        do {
            WriteUsercmd(buf, &to_cmd, &from_cmd);

            ++to_cmd.command_number;
            shift_amount--;
        } while (shift_amount > 0);
    }
}

bool __fastcall Hooked_WriteUsercmdDeltaToBuffer(void* ecx, void*, int slot, bf_write* buf, int from, int to, bool isnewcommand)
{
    static auto original_fn = g_pClientHook->GetOriginal <WriteUsercmdDeltaToBufferFn>(g_HookIndices[fnva1(hs::Hooked_WriteUsercmdDeltaToBuffer.s().c_str())]);

    if (!csgo->local
        || !csgo->is_connected
        || !csgo->is_local_alive
        || csgo->game_rules->IsFreezeTime()
        || csgo->local->HasGunGameImmunity()
        || csgo->local->GetFlags() & FL_FROZEN)
        return original_fn(ecx, slot, buf, from, to, isnewcommand);

    if (csgo->need_to_recharge || !csgo->shift_amount)
        return original_fn(ecx, slot, buf, from, to, isnewcommand);

    if (from != -1)
        return true;

    uintptr_t frame_ptr = 0;
    __asm mov frame_ptr, ebp;

    auto backup_commands = reinterpret_cast <int*> (frame_ptr + 0xFD8);
    auto new_commands = reinterpret_cast <int*> (frame_ptr + 0xFDC);

    return ShiftCmd(new_commands, backup_commands, ecx, slot, buf, -1, !csgo->break_lc);
}

из плюсов разве что хороший мувмент и не нужно мануалом нихуя фиксить
но есть способы сделать эксплоиты куда лучше.....
ооо вкусное завез
 
Забаненный
Статус
Оффлайн
Регистрация
3 Май 2022
Сообщения
34
Реакции[?]
10
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
говорю сразу, здесь фулл код только самого шифта, саму систему эксплоитов и прочую хуйню я не реверсил
было сделано наспор для линея :roflanEbalo:


C++:
#pragma once

void WriteUsercmd(bf_write* buf, CUserCmd* in, CUserCmd* out)
{
    using WriteUserCmd_t = void(__fastcall*)(void*, CUserCmd*, CUserCmd*);
    static auto Fn = (WriteUserCmd_t)csgo->Utils.FindPatternIDA(GetModuleHandleA(g_Modules[fnva1(hs::client_dll.s().c_str())]().c_str()),
        hs::write_user_cmd.s().c_str());

    __asm
    {
        mov     ecx, buf
        mov     edx, in
        push    out
        call    Fn
        add     esp, 4
    }
}

bool ShiftCmd(int* new_commands, int* backup_commands, void* ecx, int slot, bf_write* buf, int unk, bool real_cmd) {
    static auto original_fn = g_pClientHook->GetOriginal <WriteUsercmdDeltaToBufferFn>(g_HookIndices[fnva1(hs::Hooked_WriteUsercmdDeltaToBuffer.s().c_str())]);

    auto new_from = -1;
    auto shift_amount = csgo->shift_amount;

    csgo->shift_amount = 0;

    auto commands = *new_commands;
    auto shift_commands = std::clamp(commands + shift_amount, 1, 62);
    *new_commands = shift_commands;
    *backup_commands = 0;

    auto next_cmd_nr = csgo->client_state->iChokedCommands + csgo->client_state->nLastOutgoingCommand + 1;
    auto new_to = next_cmd_nr - commands + 1;
    if (new_to <= next_cmd_nr) {
        while (original_fn(ecx, slot, buf, new_from, new_to, true)) {
            new_from = new_to++;

            if (new_to > next_cmd_nr)
                goto next_cmd;
        }
        return false;
    }
next_cmd:
    *(int*)((uintptr_t)interfaces.prediction + 0x1C) = 0;
    *(int*)((uintptr_t)interfaces.prediction + 0xC) = -1;

    auto fake_cmd = interfaces.input->GetUserCmd(slot, new_from);
    if (!fake_cmd)
        return true;

    CUserCmd to_cmd;
    CUserCmd from_cmd;

    from_cmd = *fake_cmd;
    to_cmd = from_cmd;

    ++to_cmd.command_number;

    if (real_cmd) {
        int iterator = 0;

        do
        {
            interfaces.prediction->Update(
                csgo->client_state->iDeltaTick, csgo->client_state->iDeltaTick > 0,
                csgo->client_state->nLastCommandAck,
                csgo->client_state->nLastOutgoingCommand + csgo->client_state->iChokedCommands);

            to_cmd.buttons &= ~0xFFBEFFF9;

            auto new_cmd = interfaces.input->GetUserCmd(to_cmd.command_number);
            auto verified_cmd = interfaces.input->GetVerifiedUserCmd(to_cmd.command_number);

            std::memcpy(new_cmd, &to_cmd, sizeof(CUserCmd));
            std::memcpy(&verified_cmd->m_cmd, &to_cmd, sizeof(CUserCmd));
            verified_cmd->m_crc = new_cmd->GetChecksum();
            WriteUsercmd(buf, &to_cmd, &from_cmd);

            ++iterator;
            if (iterator >= shift_amount) {
                auto& out = csgo->packets.emplace_back();

                out.is_outgoing = true;
                out.is_used = false;
                out.cmd_number = csgo->client_state->nLastOutgoingCommand + csgo->client_state->iChokedCommands + 1;
                out.previous_command_number = 0;
            }
            else
            {
                auto net_chan = csgo->client_state->pNetChannel;
                if (net_chan) {
                    ++net_chan->iOutSequenceNr;
                    ++net_chan->iChokedPackets;
                }
                ++csgo->client_state->iChokedCommands;
            }
    
            from_cmd = to_cmd;
            ++to_cmd.command_number;
            
        } while (iterator < shift_amount);
    }
    else {
        to_cmd.tick_count = INT_MAX;
        do {
            WriteUsercmd(buf, &to_cmd, &from_cmd);

            ++to_cmd.command_number;
            shift_amount--;
        } while (shift_amount > 0);
    }
}

bool __fastcall Hooked_WriteUsercmdDeltaToBuffer(void* ecx, void*, int slot, bf_write* buf, int from, int to, bool isnewcommand)
{
    static auto original_fn = g_pClientHook->GetOriginal <WriteUsercmdDeltaToBufferFn>(g_HookIndices[fnva1(hs::Hooked_WriteUsercmdDeltaToBuffer.s().c_str())]);

    if (!csgo->local
        || !csgo->is_connected
        || !csgo->is_local_alive
        || csgo->game_rules->IsFreezeTime()
        || csgo->local->HasGunGameImmunity()
        || csgo->local->GetFlags() & FL_FROZEN)
        return original_fn(ecx, slot, buf, from, to, isnewcommand);

    if (csgo->need_to_recharge || !csgo->shift_amount)
        return original_fn(ecx, slot, buf, from, to, isnewcommand);

    if (from != -1)
        return true;

    uintptr_t frame_ptr = 0;
    __asm mov frame_ptr, ebp;

    auto backup_commands = reinterpret_cast <int*> (frame_ptr + 0xFD8);
    auto new_commands = reinterpret_cast <int*> (frame_ptr + 0xFDC);

    return ShiftCmd(new_commands, backup_commands, ecx, slot, buf, -1, !csgo->break_lc);
}

из плюсов разве что хороший мувмент и не нужно мануалом нихуя фиксить
но есть способы сделать эксплоиты куда лучше.....
нууу смотряя на этот коддддд то у вас либо реверс not proper либо это уже кодер магмы что то наделал или же платина......
тут нет как минимум половина кода
 
Начинающий
Статус
Оффлайн
Регистрация
20 Янв 2018
Сообщения
574
Реакции[?]
397
Поинты[?]
62K
нууу смотряя на этот коддддд то у вас либо реверс not proper либо это уже кодер магмы что то наделал или же платина......
тут нет как минимум половина кода
а нахуй тебе нужен мувфикс и прочая параша?
я оставил только нужные вещи (т.е сам шифт, БЕЗ логики эксплоитов самого немезиса), и оно работает как часы
 
Забаненный
Статус
Оффлайн
Регистрация
3 Май 2022
Сообщения
34
Реакции[?]
10
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
а нахуй тебе нужен мувфикс и прочая параша?
я оставил только нужные вещи (т.е сам шифт, БЕЗ логики эксплоитов самого немезиса), и оно работает как часы
да сам твой shift_cmd не полный...
 
Забаненный
Статус
Оффлайн
Регистрация
3 Май 2022
Сообщения
34
Реакции[?]
10
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
20 Янв 2018
Сообщения
574
Реакции[?]
397
Поинты[?]
62K
кто читает тот умрет
Участник
Статус
Оффлайн
Регистрация
29 Июл 2019
Сообщения
696
Реакции[?]
540
Поинты[?]
153K
дак я же сказал что я блять не пиздил всю бесполезную хуйню для логики эксплоитов
я взял сам шифт
а сам шифт ворк на 100%
да это же база прям база основа для говна, кто вообще на write user cmd в 2022 году остался жес
 
Забаненный
Статус
Оффлайн
Регистрация
3 Май 2022
Сообщения
34
Реакции[?]
10
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
да это же база прям база основа для говна, кто вообще на write user cmd в 2022 году остался жес
нууу во первых это правильный write_user_cmd_delta_to_buffer для отправки фейковых и реальных команд а во вторых чем тебе супримаси не угадил? ^cccccc
 
Забаненный
Статус
Оффлайн
Регистрация
3 Май 2022
Сообщения
34
Реакции[?]
10
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
3 Май 2022
Сообщения
34
Реакции[?]
10
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу