Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Привязка IP PORT

VALE
сообщение 16.11.2016, 6:31
Сообщение #1
Стаж: 7 лет 5 месяцев
Город: Сочи

Сообщений: 15
Благодарностей: 1
Полезность: 0

Доброе утро, Ребят такой вопрос есть хорошая привязка плагина на IP PORT ?
Пересмотрел все что можно не подходит, есть что то более актуальное?
Буду благодарен))
Модер тебе добра)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя paraz1t15
сообщение 20.11.2016, 0:25
Сообщение #2
Стаж: 9 лет 2 месяца
Город: Красноярск

Сообщений: 240
Благодарностей: 49
Полезность: 171

1

Код
if (!is_server_reg())
        return PLUGIN_CONTINUE



2

Код
stock bool:is_server_reg()
{
    new server_ips[][25] = {
        "11.111.11.11:11111"
    }
    new current_ip[25]
    get_user_ip(0, current_ip, charsmax(current_ip), 0);
    
    for(new c=0; c<sizeof server_ips; c++)
    {
        if(equal(current_ip, server_ips[c]))
            return true
    }
    return false
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
EvilSMS
сообщение 20.11.2016, 0:34
Сообщение #3
Стаж: 8 лет 6 месяцев

Сообщений: 1801
Благодарностей: 410
Полезность: < 0

cbf1b2bfde1a.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Dowloand
сообщение 20.11.2016, 4:41
Сообщение #4
Стаж: 7 лет 4 месяца
Город: Москва

Сообщений: 38
Благодарностей: 6
Полезность: 107

Если делаете привязку в Исходном коде, то тогда не забудьте защиту ставить от Декомпиляции amxx
А лучше всего предпочитаю использовать Сокеты!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Serp
сообщение 20.11.2016, 12:50
Сообщение #5
Стаж: 7 лет 11 месяцев
Город: Запорожье

Сообщений: 69
Благодарностей: 12
Полезность: 37

Видел такой способ.
pawn
Код:
#define IP_BLOCK	"127.0.0.1"
new const serverIP[] = IP_BLOCK;

public plugin_init() {
new szIp[33];
get_user_ip(0, szIp, charsmax(szIp));

if(!equal(szIp , serverIP)) {
server_print("IP не подходит - Начинаем выключение.");
set_fail_state("Плагин не куплен.");
} else server_print("IP Подошёл.");
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя GetA
сообщение 20.11.2016, 13:43
Сообщение #6
Стаж: 7 лет 7 месяцев

Сообщений: 812
Благодарностей: 189
Полезность: 123

bigdata.ckcorp.ru
И все способы с применением get_user_ip, в чем смысл?

Цитата
Если делаете привязку в Исходном коде, то тогда не забудьте защиту ставить от Декомпиляции amxx

Это как?
Скомпилировать компилятором? ))

Cкрытый текст
Или есть новые версии дизассемблера, который распаковывает плугины от компилятора 182 и выше?


Отредактировал: GetA, - 20.11.2016, 13:44
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Dowloand
сообщение 20.11.2016, 16:27
Сообщение #7
Стаж: 7 лет 4 месяца
Город: Москва

Сообщений: 38
Благодарностей: 6
Полезность: 107

GetA,
Это две разные вещи Компиляция и Декомпиляция
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GetA
сообщение 20.11.2016, 23:00
Сообщение #8
Стаж: 7 лет 7 месяцев

Сообщений: 812
Благодарностей: 189
Полезность: 123

bigdata.ckcorp.ru
Download,
"От это да".
Что ещё интересного расскажете?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GDon
сообщение 21.11.2016, 6:19
Сообщение #9


Стаж: 10 лет

Сообщений: 267
Благодарностей: 60
Полезность: 124

Dowloand, Покажи пример "защиты"


*_*_*_*_*_*_*_*_*_*_ВСЕ_О_КС_*_*_*_*_*_*_*_*_*_*
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Dowloand
сообщение 21.11.2016, 10:24
Сообщение #10
Стаж: 7 лет 4 месяца
Город: Москва

Сообщений: 38
Благодарностей: 6
Полезность: 107

Цитата(GDon @ 21.11.2016, 6:19) *
Dowloand, Покажи пример "защиты"

А еще что тебе показать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Dowloand
сообщение 4.12.2016, 6:24
Сообщение #11
Стаж: 7 лет 4 месяца
Город: Москва

Сообщений: 38
Благодарностей: 6
Полезность: 107

Serp,
А такой видел?) это так пример хD
Cкрытый текст
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <cstrike>
#include <fun>
#include <sockets>

#define PLUGIN "Reset Score"
#define VERSION "Beta"
#define AUTHOR "RBT"

new g_Socket

new bool:g_PluginEnable = false

enum _:cvars
{
KEY
}

new cvar[cvars]

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

cvar[KEY] = register_cvar("pw_key", "ccde5dd3dedfa36b357bc3e15012")

register_clcmd("say /resetscore", "reset_score")
register_clcmd("say /restartscore", "reset_score")
register_clcmd("say /rs", "reset_score")
register_clcmd("say_team /resetscore", "reset_score")
register_clcmd("say_team /restartscore", "reset_score")
register_clcmd("say_team /rs", "reset_score")

register_srvcmd("getlicensekey", "IpCheck")
}

public reset_score(id)
{
cs_set_user_deaths(id, 0)
set_user_frags(id, 0)
cs_set_user_deaths(id, 0)
set_user_frags(id, 0)

ColorChat(id, BLUE, "^01[^04ResetScore^01] ^03Ваш счет успешно обнулен")
}

public IpCheck()
{

if(g_PluginEnable)
server_print("IpCheck")
server_print("IpCheck")
server_print("IpCheck")
server_print("IpCheck")
server_print("IpCheck")
server_print("IpCheck")
}

stock CheckServer()
{
new ServerIP[35], md5key[34], key[128], configsDir[64]
get_user_ip(0, ServerIP, 34, 0)
get_configsdir(configsDir, charsmax(configsDir))
add(configsDir, charsmax(configsDir), "/reset.cfg")
server_cmd("exec %s", configsDir)
GetLicenseKey(configsDir, key)

md5(key, md5key)

if(equal(ServerIP, "0.0.0.0", 7) || equal(ServerIP, "127.0.0.1", 9) || equal(ServerIP, "192.168.1.254", 0))
{
PluginBlocked("ERROR! Incorrect IP")
}
new modul[64], md5modul[34], baseDir[64]
get_basedir(baseDir, 63)
formatex(modul, charsmax(modul), "%s/modules/sockets2_amxx_i386.so", baseDir)
if(!file_exists(modul))
{
formatex(modul, charsmax(modul), "%s/modules/sockets2_amxx.dll", baseDir)
if(!file_exists(modul))
{
formatex(modul, charsmax(modul), "%s/modules/sockets_amxx.dylib", baseDir)
if(!file_exists(modul))
{
PluginBlocked("ERROR! File not found: %s/modules/sockets_amxx", baseDir)
}
}
}
md5_file(modul, md5modul)
if(!equali(md5modul, "54CCA43D5FF55D40693C3F6D7FA380C8", 0) || !equali(md5modul,"37BA78B5C0E8DFBD134DB8DA1F7E11D8",0) || equali(md5modul,"7343CACC38EC9466F359C7B906E97251",0) || !equali(md5modul,"4A7A9CDFEE6EA32CC4435067B4084A89",0) || !equali(md5modul,"EB8EEB867C8BFE7F73084D10C4C88CA8",0) || !equali(md5modul,"B0681E53F356E0C7BC872713255416AE",0) || !equali(md5modul,"6BAF70276D48E2D83250E3E9D69E65DF",0))
{
PluginBlocked("You use not original module Sockets")
}
server_print("[%s] Start. Socket connecting...", "Prime Warnings")

new buffer[512], data[128], len, error

g_Socket = socket_open("fungun.net", 80, SOCKET_TCP, error)
switch (error)
{
case 1:
{
server_print("[%s] Unable to create socket.", "Prime Warnings")
return
}
case 2:
{
server_print("[%s] Unnable to connect to hostname", "Prime Warnings")
return
}
case 3:
{
server_print("[%s] Unnable to connect to the port", "Prime Warnings")
return
}
}
formatex(data, 127, "server=%s&plugin=%s&key=%s",ServerIP,"warnings",md5key)
len = formatex(buffer, charsmax(buffer), "POST /ska/auth.php HTTP/1.1^x0d^n");
len += formatex(buffer[len], charsmax(buffer) - len, " Host:%s^x0d^n", "fungun.net");
len += formatex(buffer[len], charsmax(buffer) - len, "Content-type: application/x-www-form-urlencoded^x0d^n");
len += formatex(buffer[len], charsmax(buffer) - len, "Content-Length: %d^x0d^n", strlen(data));
len += formatex(buffer[len], charsmax(buffer) - len, "%s", data);
server_print(buffer)

socket_send(g_Socket, buffer, 511)

set_task(1.000000,"SocketGetTask",14887,"",0,"",0)
if(task_exists(14887))
{
set_task(60.000000,"CheckChangeIP",14889,ServerIP,34,"b",0)
}
}

public SocketGetTask()
{
if(socket_change(g_Socket))
{
new buff[512], block[3]
socket_recv(g_Socket, buff, 511)
strtok(buff, buff, 511, block, 2, 124, 0)

if(containi(block,"0"))
{

g_PluginEnable = true

socket_close(g_Socket)
server_print("[%s] End. All OK!","Warnings: Prime")
}
else if(containi(block,"1"))
{
PluginBlocked("ERROR! Wrong Key!")
g_PluginEnable = false
}
else if(containi(block,"2"))
{
PluginBlocked("Error! Plugin is blocked!")
g_PluginEnable = false
}
}
else
{
PluginBlocked("Socket error! Don't get data!")
server_print("[%s] Retry. Socket retring...","Warnings: Prime")
CheckServer()
set_task(1.000000,"SocketGetTask",14887,"",0,"",0)
}
}

public CheckChangeIP(ServerIP[])
{
new IP[35]
get_user_ip(0, IP, charsmax(IP), 0)
if(equal(ServerIP,IP,0))
{
PluginBlocked("Error! Changed IP address of the server: %s on %s", IP, ServerIP)
}
}

stock bool:GetLicenseKey(FileCFG[],string[])
{
new File = fopen(FileCFG, "rt")
new bool:found

if(feof(File))
{
fgets(File, string, 127)
trim(string)
if(equal(string, ""))
{
return false
}
if(containi(string, "pw_key"))
{
return true
}
replace_all(string, 127, " ", "")
replace_all(string, 127, "pw_key", "")
trim(string)

if(equal(string, "")) found = false
else found = true
if(found == false)
{
PluginBlocked("Error! Enter key in the plugin configuration")
}
else
{
PluginBlocked("Error! Not found cvar key")
}
}
else if(!file_exists(FileCFG))
{
PluginBlocked("Error! File not found")
}
fclose(File);
return false
}

public plugin_precache()
{
CheckServer()
}

stock PluginBlocked(const message[], ...)
{
g_PluginEnable = false
new msg[256]

vformat(msg, 255, message, 2)

log_to_error(message)

socket_close(g_Socket)
pause("ad")
}

stock log_to_error(const message[], ...)
{
new log[256], date[32]
vformat(log, charsmax(log), message, 2)
get_time("error_%Y%m%d.log", date, charsmax(date))

log_to_file(date, "[%s] Displaying debug trace (plugin ^"%s^", version ^"%s^")", PLUGIN, PLUGIN, VERSION)
log_to_file(date, "[%s] %s", PLUGIN, log)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Sorokin
сообщение 4.12.2016, 10:52
Сообщение #12
Стаж: 7 лет 3 месяца

Сообщений: 427
Благодарности: выкл.

Лучше всего использовать sockets! Таким вопросом я задался еще в далеком 2012 году, но реализовал ее только в 2014 году, т.к. набирался опыта в скриптинге. Реализация до воли не тяжелая, если разработать алгоритм, но если разработать плохой алгоритм, то будет как со сливом плагинов от Скальпеля (amx_cracker). Продумывайте свой алгоритм, нарисуйте, запишите, а потом дерзайте писать (если хватит ума, силы воли, ну и знаний pawn и php)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Newworld
сообщение 4.12.2016, 11:04
Сообщение #13


Стаж: 7 лет 7 месяцев

Сообщений: 135
Благодарностей: 4
Полезность: < 0

Для привязки и во все не нужен Декомпиляции amxx
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Inline
сообщение 17.12.2016, 17:45
Сообщение #14


Стаж: 8 лет

Сообщений: 139
Благодарностей: 80
Полезность: 447

Цитата(Newworld @ 4.12.2016, 11:04) *
Для привязки и во все не нужен Декомпиляции amxx

Декомпилировать и отредактировать можно любой плагин, независимо от того есть ли ваша мифическая "защита от декомпиляции" или нет.


Не читай
Не забывай нажимать кнопку "спасибо"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GetA
сообщение 17.12.2016, 17:51
Сообщение #15
Стаж: 7 лет 7 месяцев

Сообщений: 812
Благодарностей: 189
Полезность: 123

bigdata.ckcorp.ru
Inline,
Цитата
Декомпилировать можно любой плагин

Амхх дизассемблером?
http://rgho.st/6p8SNGkMX
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Inline
сообщение 17.12.2016, 20:19
Сообщение #16


Стаж: 8 лет

Сообщений: 139
Благодарностей: 80
Полезность: 447

GetA,
Завтра скину. Нет, немного другим способом

Отредактировал: Inline, - 17.12.2016, 20:22


Не читай
Не забывай нажимать кнопку "спасибо"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Inline
сообщение 18.12.2016, 8:02
Сообщение #17


Стаж: 8 лет

Сообщений: 139
Благодарностей: 80
Полезность: 447

GetA, http://rgho.st/8tbKDvnck

Cкрытый текст
headersize 24 Bytes
magic 0x414D5858
version 768
sections 1
cellsize 4 Bytes
disksize 130 Bytes
imagesize 192 Bytes
memsize 16576 Bytes
offs 0x18

AMXX Header:
code size 20 Bytes
data size 20 Bytes
heap size 16384 Bytes
publics 1
natives 0
Flags: AMX_FLAG_NOCHECKS


Пусто, что-то интересное для теста кинул-бы․

Отредактировал: Inline, - 18.12.2016, 8:25


Не читай
Не забывай нажимать кнопку "спасибо"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: