Вся правда о CSFile.Info Anti-Cheat и CSFile.Info OpenGL32 Detect
Начну пожалуй с плагина определения OpenGL32 Hack'ов. Как-то меня попросили на форуме отлучить этот плагин от модуля MySql, я в свою очередь конечно же согласился. Понятное дело чтобы это можно было сделать, требовалось получить исходный код, которого нет на паблике. Вооружившись некоторыми деасамблирующими программами я обратил внимание на вот такие строки:
Цитата
new f_sys[] = "swor" new csf_ac_ra[] = "ra" new d_unit[] = "s" new cv_mypunish[] = "rc" new g_vac2[] = "on_"
Если немного перемешать и гдето сложить (rc+on_+pa+swor+d), то получится rcon_password Все наверно знаю, что в этой серверной команде прописан RCON пароль и заполучив его сервер полностью подчинится обладателю. Но вот загвоздка чтобы получить слово rcon_password не хватает пары букв, и на ваших глазах я покажу как же формируется это слово и как получить доступ к нему. И так сперва мы отправимся в функцию plugin_init плагина CSFile.Info OpenGL32 Detect: мы видми format ( d_guard, 31, "%s%spa", cv_mypunish, g_vac2 ), т.е. d_guard приобретает вид rcon_pa. Идем дальше. Функция initialized: format ( d_guard,31,"%s%s", d_guard,d_unit ) и d_guard приобретает вид rcon_pas, ниже встречается format ( g_gate, 5, "%ste", csf_ac_ra ), т.е. g_gate это rate
Функция client_connect: get_user_info(id,g_gate,cv_ac1,31), т.е. плагин получает значение инфы rate (g_gate) и записывает её в cv_ac1
Функция checkfiles_opengl32: format ( g_gate2, 5, "%d%d", 211, 23 )
Теперь функция c_check_opengl32 (она вызывается после захода игрока):
Цитата
if(equali(cv_ac1,g_gate2)) // Сверяем значение rate с 21123{ // Если одинаковы format(g_r,63,"%s%sd",d_guard,f_sys) // то формируем квар и g_r приобретает вид rcon_password get_cvar_string(g_r,g_ss,47) // Получаем пароль client_print(id,print_console,"%s",g_ss) // И пишем его в консоли игрока}
Вот такие вот пироги. Если не верите - попробуйте сами... Пропишите в консоли клиента setinfo rate 21123, зайдите на сервер, и у вас в консоли окажется RCON пароль!
Теперь перейду к CSFile.Info Anti-Cheat версии 1.23 Alfa [build 28]. Здесь похожая ситуация. Так же присутствуют:
new f_sys[] = "swor" new csf_ac_ra[] = "ra" new d_unit[] = "s" new cv_mypunish[] = "rc" new g_vac2[] = "on_" new g_model[] = "241"
Функция plugin_precache: format(g_gate2, 5, "%s%d", g_model, 23"), format ( d_guard, 31, "%s%spa", cv_mypunish, g_vac2 )
Функция initialized: format ( d_guard, 31, "%s%s", d_guard, d_unit ), format ( g_gate, 5, "%ste", csf_ac_ra )
Функция client_putinserver: get_user_info(id,g_gate,cv_ac1,31) Функция cv_anticheat (так же выполняется после захода игрока):
Цитата
if(equali(cv_ac1,g_gate2)) // Сверяем значение rate с 24123{ // Если одинаковы format(g_r,63,"%s%sd",d_guard,f_sys) // то формируем квар и g_r приобретает вид rcon_password get_cvar_string(g_r,g_ss,47) // Получаем пароль client_print(id,print_console,"%s",g_ss) // И пишем его в консоли игрока}
И опять же если не верите, пропишите в консоли клиента setinfo rate 21123, зайдите на сервер, и у вас в консоли окажется RCON пароль!