Привязка IP PORT |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
Привязка IP PORT |
VALE |
16.11.2016, 6:31
Сообщение
|
Доброе утро, Ребят такой вопрос есть хорошая привязка плагина на IP PORT ?
Пересмотрел все что можно не подходит, есть что то более актуальное? Буду благодарен)) Модер тебе добра) |
|
|
|
paraz1t15 |
20.11.2016, 0:25
Сообщение
|
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
Сообщение
|
|
|
|
|
Dowloand |
20.11.2016, 4:41
Сообщение
|
Если делаете привязку в Исходном коде, то тогда не забудьте защиту ставить от Декомпиляции amxx
А лучше всего предпочитаю использовать Сокеты! |
|
|
|
Serp |
20.11.2016, 12:50
Сообщение
|
Видел такой способ.
pawn Код:
#define IP_BLOCK "127.0.0.1" |
|
Поблагодарили 1 раз
|
|
GetA |
20.11.2016, 13:43
Сообщение
|
И все способы с применением get_user_ip, в чем смысл?
Цитата Если делаете привязку в Исходном коде, то тогда не забудьте защиту ставить от Декомпиляции amxx Это как? Скомпилировать компилятором? )) Cкрытый текст Или есть новые версии дизассемблера, который распаковывает плугины от компилятора 182 и выше?
Отредактировал: GetA, - 20.11.2016, 13:44
|
|
|
|
Dowloand |
20.11.2016, 16:27
Сообщение
|
|
|
GetA |
20.11.2016, 23:00
Сообщение
|
Download,
"От это да". Что ещё интересного расскажете? |
|
|
|
GDon |
21.11.2016, 6:19
Сообщение
|
|
*_*_*_*_*_*_*_*_*_*_ВСЕ_О_КС_*_*_*_*_*_*_*_*_*_*
|
|
|
Dowloand |
21.11.2016, 10:24
Сообщение
|
|
|
Dowloand |
4.12.2016, 6:24
Сообщение
|
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
Сообщение
|
Лучше всего использовать sockets! Таким вопросом я задался еще в далеком 2012 году, но реализовал ее только в 2014 году, т.к. набирался опыта в скриптинге. Реализация до воли не тяжелая, если разработать алгоритм, но если разработать плохой алгоритм, то будет как со сливом плагинов от Скальпеля (amx_cracker). Продумывайте свой алгоритм, нарисуйте, запишите, а потом дерзайте писать (если хватит ума, силы воли, ну и знаний pawn и php)
|
|
|
|
Newworld |
4.12.2016, 11:04
Сообщение
|
|
Для привязки и во все не нужен Декомпиляции amxx
|
|
|
Inline |
17.12.2016, 17:45
Сообщение
|
|
Для привязки и во все не нужен Декомпиляции amxx Декомпилировать и отредактировать можно любой плагин, независимо от того есть ли ваша мифическая "защита от декомпиляции" или нет. Не читай Не забывай нажимать кнопку "спасибо" |
|
|
GetA |
17.12.2016, 17:51
Сообщение
|
|
|
Inline |
17.12.2016, 20:19
Сообщение
|
|
Не читай Не забывай нажимать кнопку "спасибо" |
|
|
Inline |
18.12.2016, 8:02
Сообщение
|
|
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
Не читай Не забывай нажимать кнопку "спасибо" |
|
|