Lag exploit (anti-predict) для weave su v2

Статус
В этой теме нельзя размещать новые ответы.
Забаненный
Статус
Оффлайн
Регистрация
18 Июн 2020
Сообщения
506
Реакции[?]
90
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пользователь
Статус
Оффлайн
Регистрация
22 Июн 2020
Сообщения
186
Реакции[?]
71
Поинты[?]
43K
Этот метод очень костыльный и могут быть предикшн ерроры.
Но это не мешает аимботу попадать нормально при пике или других ситуациях.
Для этого нужно:
Переделать брик лц таким образом, чтобы он работал как фейклаг
То-есть, как с обычным фейклагом, делается таймер
Пока он не достиг 14 тиков - не отправляем данные (шифтим)
Достигло - отправляем данные на сервер (офаем шифт)
Код:
if (can_dt)
    {
        if (++csgo->shift_timer >= 14)
            csgo->shift_timer = 0;

        csgo->shift_amount = csgo->shift_timer > 0 ? 16 : 0;
    }
Может еще понадобиться нормальный (не с лв) Hooked_WriteUsercmdDeltaToBuffer
Код его будет ниже:
Код:
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 __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->shift_amount)
        return original_fn(ecx, slot, buf, from, to, isnewcommand);

    if (from != -1)
        return true;

    auto p_new_commands = (int*)((DWORD)buf - 0x2C);
    auto p_backup_commands = (int*)((DWORD)buf - 0x30);
    auto new_commands = *p_new_commands;

    auto next_cmd_nr = csgo->client_state->nLastOutgoingCommand + csgo->client_state->iChokedCommands + 1;

    auto total_new_commands = std::clamp(csgo->shift_amount, 0, 16);
    csgo->shift_amount -= total_new_commands;

    from = -1;

    *p_new_commands = total_new_commands;
    *p_backup_commands = 0;

    for (to = next_cmd_nr - new_commands + 1; to <= next_cmd_nr; to++)
    {
        if (!original_fn(ecx, slot, buf, from, to, true))
            return false;

        from = to;
    }

    CUserCmd* last_real_cmd = interfaces.input->GetUserCmd(slot, from);
    CUserCmd from_cmd;

    if (last_real_cmd)
        memcpy(&from_cmd, last_real_cmd, sizeof(CUserCmd));

    CUserCmd to_cmd;
    memcpy(&to_cmd, &from_cmd, sizeof(CUserCmd));

    to_cmd.command_number++;
    to_cmd.tick_count += 200;

    for (int i = new_commands; i <= total_new_commands; i++)
    {
        WriteUsercmd(buf, &to_cmd, &from_cmd);
        memcpy(&from_cmd, &to_cmd, sizeof(CUserCmd));
        to_cmd.command_number++;
        to_cmd.tick_count++;
    }

    return true;
}

Пруф работы: (спасибо Kamazik, ZARG, rod9, emazixs1337, detour , miracl3, lordjustice, @heranox kirbk512 за тесты)
Fuck code hiders
All my homies do self code and leak it on yougame :deilluminati:

P.S.
Почему ставится 16? Поясню.
Методом отладки было выяснено, что в итоге шифтится 14 тиков, а не 16
Потому что в WriteUsercmdDeltaToBuffer комманды создаются от 2 до 16

Код:
  for (int i = new_commands; i <= total_new_commands; i++)
   // new_commands равен 2 (скорее всего из-за того, что происходит чоук на 2 тика)
    {
        WriteUsercmd(buf, &to_cmd, &from_cmd);
        memcpy(&from_cmd, &to_cmd, sizeof(CUserCmd));
        to_cmd.command_number++;
        to_cmd.tick_count++;
    }

    return true;
}
От чего и шифтится (16 - 2 ) = 14 тиков
а через CL_Move можно как нибудь?
 
Забаненный
Статус
Оффлайн
Регистрация
16 Фев 2018
Сообщения
67
Реакции[?]
57
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А разве эти события могут происходить параллельно? Тики это единичная величина, каким образом даблтап остается заряженным в момент того, как происходит шифт тиков для брик лс, это же невозможно
Там идет шифт отправляемых пакетов, а не комманд.
И там это работает немного иначе.
Я не могу вдаваться в подробности, потому что я поверхностно в этой теме разбираюсь.
 
Пользователь
Статус
Оффлайн
Регистрация
12 Фев 2020
Сообщения
382
Реакции[?]
95
Поинты[?]
0
Там идет шифт отправляемых пакетов, а не комманд.
И там это работает немного иначе.
Я не могу вдаваться в подробности, потому что я поверхностно в этой теме разбираюсь.
мужик ответь пожалуйста на мой вопрос,который я задал выше
 
Пользователь
Статус
Оффлайн
Регистрация
12 Июн 2019
Сообщения
865
Реакции[?]
127
Поинты[?]
1K
Забаненный
Статус
Оффлайн
Регистрация
18 Июн 2020
Сообщения
506
Реакции[?]
90
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
18 Июн 2020
Сообщения
506
Реакции[?]
90
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Участник
Статус
Оффлайн
Регистрация
28 Окт 2019
Сообщения
1,153
Реакции[?]
302
Поинты[?]
3K
Там идет шифт отправляемых пакетов, а не комманд.
И там это работает немного иначе.
Я не могу вдаваться в подробности, потому что я поверхностно в этой теме разбираюсь.
shift-amount , которые ты передаешь для шифтинга это как раз и есть те тики, через которые и строется дт, получается , что брик лс сделан на тиках обычных?
 
Пользователь
Статус
Оффлайн
Регистрация
12 Фев 2020
Сообщения
382
Реакции[?]
95
Поинты[?]
0
Тебе уже русским языком в теме написали
вот на код и еще код, а самое важное, ну хуй знает, сам делай. классный гайд. автору желаю закончить рабочую смену слесаря?
 
Забаненный
Статус
Оффлайн
Регистрация
18 Июн 2020
Сообщения
506
Реакции[?]
90
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
вот на код и еще код, а самое важное, ну хуй знает, сам делай. классный гайд. автору желаю закончить рабочую смену слесаря?
Он дал тебе код, хук writeusercmd ты уже спастить не в силах? Он тебе также подробно и очень сука внятно сказал, все что требуется от тебя, переписать брик лц
 
Участник
Статус
Оффлайн
Регистрация
28 Окт 2019
Сообщения
1,153
Реакции[?]
302
Поинты[?]
3K
вот на код и еще код, а самое важное, ну хуй знает, сам делай. классный гайд. автору желаю закончить рабочую смену слесаря?
А зачем он тебе? Это сделано для знающих людей, чтобы понять принцип работы и допилить его, а ты вася пупкин из 6б, незнающий ни c++, ни как работает игра, что ты можешь с этим шифтом сделать дельное а?вот зачем он тебе?
 
бос рунета
Участник
Статус
Оффлайн
Регистрация
24 Ноя 2017
Сообщения
526
Реакции[?]
151
Поинты[?]
0
вот на код и еще код, а самое важное, ну хуй знает, сам делай. классный гайд. автору желаю закончить рабочую смену слесаря?
даже если подробно разжевать что и куда вы будете кричать что ошибки не можете пофиксить :anguished:

//желаю научиться думать ?
 
Пользователь
Статус
Оффлайн
Регистрация
12 Фев 2020
Сообщения
382
Реакции[?]
95
Поинты[?]
0
А зачем он тебе? Это сделано для знающих людей, чтобы понять принцип работы и допилить его, а ты вася пупкин из 6б, незнающий ни c++, ни как работает игра, что ты можешь с этим шифтом сделать дельное а?вот зачем он тебе?
мужик я лишь пытаюсь понять как это вообще работает и куда конкретно в вив нужно это пихать. ты меня не знаешь и пишешь что то про 6б и не знание языка. советую закончить раб.. ой нет. научиться не писать о тех, кого не знаешь.
 
Забаненный
Статус
Оффлайн
Регистрация
18 Июн 2020
Сообщения
506
Реакции[?]
90
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
вот на код и еще код, а самое важное, ну хуй знает, сам делай. классный гайд. автору желаю закончить рабочую смену слесаря?
Зачем ты надеешься, что тебе дадут весь код сразу под c+p? Найти куда вставить проверку if (can_dt) нету труда, хук тоже, но для тебя переписать брик лц составит большую трудность
 
Забаненный
Статус
Оффлайн
Регистрация
18 Июн 2020
Сообщения
506
Реакции[?]
90
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу