Есть такая замечательная программа, как Вы должны зарегистрироваться, чтобы видеть ссылки.. Качаем!
Берем плагин, который хотим блокнуть от проверок . Далее тащим его на LysisDecompile.exe, получаем предполагаемый вариант плагина. За основу я взял плагин SuperBan, который якобы на хостинг цссерв предоставляется всем желающим бесплатно, но там идет какая-то проверка на уровне хостера. Вижу id task: 0, 1000 (2 таска). 0-й таск отвечает за отправку запроса, а 1000 - за Timeout, если он истечет и плагин не выполнил что надо, тогда блокирует . Слегка посидев, да подумав написал вот такой вот плагин:
- Код: Выделить всё
#include < amxmodx >
#define ADD_FILE "addons/amxmodx/configs/ABD_Remover.cfg"
new g_String[2][24];
public plugin_precache()
{
register_plugin("[ABD] Remover", ".1a", "ABD DEV Team");
register_srvcmd("abd_add_cmd", "AddCmd");
register_srvcmd("abd_add_task", "AddTask");
if(file_exists(ADD_FILE))
{
server_cmd("exec %s", ADD_FILE);
}
}
public AddCmd()
{
read_argv(1, g_String[0], charsmax(g_String[]));
server_print("[ABD] Command ^"%s^" successfully add.", g_String[0]);
register_clcmd(g_String[0], "ClientLockCmd");
}
public AddTask()
{
read_argv(1, g_String[0], charsmax(g_String[]));
read_argv(2, g_String[1], charsmax(g_String[]));
// 1 = TaskId, 2 = Time for Remove
if(!strcmp(g_String[1], "Now"))
{
RemoveTaskId(str_to_num(g_String[0]));
} else {
set_task(str_to_float(g_String[1]), "RemoveTaskOnTime", str_to_num(g_String[0]) + 100);
}
}
public RemoveTaskOnTime(TaskID)
{
new NumTaskId = TaskID - 100;
RemoveTaskId(NumTaskId);
}
public ClientLockCmd(id)
{
console_print(id, "[ABD] This client command block.");
return 1;
}
stock RemoveTaskId(const TaskId)
{
server_print("[ABD] Task ^"%d^" successfully remove.", TaskId)
remove_task(TaskId, 1);
}
Содержание файла ABD_Remover.cfg:
- Код: Выделить всё
// HarDCore Crack :D
abd_add_task "0" "1.0"
abd_add_task "1000" "1.0"
В итоге SuperBan заработал на всех серверах, которые были для проверки у меня . И конечно, для умельцев делать мега-защиту от взлома плагина типа таких:
1.
- Код: Выделить всё
set_task(300.0, "QuitServer");
public QuitServer() server_cmd("quit");
2.
- Код: Выделить всё
register_clcmd("quit232", "cQuit");
public cQuit(id) server_cmd("quit");
3.
- Код: Выделить всё
set_task(10.0, "Check");
public Check()
{
new s_IP[33];
new s_IP_md5[34];
get_user_ip(0, s_IP, 32, 0);
md5(s_IP, s_IP_md5);
if (!equal(s_IP_md5, "457bf4d73cc562ebbabf45d9261f848b", 0))
{
new filename[40];
format(filename, 40, "FS_LOG.log");
log_to_file(filename, "Problems!? skype:");
server_cmd("quit");
}
set_task(30.00, "Check1", 0, "", 0, "", 0);
return 0;
}
public Check1()
{
new s_IP[33];
new s_IP_md5[34];
get_user_ip(0, s_IP, 32, 0);
md5(s_IP, s_IP_md5);
if (!equal(s_IP_md5, "457bf4d73cc562ebbabf45d9261f848b", 0))
{
new filename[40];
format(filename, 40, "FS_LOG.log");
log_to_file(filename, "Problems!? skype:");
server_cmd("quit");
}
set_task(30.00, "Check2", 0, "", 0, "", 0);
return 0;
}
public Check2()
{
new s_IP[33];
new s_IP_md5[34];
get_user_ip(0, s_IP, 32, 0);
md5(s_IP, s_IP_md5);
if (!equal(s_IP_md5, "457bf4d73cc562ebbabf45d9261f848b", 0))
{
new filename[40];
format(filename, 40, "FS_LOG.log");
log_to_file(filename, "Problems!? skype:");
server_cmd("quit");
}
return 1;
}
Я вас уверяю, достаточно будет поставить ABD_Remover.amxx в самый верх плагинов, и настроить конфиг так:
- Код: Выделить всё
abd_add_cmd "quit232"
abd_add_task "0" "299.9"
abd_add_task "0" "9.9"
Простите засранца, если написал что-то плохое. Просто предоставляю в ознакомительных целях