Иконка ресурса

База для ReChecker

Сообщения
92
Реакции
23
"../metla.dll" UNKNOWN "fb_ban 60 [userid] 'Metla'" BREAK
"../metla.asi" UNKNOWN "fb_ban 60 [userid] 'Metla'" BREAK
 
Сообщения
241
Реакции
224
Помог
2 раз(а)
Ребят, много расписывать не буду, думаю сами разберетесь, просмотрев все внимательно.
Выкладываю кое-какую наработку. Архив содержит 7 баз для речекера, каждая из которых состоит из 2 частей: уже обнаруженных ранее читов (во всех базах одинаковая) и добавленных новых (уникальная для каждой базы). Также присутствует плагин для логирования обнаружений и плагин для чередования баз при каждой смене карты.

Ложных не обнаружено, дубликатов тоже. Но вообще, конечно, следите на всякий случай сами. Особой поддержки оказывать не планирую, ибо делал для себя и делюсь с сообществом без каких-либо обязательств))

P.S.: За идею спасибо товарищу fire-dance, за помощь и поддержку SFGMobile
 

Вложения

Сообщения
1,536
Реакции
2,324
Помог
39 раз(а)
Pokemoshka, позволит обхватить больший список читов для проверки и не упереться в лимит.
Можно, ради интереса, по логам посчитать популярные читы (детекты) и тем самым, возможно, сократить список проверок, избавившись от нулевых детектов.
 
Сообщения
1,536
Реакции
2,324
Помог
39 раз(а)
Pokemoshka, Если не брать в расчет другие модули защиты, которые могут поймать читера, то тут несколько вариантов развития сюжета:
  1. Читер отыграет 6 карт и на 7 его забанит, если найдется нужный файл в клиенте.
  2. Если использовать 1 файл, вероятность, что читера забанит, ниже, тк список проверок меньше.
  3. Читера не забанит совсем, тк он не положил файл с нужным названием в директорию игры
 
Сообщения
400
Реакции
147
Помог
11 раз(а)
Под 1.8.2
Код:
#include amxmodx

new g_File[32] = "addons/rechecker/resources.ini";
new g_Path[24] = "addons/rechecker/bases";
new g_PrecFile[32];
new Array:g_Files;

public plugin_precache()
{
register_plugin("RC BaseChanger", "freesrv", "custom");

new glfile[32], glfile_path[64], prec_buff[34], glfile_buff[34];
new gldir = open_dir(g_Path, glfile, charsmax(glfile)), maxarr = 0;

md5_file(g_File, prec_buff);
g_Files = ArrayCreate(32);

do
{
if(strlen(glfile) > 3)
{
formatex(glfile_path, charsmax(glfile_path), "%s/%s", g_Path,glfile);
md5_file(glfile_path, glfile_buff);

if(equal(prec_buff, glfile_buff))
copy(g_PrecFile, charsmax(g_PrecFile), glfile);

ArrayPushString(g_Files, glfile); maxarr += 1;
}

}

while(next_file(gldir, glfile, charsmax(glfile)));
close_dir(gldir);

new listfile[128];
format(listfile, charsmax(listfile), "addons/rechecker/baselist.txt");

if(!file_exists(listfile))
{
write_file(listfile, g_PrecFile, 0);
write_file(listfile, "0", 1);
}

new i, chk, lstfile[36], chkfile[36], arrfile[32], maxlst, len;

for(i = 0 ; i < maxarr ; i++)
{
ArrayGetString(g_Files, i, arrfile, charsmax(arrfile));
formatex(chkfile, charsmax(chkfile), "@%s", arrfile);
chk = 0;

new j; maxlst = file_size(listfile, 1);
for(j = 2; j < maxlst - 1; j++)
{
read_file(listfile, j, lstfile, charsmax(lstfile), len);
if (strfind(lstfile, chkfile) != -1) chk += 1;
}

if(chk == 0)
{
format(chkfile, charsmax(chkfile), "0%s", chkfile);
write_file(listfile, chkfile, -1);
}
}

new nextfile[32], setfile[32], pos;
read_file(listfile, 0, nextfile, charsmax(nextfile), len);
read_file(listfile, 1, setfile, charsmax(setfile), len);

if(strlen(setfile) < 2)
{
if(maxlst > 3)
{
i = 0;
for(i = 0; i < maxarr; i++)
{
ArrayGetString(g_Files, i, chkfile, charsmax(chkfile));
if(strfind(nextfile, chkfile) != -1)
{
if (i == maxarr-1) pos = 0;
else pos = i + 1;
}
}
ArrayGetString(g_Files, pos, nextfile, charsmax(nextfile));
log_amx("^tПроверка ведется по базе ^"%s^"", nextfile);
}
else copy(nextfile, charsmax(nextfile), g_PrecFile);

formatex(glfile_path, charsmax(glfile_path), "%s/%s", g_Path,nextfile);
write_file(listfile, nextfile, 0);
}
else formatex(glfile_path, charsmax(glfile_path), "%s/%s", g_Path,setfile);

ArrayDestroy(g_Files);
file_copy(glfile_path, g_File);
pause("ad");
}

stock bool:file_copy(SOURCE[], TARGET[])
{
new source = fopen(SOURCE, "rb");
new target = fopen(TARGET, "wb");

for(new buffer, eof = feof(source); !eof; !eof && fputc(target, buffer))
{
buffer = fgetc(source);
eof = feof(source);
}

fclose(source);
fclose(target);

return true;
}
Спасибо pheel за базу=!)
 
Последнее редактирование:
Сообщения
2,288
Реакции
1,739
Помог
31 раз(а)
pheel, Работа потрясающая.Спасибо. Возьму на вооружение.
какого только гавна(читов) не придумают, жесть
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
Сообщения
2,288
Реакции
1,739
Помог
31 раз(а)
pheel, Так должно быть ?
RC BaseChanger freesrv custom rc_basechanger. stopped
 
Сообщения
2,288
Реакции
1,739
Помог
31 раз(а)
pheel, Еще вопрос, он поочередно базы берет или рандомно?
 
Сообщения
1,031
Реакции
827
Помог
10 раз(а)
pheel, у меня к Вам будет просьба на будущие, по совету Tranquillity спустя некоторое время выложите, пожалуйста, логи детектов, дабы посмотреть наиболее актуальные.
 
Сообщения
241
Реакции
224
Помог
2 раз(а)
Pokemoshka, поочередно. Я не очень силен в скриптинге, поэтому просто переделал другой плагин под данную задачу)
10 Авг 2017
Javekson, ок, недельку поработает, скину логи. 2 проверки пока выкинул из базы, т.к. банило, видимо, какие то сборки.
csrulez.cfg посоветовали убрать на соседнем форуме, на ssleay32.dll много детектов было, плюс чел, постоянно играющий на сервере, отписал, что бан словил. Видимо тоже сборка существует с этим файликом.
10 Авг 2017
Убрал пару лишних проверок, поправил плагин автозамены для возможности компиляции под амх 1.8.2 и 1.8.3

UPD: перезалил архив, кикало игроков с MACOSX
 

Вложения

Последнее редактирование:
Сообщения
2,288
Реакции
1,739
Помог
31 раз(а)
Javekson, я думаю, может лучше нам всем это сделать? собрать инфу с нескольких сервов
11 Авг 2017
Банит игроков с Linux\MacOs

Заменил
Код:
"../hl.sh" 661f1562 BREAK
"../hl.sh" b437a681 BREAK

На
Код:
"../hl.sh"            b437a681    "say @ Игрок [name] зашел с MacOS/Linux;    rc_log MAC/LINUX        | md5hash '[file_md5hash]' - file '[file_name]' - '<[steamid]><[ip]>' - [name]"        BREAK

Теперь всё в порядке
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
Pokemoshka, лучше ввобше убрать проверку на hl.sh а добавить на сошку какую нибудь ИМХО
 
Сообщения
2,288
Реакции
1,739
Помог
31 раз(а)
fantom, Да я вообще подумываю убрать проверки на Линукс, Core.dll и particleman.dll ни одного детекта на них не было
 
Сообщения
164
Реакции
13
Помог
2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Код:
CResourceFile::LoadResources: Failed to load "resources.ini"; filename has no extension on line 1

дарова.. подскажите пожалуйста
что это такое ?
 

Пользователи, просматривающие эту тему

Сверху Снизу