Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Change break LC and hook to code in thread.
Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.
Change break LC and hook to code in thread.
Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.
And where should i find this?Change break LC and hook to code in thread.
а через CL_Move можно как нибудь?Этот метод очень костыльный и могут быть предикшн ерроры.
Но это не мешает аимботу попадать нормально при пике или других ситуациях.
Для этого нужно:
Переделать брик лц таким образом, чтобы он работал как фейклаг
То-есть, как с обычным фейклагом, делается таймер
Пока он не достиг 14 тиков - не отправляем данные (шифтим)
Достигло - отправляем данные на сервер (офаем шифт)
Может еще понадобиться нормальный (не с лв) Hooked_WriteUsercmdDeltaToBufferКод:if (can_dt) { if (++csgo->shift_timer >= 14) csgo->shift_timer = 0; csgo->shift_amount = csgo->shift_timer > 0 ? 16 : 0; }
Код его будет ниже:
Код: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
P.S.
Почему ставится 16? Поясню.
Методом отладки было выяснено, что в итоге шифтится 14 тиков, а не 16
Потому что в WriteUsercmdDeltaToBuffer комманды создаются от 2 до 16
От чего и шифтится (16 - 2 ) = 14 тиковКод: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; }
Там идет шифт отправляемых пакетов, а не комманд.А разве эти события могут происходить параллельно? Тики это единичная величина, каким образом даблтап остается заряженным в момент того, как происходит шифт тиков для брик лс, это же невозможно
мужик ответь пожалуйста на мой вопрос,который я задал вышеТам идет шифт отправляемых пакетов, а не комманд.
И там это работает немного иначе.
Я не могу вдаваться в подробности, потому что я поверхностно в этой теме разбираюсь.
в миски пастить я так понимаю? а как какать его в кодif (can_dt) { if (++csgo->shift_timer >= 14) csgo->shift_timer = 0; csgo->shift_amount = csgo->shift_timer > 0 ? 16 : 0; }
где в вейв оно,поиск нихуя не даётделай только ты забыл Посмотреть вложение 161809
фзафзпхапхазфхазфахфза ищи дальше это не сложногде в вейв оно,поиск нихуя не даёт
Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.
shift-amount , которые ты передаешь для шифтинга это как раз и есть те тики, через которые и строется дт, получается , что брик лс сделан на тиках обычных?Там идет шифт отправляемых пакетов, а не комманд.
И там это работает немного иначе.
Я не могу вдаваться в подробности, потому что я поверхностно в этой теме разбираюсь.
вот на код и еще код, а самое важное, ну хуй знает, сам делай. классный гайд. автору желаю закончить рабочую смену слесаря?Тебе уже русским языком в теме написали
Он дал тебе код, хук writeusercmd ты уже спастить не в силах? Он тебе также подробно и очень сука внятно сказал, все что требуется от тебя, переписать брик лцвот на код и еще код, а самое важное, ну хуй знает, сам делай. классный гайд. автору желаю закончить рабочую смену слесаря?
А зачем он тебе? Это сделано для знающих людей, чтобы понять принцип работы и допилить его, а ты вася пупкин из 6б, незнающий ни c++, ни как работает игра, что ты можешь с этим шифтом сделать дельное а?вот зачем он тебе?вот на код и еще код, а самое важное, ну хуй знает, сам делай. классный гайд. автору желаю закончить рабочую смену слесаря?
даже если подробно разжевать что и куда вы будете кричать что ошибки не можете пофикситьвот на код и еще код, а самое важное, ну хуй знает, сам делай. классный гайд. автору желаю закончить рабочую смену слесаря?
мужик я лишь пытаюсь понять как это вообще работает и куда конкретно в вив нужно это пихать. ты меня не знаешь и пишешь что то про 6б и не знание языка. советую закончить раб.. ой нет. научиться не писать о тех, кого не знаешь.А зачем он тебе? Это сделано для знающих людей, чтобы понять принцип работы и допилить его, а ты вася пупкин из 6б, незнающий ни c++, ни как работает игра, что ты можешь с этим шифтом сделать дельное а?вот зачем он тебе?
Зачем ты надеешься, что тебе дадут весь код сразу под c+p? Найти куда вставить проверку if (can_dt) нету труда, хук тоже, но для тебя переписать брик лц составит большую трудностьвот на код и еще код, а самое важное, ну хуй знает, сам делай. классный гайд. автору желаю закончить рабочую смену слесаря?
Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.
Скрытое содержимое
Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz