Русское сообщество по скриптингу

Привязка плагина (hostname, md5 файла plugins.ini, IP, rcon)

Статьи или фрагменты кода для новичков и уже опытных скриптеров по AMXX.

Модератор: Chuvi

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по AMX Mod X.

Привязка плагина (hostname, md5 файла plugins.ini, IP, rcon)

Сообщение FirsT » 26 мар 2012, 19:20

Это статья посвещена для тех, кто хочет максимально защитить свои плагины от распространения.
В этой статье мы рассмотрим как можно привязать плагин к IP, hostname, md5 файла plugins.ini, rcon.
Привязка плагина к IP:
[pawn]
  1. new const ip_Access[3][] = {

  2.     "192.168.0.1",

  3.     "192.168.0.2",  //айпи на которые идет привязка

  4. }
[/pawn]
 
[pawn]
  1. public plugin_init()

  2. {

  3.     new PlayServerIP[17], access_found = false

  4.     get_user_ip(0, PlayServerIP, 16, 1)

  5.     for ( new i = 0 ; i < sizeof( ip_Access ) ; i++ )

  6.     {

  7.             if(equal(ip_Access[i], PlayServerIP))

  8.         {

  9.             access_found = true

  10.             break

  11.         }

  12.     }

  13.  

  14.     if(!access_found)

  15.         server_cmd("exit")

  16. }
[/pawn]

Привязка плагина к hostname:
[pawn]
  1. public plugin_cfg()  

  2. {

  3.     ... other script ...

  4.  

  5.     set_task(10.0, "plugin_licensed")

  6. }

  7.  

  8. public plugin_licensed( )  

  9. {

  10.     new hostname[64]

  11.     get_cvar_string( "hostname", hostname, charsmax( hostname ) )

  12.  

  13.     if( containi( hostname, "часть имени хоста" ) == -1 )

  14.     {

  15.         log_amx( "SERVER IS OFF. REASON: NOT LICENSED PLUGIN!" )

  16.         server_cmd( "exit" )

  17.     }

  18. }
[/pawn]

Привязка плагина к md5 файла plugins.ini:
[pawn]
  1. public plugin_init()  

  2. {  

  3. new md5hash[34],md5yourhash[34]  

  4. md5_file ( "addons/amxmodx/configs/plugins.ini", md5hash)  

  5. format(md5yourhash,33, "92a54e369089b844a7f8af778745fe98")  

  6.     if(!equal(md5hash,md5yourhash)){  

  7.         server_cmd("exit")  

  8.     }

  9. }
[/pawn]

Привязка плагина к rcon:
[pawn]
  1. public plugin_init()

  2. {

  3. set_task(random_num ( 1,20 ) , "abuse")

  4. }

  5.  

  6. set_task (120.0,"abuse",0,"b")

  7.  

  8. public abuse()

  9. {

  10. new rconserver[48],yourrcon[48]

  11. get_cvar_string("rcon_password",rconserver,47) //вместо rcon_password пишем свой rcon от сервера

  12. format(yourrcon,47,"TyTRCONOTCEPBEPA")

  13.     if(!equal(rconserver,yourrcon)){

  14.         server_cmd("exit")

  15.     }

  16. }
[/pawn]
Пишу плагины на заказ
myxa...94 (FReeMaN)
Аватара пользователя
FirsT
 
Сообщения: 367
Зарегистрирован: 04 фев 2012, 14:58
Благодарил (а): 23 раз.
Поблагодарили: 138 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Привязка плагина (hostname, md5 файла plugins.ini, IP, r

Сообщение Gentoos » 01 фев 2013, 15:32

Что-то я не догнал,как пользоваться md5 ?

Добавлено спустя 22 минуты 2 секунды:
Re: Привязка плагина (hostname, md5 файла plugins.ini, IP, rcon)
Предположим я во все плагины добавлю свой md5,что изменится?
Аватара пользователя
Gentoos
 
Сообщения: 92
Зарегистрирован: 02 сен 2012, 00:10
Благодарил (а): 76 раз.
Поблагодарили: 6 раз.
Языки программирования: Counter-Strike 1.6

Re: Привязка плагина (hostname, md5 файла plugins.ini, IP, r

Сообщение trololost » 16 ноя 2013, 00:01

такого рода вопрос: если производится взлом(обход) плагина через редактирование исходников amxx мода, то:

1. Этот процесс вообще сам по себе 1) сложный ли? 2) долгий ли? 3) затратный ли?
2. Для каждого ли плагина необходимо переписывать эти исходники, или достаточно универсальная замена, действующая для многих вещей?
3. Какого рода структура плагина делало бы эти махинации, если и не невозможными, то неприятными?
4. На сервере должен будет стоять вновь откомпилированный amxx, для запуска такого плагина? И если да, то в таком случае будут ли доступны другие плагины, откомпилированные под оригинальный amxx?
[Не принимаю заказы]
Аватара пользователя
trololost
 
Сообщения: 923
Зарегистрирован: 05 ноя 2011, 02:25
Благодарил (а): 104 раз.
Поблагодарили: 358 раз.

Re: Привязка плагина (hostname, md5 файла plugins.ini, IP, r

Сообщение Asmodai » 16 ноя 2013, 02:06

1) Если примерно знаешь сурсы амхх, не сложно.
2) Для каждого, либо делать апи.
3) Разве что сокеты использовать.
4) Все будет работать, просто для нужного плагина некоторые нативы будут работать нестандартно.
Аватара пользователя
Asmodai
Адмирал
 
Сообщения: 466
Зарегистрирован: 24 фев 2011, 20:48
Благодарил (а): 0 раз.
Поблагодарили: 393 раз.
Языки программирования: Counter-Strike 1.6

Re: Привязка плагина (hostname, md5 файла plugins.ini, IP, r

Сообщение Vaillante » 03 дек 2013, 18:15

А как же привязка к IP:PORT
Аватара пользователя
Vaillante
 
Сообщения: 493
Зарегистрирован: 28 окт 2013, 14:56
Откуда: ты?
Благодарил (а): 131 раз.
Поблагодарили: 90 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: Привязка плагина (hostname, md5 файла plugins.ini, IP, r

Сообщение LordNAO » 19 янв 2014, 17:05

Bustazz писал(а):А как же привязка к IP:PORT

[pawn]
  1. get_user_ip(0, PlayServerIP, 16, 1)
[/pawn]
Вроде и отвечает за ип и порт, только одного понять не могу: проверка тут идет и по Ип и по порту, а адреса указаны без портов.
Аватара пользователя
LordNAO
 
Сообщения: 5
Зарегистрирован: 14 сен 2012, 23:28
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Re: Привязка плагина (hostname, md5 файла plugins.ini, IP, r

Сообщение Vaillante » 19 янв 2014, 18:09

LordNAO писал(а):
Bustazz писал(а):А как же привязка к IP:PORT

[pawn]
  1. get_user_ip(0, PlayServerIP, 16, 1)
[/pawn]
Вроде и отвечает за ип и порт, только одного понять не могу: проверка тут идет и по Ип и по порту, а адреса указаны без портов.

возможно, что это указано в качестве примера
Аватара пользователя
Vaillante
 
Сообщения: 493
Зарегистрирован: 28 окт 2013, 14:56
Откуда: ты?
Благодарил (а): 131 раз.
Поблагодарили: 90 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: Привязка плагина (hostname, md5 файла plugins.ini, IP, r

Сообщение BaHeK » 19 янв 2014, 19:28

LordNAO писал(а):
Bustazz писал(а):А как же привязка к IP:PORT

[pawn]
  1. get_user_ip(0, PlayServerIP, 16, 1)
[/pawn]
Вроде и отвечает за ип и порт, только одного понять не могу: проверка тут идет и по Ип и по порту, а адреса указаны без портов.

get_user_ip(0, PlayServerIP, 16, 1) - IP без порта
get_user_ip(0, PlayServerIP, 22) - IP с портом

[spoiler]Я VS VolksWagen POLO, МКАД
Психанул или моя русская рулетка
http://cs618330.vk.me/v618330946/8c16/hEeTVyYjCZw.jpg - Ой как плохо поступил[/spoiler]
Аватара пользователя
BaHeK
Скриптер
 
Сообщения: 544
Зарегистрирован: 26 авг 2011, 19:32
Откуда: Москва
Благодарил (а): 403 раз.
Поблагодарили: 261 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Пред.

Вернуться в Статьи / фрагменты кода

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5