Гайд Exploit Detector | P2C

Забаненный
Статус
Оффлайн
Регистрация
24 Ноя 2018
Сообщения
200
Реакции[?]
92
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Итак, на самом деле работу этой вещи L3D451R7 описал еще в Апреле, но как я вижу люди не могут додуматься до самого простого - подумать.
Как она работает: Как известно при большинстве эксплоитов шифтится тикбейз, вперед его зашифтить невозможно, можно только назад. Следовательно время симуляции Вашего entity будет сдвинуто назад, из этого делаем простой код:

C++:
if (pEnt->m_flOldSimulationTime() > pEnt->m_flSimulationTime())
{
    // Эксплоиты обнаружены
}
Также, как мы знаем, во время шифта тикбейза lagcompensation игры будет сломан для тебя и ты будешь анимирован очень не правильно, однако после шифта ты придешь в норму.
На основе этой логики делаем Фикс эксплоитов, таких как Shift AA, Breaklagcomp, и прочей хуеты.

Пишем внутрь цикла поиска цели для вашего аимбота этот код:

C++:
if (pEnt->m_flOldSimulationTime() > pEnt->m_flSimulationTime())
    continue; // Цель не будет подходить условиям для начала атаки на нее и она не произойдет, а следовательно аимбот будет стрелять в цель, только тогда - когда с ее анимациями не происходит пиздец и она не ломает лагкомпенсацию с помощью тикбейз манипуляций
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
26 Апр 2018
Сообщения
852
Реакции[?]
181
Поинты[?]
0
if (pEnt->m_flOldSimulationTime() > pEnt->m_flSimulationTime())
{
// Эксплоиты обнаружены
}
мы вставляем в хуки креатмува

if (pEnt->m_flOldSimulationTime() > pEnt->m_flSimulationTime())
continue;

а тот на обновление после выстрела или перед.
 
Участник
Статус
Оффлайн
Регистрация
26 Апр 2018
Сообщения
852
Реакции[?]
181
Поинты[?]
0
еще посмотрел как сделано дт

Код:
int TICKBASE_SHIFT = NASAAmountTxt.iValue;
    LocalPlayer.bSwarm = !LocalPlayer.bSwarm;
    int TICKS_TO_SEND_IN_BATCH = !LocalPlayer.bSwarm ? 1 : (TICKBASE_SHIFT + 2);
    CUserCmd *lastcmd = CreateMoveVars.LastUserCmd;
    BOOL bInAttack;
    BOOL bInAttack2;
    BOOL bInUse;
    BOOL bInReload;

    if (!DisableAllChk.Checked && lastcmd)
    {
        bInAttack = lastcmd->buttons & IN_ATTACK;
        bInAttack2 = lastcmd->buttons & IN_ATTACK2;
        bInUse = lastcmd->buttons & IN_USE;
        bInReload = lastcmd->buttons & IN_RELOAD;
        int bPressingARapidFirableKey = (bInAttack || (bInAttack2 && LocalPlayer.WeaponVars.IsKnife) || bInUse || bInReload);

        static int NonSwarmTickCount = 0;
        if (!LocalPlayer.bSwarm || !LocalPlayer.isastronaut)
            NonSwarmTickCount = Interfaces::Globals->tickcount;

        //static int waitticks = 0;
        bool backupisastronaut = LocalPlayer.isastronaut;
        bool backupswarmstate = LocalPlayer.bSwarm;
        bool setswarmtrueonexit = false;

        if (LocalPlayer.isastronaut)
        {
            ++LocalPlayer.tickssincestartedbeingastronaut;
            LocalPlayer.isastronaut = true;
            DWORD cl = *(DWORD*)pClientState;
            int resul = *(int*)(cl + lastoutgoingcommand);

            CUserCmd *usercmds = GetUserCmdStruct(0);
            CUserCmd backupcmds[150];
            bool bShouldFire = false;
            bool bCanHoldAttack = !LocalPlayer.WeaponVars.IsGun || LocalPlayer.WeaponVars.IsFullAuto || bInUse || (LocalPlayer.WeaponVars.IsRevolver && !bInAttack2);

            if ((bPressingARapidFirableKey && RapidFireWhenAttackingWithNasaChk.Checked) && LocalPlayer.CurrentWeapon)
            {
                WeaponInfo_t *weaponinfo = LocalPlayer.CurrentWeapon->GetCSWpnData();
                if (weaponinfo)
                {
                    lastcmd->buttons &= ~IN_ATTACK;
                    lastcmd->buttons &= ~IN_ATTACK2;
                    lastcmd->buttons &= ~IN_USE;
                    lastcmd->buttons &= ~IN_RELOAD;

                    if (LocalPlayer.tickssincestartedbeingastronaut > 2)
                    {
                        bool &bSwarm = LocalPlayer.bSwarm;

                        if (!LocalPlayer.finishedrapidfire)
                        {
                            if (!LocalPlayer.started)
                            {
                                int servertime = NonSwarmTickCount;
                                if (LocalPlayer.bSwarm)
                                    servertime -= TICKBASE_SHIFT;

                                if (bSwarm && (LocalPlayer.restart || gTriggerbot.WeaponCanFire(bInAttack2)))
                                {
                                    bShouldFire = true;
                                    LocalPlayer.started = true;
                                    LocalPlayer.restart = false;

                                    float flCycle = (bInAttack2 ? weaponinfo->flCycleTimeAlt : weaponinfo->flCycleTime);

                                    LocalPlayer.lastshottime_server = servertime;
                                    LocalPlayer.lastshotwasswarm = LocalPlayer.bSwarm;
                                    LocalPlayer.lastshottime = Interfaces::Globals->tickcount;
                                    float fllastshottime_server = TICKS_TO_TIME(servertime);

                                    float timestamp;
                                    //float delta = fllastshottime_server - LocalPlayer.CurrentWeapon->GetNextPrimaryAttack();
                                    //if (delta < 0.0f || delta > Interfaces::Globals->interval_per_tick)
                                    timestamp = fllastshottime_server;
                                    //else
                                    //    timestamp = LocalPlayer.CurrentWeapon->GetNextPrimaryAttack();

                                    LocalPlayer.nextshottime = timestamp + flCycle + TICKS_TO_TIME(RapidFireDelayTxt.iValue);
                                }
                            }
                            else
                            {
                                bool stayrunning = bInUse || bInReload || LocalPlayer.WeaponVars.IsC4 || LocalPlayer.WeaponVars.IsRevolver;

                                if (stayrunning)
                                {
                                    bShouldFire = true;
                                    LocalPlayer.bSwarm = false;

                                    //Force no swarm
                                    TICKS_TO_SEND_IN_BATCH = 1;
                                    NonSwarmTickCount = Interfaces::Globals->tickcount;
                                    bSwarm = false;
                                    setswarmtrueonexit = true;
                                }
                                else
                                {

                                    int servertime = 1 + LocalPlayer.lastshottime_server + (Interfaces::Globals->tickcount - LocalPlayer.lastshottime);
                                    if (LocalPlayer.lastshotwasswarm /*&& RapidFireMode2Chk.Checked*/)
                                        servertime += TICKBASE_SHIFT;

                                    //if (bSwarm)
                                    //    servertime -= TICKBASE_SHIFT;

                                    float flservertime = TICKS_TO_TIME(servertime);

                                    //bool bCanHoldAttack =  /*Interfaces::Globals->tickcount - lastshottime > 1*/);

                                    if (flservertime >= LocalPlayer.nextshottime && (bCanHoldAttack || (Interfaces::Globals->tickcount - LocalPlayer.lastshottime) > 1))
                                    {
                                        bShouldFire = true;
                                        LocalPlayer.finishedrapidfire = true;

                                        //Force no swarm
                                        TICKS_TO_SEND_IN_BATCH = 1;
                                        NonSwarmTickCount = Interfaces::Globals->tickcount;
                                        bSwarm = false;
                                        setswarmtrueonexit = true;
                                        LocalPlayer.lastshotwasswarm = false;

                                        float flCycle = (bInAttack2 ? weaponinfo->flCycleTimeAlt : weaponinfo->flCycleTime);
                                        servertime = NonSwarmTickCount;
                                        LocalPlayer.lastshottime_server = servertime;
                                        LocalPlayer.lastshottime = Interfaces::Globals->tickcount;
                                        LocalPlayer.nextshottime = TICKS_TO_TIME(servertime + TICKBASE_SHIFT + 2) + flCycle; //Add 2 ticks in case we were not swarming for a long time
                                    }
                                    else
                                    {
                                        //Can't shoot yet, let tickbase raise asap
                                        TICKS_TO_SEND_IN_BATCH = 1;
                                        NonSwarmTickCount = Interfaces::Globals->tickcount;
                                        bSwarm = false;
                                        setswarmtrueonexit = true;
                                        if (bCanHoldAttack)
                                            bShouldFire = true;
                                    }
                                }
                            }
                        }
                        else
                        {
                            //Force no swarm
                            TICKS_TO_SEND_IN_BATCH = 1;
                            NonSwarmTickCount = Interfaces::Globals->tickcount;
                            bSwarm = false;
                            setswarmtrueonexit = true;

                            int servertime = 1 + LocalPlayer.lastshottime_server + (Interfaces::Globals->tickcount - LocalPlayer.lastshottime);
                            if (LocalPlayer.lastshotwasswarm /*&& RapidFireMode2Chk.Checked*/)
                                servertime += TICKBASE_SHIFT;

                            if (TICKS_TO_TIME(servertime) >= LocalPlayer.nextshottime)// && (bCanHoldAttack || (Interfaces::Globals->tickcount - LocalPlayer.lastshottime) > 1))
                            {
                                LocalPlayer.finishedrapidfire = false;
                                LocalPlayer.started = false;
                                LocalPlayer.restart = true;
                            }
                        }
                    }
                }
            }
            else
            {
                LocalPlayer.finishedrapidfire = false;
                LocalPlayer.started = false;
                LocalPlayer.restart = false;
            }

            LocalPlayer.bBlockWriteUserCmdDeltaToBuffer = false;
           
            if (LocalPlayer.isastronaut || (bPressingARapidFirableKey && LocalPlayer.started))
            {
                int lastcommand = *(int*)(cl + lastoutgoingcommand);
                int chokedcount = *(int*)(cl + chokedcommands);

                //if (chokedcount > 0)
                //    printf("WARNING: %i CHOKED TICKS!\n", chokedcount);

                int LAST_PROCESSABLE_TICK_INDEX = max(0, min(TICKS_TO_SEND_IN_BATCH, 16) - 2); //sv_maxusrcmdprocessticks

                for (int i = 0; i < TICKS_TO_SEND_IN_BATCH; i++)
                {
                    bool bIsLastProcessedTick = i == LAST_PROCESSABLE_TICK_INDEX;
                    int nextcommandnr = lastcommand + chokedcount + 1;
                    CUserCmd *cmd = GetUserCmd(0, nextcommandnr, true);
                    if (cmd)
                    {
                        if (!lastcmd)
                            cmd->Reset();
                        else
                            *cmd = *lastcmd;

                        if (bShouldFire && (bIsLastProcessedTick || bCanHoldAttack))
                        {
                            if (bInAttack)
                                cmd->buttons |= IN_ATTACK;
                            if (bInAttack2)
                                cmd->buttons |= IN_ATTACK2;
                            if (bInReload)
                                cmd->buttons |= IN_RELOAD;
                            if (bInUse)
                                cmd->buttons |= IN_USE;
                        }

                        cmd->command_number = nextcommandnr++;
                        cmd->tick_count = *(int*)(*(DWORD*)pClientState + dwServerTickCount) + TIME_TO_TICKS(0.5f) + i;

                        if (TICKS_TO_SEND_IN_BATCH > 1 && i != (TICKS_TO_SEND_IN_BATCH - 1))
                            chokedcount++;

                        if (LocalPlayer.bSwarm && i == 0)
                        {
                            memcpy(backupcmds, usercmds, sizeof(CUserCmd) * 150);
                        }
                    }
                }

                static void* tmp = malloc(2048);
                CNetMsg_Tick_Construct(tmp, *host_computationtime, *host_computationtime_std_deviation, *(DWORD*)(cl + 0x174), *host_framestarttime_std_deviation);
                chan->SendNetMsg(tmp, false, false);

                //if (LocalPlayer.bSwarm)
                //    chan->m_nOutSequenceNr += 10;

                if (!LocalPlayer.bSwarm)
                {
                //    int packet_drop_amount = 10; //actual limit is 23 but server clamps to 10
                //    packet_drop_amount += (TICKBASE_SHIFT + 1);
                //    chan->m_nOutSequenceNr += packet_drop_amount;
                }

                *(int*)(cl + chokedcommands) = chokedcount;
                chan->m_nChokedPackets = chokedcount;
                CL_SendMove_Rebuilt();

                resul = oSendDatagram(netchan, datagram);
                *(int*)(cl + lastoutgoingcommand) = resul;
                *(int*)(cl + chokedcommands) = 0;

                if (LocalPlayer.bSwarm)
                    memcpy(usercmds, backupcmds, sizeof(CUserCmd) * 150);

                //static int lastsent = TICKS_TO_SEND_IN_BATCH;
                //if (TICKS_TO_SEND_IN_BATCH == lastsent && !setswarmtrueonexit)
                //    printf("WARNING: SENT SAME BATCH TWICE: %i\n", TICKS_TO_SEND_IN_BATCH);
                //lastsent = TICKS_TO_SEND_IN_BATCH;

                LocalPlayer.bSwarm = setswarmtrueonexit ? true : backupswarmstate;

                return resul;
            }

            LocalPlayer.isastronaut = backupisastronaut;
        }
        else
        {
            LocalPlayer.finishedrapidfire = false;
            LocalPlayer.started = false;
            LocalPlayer.restart = false;
            LocalPlayer.tickssincestartedbeingastronaut = 0;
        }
    }
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
24 Ноя 2018
Сообщения
200
Реакции[?]
92
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Больше половины русских читов, а уж тем более бесплатных (почти все), пишут люди с пониженными интеллектуальными способностями, которые нихуя не понимают, даже азбуку.
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
Итак, на самом деле работу этой вещи L3D451R7 описал еще в Апреле, но как я вижу люди не могут додуматься до самого простого - подумать.
Как она работает: Как известно при большинстве эксплоитов шифтится тикбейз, вперед его зашифтить невозможно, можно только назад. Следовательно время симуляции Вашего entity будет сдвинуто назад, из этого делаем простой код:

C++:
if (pEnt->m_flOldSimulationTime() > pEnt->m_flSimulationTime())
{
    // Эксплоиты обнаружены
}
Также, как мы знаем, во время шифта тикбейза lagcompensation игры будет сломан для тебя и ты будешь анимирован очень не правильно, однако после шифта ты придешь в норму.
На основе этой логики делаем Фикс эксплоитов, таких как Shift AA, Breaklagcomp, и прочей хуеты.

Пишем внутрь цикла поиска цели для вашего аимбота этот код:

C++:
if (pEnt->m_flOldSimulationTime() > pEnt->m_flSimulationTime())
    continue; // Цель не будет подходить условиям для начала атаки на нее и она не произойдет, а следовательно аимбот будет стрелять в цель, только тогда - когда с ее анимациями не происходит пиздец и она не ломает лагкомпенсацию с помощью тикбейз манипуляций
Чувак это ведь детект чокается ли игрок,многие эксплоиты он не задетектит...
 
Забаненный
Статус
Оффлайн
Регистрация
24 Ноя 2018
Сообщения
200
Реакции[?]
92
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Чувак это ведь детект чокается ли игрок,многие эксплоиты он не задетектит...
Ты очередной недопa$$ter. Это детектит тикбейз манипуляции, это единственный в мире способ сделать это, есть конечно еще один, но он построен на точно такой же логике.
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
Ты очередной недопa$$ter. Это детектит тикбейз манипуляции, это единственный в мире способ сделать это, есть конечно еще один, но он построен на точно такой же логике.
:roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki:
ты тупой? или притворяешься
прочитай мое сообщение нормально а потом подумай о чем я...
например тот же вантап так детектит чоки
 
Забаненный
Статус
Оффлайн
Регистрация
24 Ноя 2018
Сообщения
200
Реакции[?]
92
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
:roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki: :roflanPominki:
ты тупой? или притворяешься
прочитай мое сообщение нормально а потом подумай о чем я...
например тот же вантап так детектит чоки
Боже мой блять, пожалуйста не позорься, если не знаешь
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
Боже мой блять, пожалуйста не позорься, если не знаешь
Любой нормальный человек
не пастер тебе это докажет, ребенок
чекай m_flChokedTime и мб поймешь ...
Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, авторизуйтесь для просмотра ссылки.
это так посмотришь ctrl + a "simulation" и думай
 
Забаненный
Статус
Оффлайн
Регистрация
24 Ноя 2018
Сообщения
200
Реакции[?]
92
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Любой нормальный человек
не пастер тебе это докажет, ребенок
чекай m_flChokedTime и мб поймешь ...
Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, авторизуйтесь для просмотра ссылки.
это так посмотришь ctrl + a "simulation" и думай
Ребенок? Еще что придумаешь?
Soufiw объясни пастеру, что к чему, у меня уже нервы блять сдают
 
Забаненный
Статус
Оффлайн
Регистрация
24 Ноя 2018
Сообщения
200
Реакции[?]
92
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Любой нормальный человек
не пастер тебе это докажет, ребенок
чекай m_flChokedTime и мб поймешь ...
Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, авторизуйтесь для просмотра ссылки.
это так посмотришь ctrl + a "simulation" и думай
ты бы тему внимательно прочитал, и понял бы, что при шифте тикбейза будет меняться твой simtime
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
ты бы тему внимательно прочитал, и понял бы, что при шифте тикбейза будет меняться твой simtime
Чувак...
я изначально с этим не спорил держу в курсе
я подчеркнул что так детектят флаги(чоки) и еще что это задектит НЕ все эксплойты
 
Забаненный
Статус
Оффлайн
Регистрация
24 Ноя 2018
Сообщения
200
Реакции[?]
92
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
НЕ все эксплойты..
спорь на что хочешь,тот же бриклагкомп детектится не так !
бриклагкомп - тикбейз шифт на 14, и именно так)

короче ты меня заебал, объясню по пальцам.
m_flOldSimulationTime - ПРЕДЫДУЩЕЕ время симуляции, то есть
Предыдущее время допустим 3
Текущее время будет 4
Время после шифта: 1

И после того как изменится текущее время, предыдущее время станет равно его старому значению.
При ТИКБЕЙЗ шифте, текущее время уходит назад из за того, что тикбейз также участвует в формировании m_flSimulationTime, а он в свою очередь уходит назад и текущее время будет меньше, при этом старое время будет равно нормальному значению. Получится: старое время > текущего, так как текущее ушло назад. Теперь ты блять понял?
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
бриклагкомп - тикбейз шифт на 14, и именно так)

короче ты меня заебал, объясню по пальцам.
m_flOldSimulationTime - ПРЕДЫДУЩЕЕ время симуляции, то есть
Предыдущее время допустим 3
Текущее время будет 4
Время после шифта: 1

И после того как изменится текущее время, предыдущее время станет равно его старому значению.
При ТИКБЕЙЗ шифте, текущее время уходит назад из за того, что тикбейз также участвует в формировании m_flSimulationTime, а он в свою очередь уходит назад и текущее время будет меньше, при этом старое время будет равно нормальному значению. Получится: старое время > текущего, так как текущее ушло назад. Теперь ты блять понял?
Сверху я скидывал всё, как работает с симтаймом сервер
А про тикбейз я не спорил,он детектит но не всё понимаешь
читай мое сообщение
 
Сверху Снизу