AMX MOD X
Воскресенье, 19.05.2024, 13:21:34



Приветствую Вас Гость | RSS
[ Главная ] [ Система банов в non-steam - Страница 2 - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: AlMod, slogic  
AMX Mod X Форум » Плагины » Поиск плагинов » Система банов в non-steam
Система банов в non-steam
mcdemonДата: Вторник, 20.05.2008, 18:57:34 | Сообщение # 16
Лейтенант
Группа: Пользователи
Сообщений: 71
Репутация: 0
Статус: Не в сети
бугаггаа CD :)) проэто уже года 2 как заброшен
 
hatchДата: Среда, 21.05.2008, 14:15:12 | Сообщение # 17
Сержант
Группа: Пользователи
Сообщений: 37
Репутация: 2
Статус: Не в сети
max_rip, и никто пока такого не реализовывал ??? Я про плагин.

Ыыы...
 
max_ripДата: Среда, 21.05.2008, 16:17:51 | Сообщение # 18
Подполковник
Группа: Пользователи
Сообщений: 147
Репутация: 0
Статус: Не в сети
hatch, на ДС.ру есть измененый амхх бан, который банит по серийнику маяка, записанный в сетинфо самим маяком.
Желание реализовать отдельный плагин есть, в виду не использования амхх банс (ну не нравится мне его метод проверок)
 
hatchДата: Среда, 21.05.2008, 16:45:47 | Сообщение # 19
Сержант
Группа: Пользователи
Сообщений: 37
Репутация: 2
Статус: Не в сети
Блин, опять маяк...

Ыыы...
 
max_ripДата: Пятница, 23.05.2008, 14:04:29 | Сообщение # 20
Подполковник
Группа: Пользователи
Сообщений: 147
Репутация: 0
Статус: Не в сети
без стороннего софта не как.
еще есть измененный ssc клиет, который берет уникальный идентификатор винды и пищит его в логи, по которому можно забанить в самом античите. Увы для уникального бана в НонСтим надо использовать сторонний софт.

Добавлено (2008-05-23, 9:59 Am)
---------------------------------------------
в ПМ был вопрос по поводу реализации бана по маку.
Напишу ответ тут, по двум причинам:
1 Не влазию в лимит ПМ
2 Пригодится и другим.

В данный момент нет возможности реализовывать. (сразу замечу минус для тех кто будет сидеть за натом будет банить всех)
попробую описать принцип работы.
Надо амхх+вебсерер с каким либо скриптовым движком, который может использовать запуск локальных приложений.
на веб морде пишим скрипт, который запускает какое либо приложение, которое может определить мак адрес, на линуксе им может выступить arping (доступен по умолчанию только для рута и сервисов) в ответ он выдаст нам мак (читаем ман по его параметрам).
Собственно на самом амхх реализуем плагин который работает с сокетами, открываем 80 порт веб сервера, и отправляем стандартные заголовки http протокола. Получаем запрос типа http://mygame.server/testban/?ip=x.x.x.x
где x.x.x.x айпи клиента.
тут возможно ответвление. на два варианта.
1 сам скрипт на веб сервере проверяет валидность мак адреса и сообщает в ответ только чистый мак или нет.
2 проверка возлагается на сам скрипт в амхх, при этом веб сервер возвращает только мак.
Ну а дальше у все зависит от реализации.
В любом случаем необходима привязка к базам данных, так как писать в текстовый файл не имеет смысла. (т.к. запись будет идти не так часто, как проверка. А для выборки из большого числа больше подходит использование базы данных.

ЗЫ для модераторов, прошу не отделять сообщение в отдельную ветку, т.к. оно является логическим продолжением.

Добавлено (2008-05-23, 2:04 Pm)
---------------------------------------------
Да и в данный момент мак меняется очень легко).
Существует куча программ которые это делают, при чем они позиционируются не как крек софт, а наоборот как помощники ))

 
slogicДата: Пятница, 23.05.2008, 15:18:04 | Сообщение # 21
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (max_rip)
на веб морде пишим скрипт, который запускает какое либо приложение, которое может определить мак адрес

ну и для всех, кто за натом, будет один и тот же MAC - MAC роутера. или ты собираешься исполнять файл на стороне клиента?!
 
max_ripДата: Пятница, 23.05.2008, 17:25:38 | Сообщение # 22
Подполковник
Группа: Пользователи
Сообщений: 147
Репутация: 0
Статус: Не в сети
slogic,
Quote (max_rip)
...сразу замечу минус для тех кто будет сидеть за натом будет банить всех...


Сообщение отредактировал max_rip - Пятница, 23.05.2008, 17:25:58
 
slogicДата: Суббота, 24.05.2008, 16:10:06 | Сообщение # 23
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Я просто думал, что ты себе противоречишь, а это было типа предупреждение. Не понял.
 
makSuSДата: Воскресенье, 25.05.2008, 08:30:57 | Сообщение # 24
Подполковник
Группа: Пользователи
Сообщений: 111
Репутация: 0
Статус: Не в сети
а вот вам сумашедшая идея - вот C++ (вроде) код по удаленному определению MAC адреса. Можно ли его переделать под amxx, и сделать так, чтобы AMXx вообще банил не по IP/ID адресу, а по MAC адресу сетевой карты? %)

Для определения MAC-адреса удалённого компьютера можно использовать NetBios:

Code
NCB SNcb;     // Структура для работы с NetBios
UCHAR rc = 0;     //Код возврата  
UCHAR Status[256]; // Буфер для получения данных  
UCHAR HostName[]=_T("SomeHost"); // Имя удалённого компа  
BYTE MAC[6];    //Буфер для нашего MAC-адреса.  

memset( &SNcb, 0, sizeof(SNcb) );  
SNcb.ncb_command = NCBRESET;  
SNcb.ncb_lana_num = 0;  
rc=Netbios( &SNcb ); //Сбрасываем NetBios

//Если HostName вдруг больше 15 символов его надо обрезать.  
while( lstrlen(HostName) - 15)  
     lstrcat(HostName, " ");  

memset(&SNcb, 0, sizeof(NCB));  
SNcb.ncb_command = NCBASTAT;  
SNcb.ncb_buffer = (unsigned char*)Status;  
SNcb.ncb_length = 256;
lstrcpy((char*)SNcb.ncb_callname, HostName);  
SNcb.ncb_lana_num = 0;    //Сетевой адаптор по умалчанию  
rc = Netbios( &SNcb );  
if(rc==NRC_GOODRET) //Если всё ОК  
memcpy(MAC, Status, 6);

Declared in Nb30.h
Use Netapi32.lib

НО! На машине NetBios может быть и выключен. Тогда можно вытащить его из таблицы IPMAC если хост вообще использует IP-протокол. Технология следующая: мы посыалем хосту любой IP-пакет, например по UDP. Система обязательно широковещательным ARP-пакетом запросит его MAC-адрес и если получит, занесёт его в таблицу IPMAC. Откуда мы его и заберём. Абсолютно неважно, какой IP-based протокол будет использован, и будет ли он установлен и/или принят удалённым хостом. Важно лишь то, что система захочет отослать IP-пакет, а для этого она обязательно должна узнать его MAC.
Пример консольного приложения:

Code
//--------stdafx.h--------  
#include <stdio.h>
#include <windows.h>
#include <Winsock2.h>
//Use Ws2_32.lib  
#include <Iphlpapi.h>
//Use Iphlpapi.lib (in SDK)  
////====================  

////-------- cpp-файл ----------  

#include "stdafx.h"  
char ip[]="192.168.100.1";  

int main(int argc, char* argv[])  
{  
//Будем использовать сокеты  
     WSADATA WsaData;  
     DWORD _ip=inet_addr(ip);  
     if (WSAStartup(0x0202, &WsaData)==NULL)     
         printf("WSA Starup OK!\n");  

//Создаём UDP-сокет и отсылаем по нему любые данные  
     SOCKET udp_s;  
     SOCKADDR_IN udp_sin;  
     udp_s=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);  
     if(udp_s!=SOCKET_ERROR)  
     {  
         udp_sin.sin_family = AF_INET;  
         udp_sin.sin_port = htons(5232); //Шлём на любой порт.  
         udp_sin.sin_addr.s_addr = _ip;  
         if(sendto(udp_s, "TEST", 5, NULL, (SOCKADDR*)&udp_sin, sizeof(udp_sin))>0)  
         { //Пакет отослан. Вытаскиваем MAC-адрес из системы  
             MIB_IPNETTABLE * pIpNetTable = (MIB_IPNETTABLE *) new char[0xFFFF];  
             ULONG cbIpNetTable = 0xFFFF;  
             if (NO_ERROR == GetIpNetTable (pIpNetTable, &cbIpNetTable, TRUE))  
             {  
                 for (DWORD i = 0; i < pIpNetTable->dwNumEntries; i++)
                 {  
                     if(pIpNetTable->table[i].dwAddr==_ip&&pIpNetTable->table[i].dwType!=2)  
                     {  
                         printf("IP:%s MAC:%X-%X-%X-%X-%X-%X\n", ip,  
                    pIpNetTable->table[i].bPhysAddr[0],  
                    pIpNetTable->table[i].bPhysAddr[1],  
                    pIpNetTable->table[i].bPhysAddr[2],  
                    pIpNetTable->table[i].bPhysAddr[3],  
                    pIpNetTable->table[i].bPhysAddr[4],  
                    pIpNetTable->table[i].bPhysAddr[5]);  
                    delete[] pIpNetTable;  
                    closesocket(udp_s);  
                          WSACleanup();  
                          return 0;  
                     }  
              }  
              printf("MAC-address not found\n");  
              delete[] pIpNetTable;  
             }  
             else printf("ERROR Open IPMAC table\n");  
         }  
         else printf("Send data ERROR!\n");  

         closesocket(udp_s);  
     }  
     else printf("ERROR open socket\n");  

     WSACleanup();         //Освобождаем ресурсы  
     return 0;  
}

PS: Последний способ действует только для той подсети, где сам находишься. Если использовать HOST_IP из др. подсети, то в IPMAC таблице будет находится IP и MAC шлюза к HOST_IP.

PPS: MAC-адрес этто физический адрес устройства, и в общем случае
может иметь длинну отличную от 6 байт.

 
max_ripДата: Понедельник, 26.05.2008, 12:10:07 | Сообщение # 25
Подполковник
Группа: Пользователи
Сообщений: 147
Репутация: 0
Статус: Не в сети
лучше глянуть код arping.
 
IceManДата: Пятница, 01.08.2008, 12:36:01 | Сообщение # 26
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Не в сети
max_rip
отпишись пожалуйста в icq: 194199243 , для тебя есть кое-какое предложение.
 
mcdemonДата: Пятница, 01.08.2008, 16:09:38 | Сообщение # 27
Лейтенант
Группа: Пользователи
Сообщений: 71
Репутация: 0
Статус: Не в сети
slogic, каким образом будет мак адрес роутера баниться и вообще как он определится удаленно? amxx может отправить только мак адрес клиента
ты напутал ведь удаленно mac роутера не будет определяться его просто amxx скрипт берет с клиента
 
slogicДата: Пятница, 01.08.2008, 17:04:01 | Сообщение # 28
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
mcdemon, почитай, как ARP протокол работает. ты даже MAC компьютера из другого сегмента сети не узнаешь. а значит, да, наверное и не забанят мой роутер.
 
slogicДата: Пятница, 01.08.2008, 17:22:01 | Сообщение # 29
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (mcdemon)
ты напутал ведь удаленно mac роутера не будет определяться его просто amxx скрипт берет с клиента

AMXX скрипт не работает непосредственно с клиентом на таком уровне. Не знаю, откуда взялось слово "просто".
 
marikcoolДата: Суббота, 02.08.2008, 11:38:27 | Сообщение # 30
Подполковник
Группа: Пользователи
Сообщений: 139
Репутация: 1
Статус: Не в сети
с маком нереальная идея, да и мак менять можно без проблем.

у меня в голове есть вариант бана по стимайди.
то есть хексом правим стим.длл а именно то место которая возращает ностим серверу параметр стимайдп_пендинг.
делаем скрипт, и систему регистрации. чел регится создается кей в стиле мд5 хэш, потом тутже модифицируется эта стим.длл с этим хэшем-кеем и клиент должен скачать и себе его поставить. и кей в носится в базу.
потом дело за малым) пишем маленький плагин который считывает стимайди и проверяет есть ли он в базе.
генерить ключи будет бесполезно.

 
AMX Mod X Форум » Плагины » Поиск плагинов » Система банов в non-steam
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

AMX Mod X Russian Community © 2006-2024