From da433fa65cb403ef2cf335cec2dd9e5297f8e67c Mon Sep 17 00:00:00 2001 From: anten-ka Date: Sun, 8 Mar 2026 13:55:33 +0300 Subject: [PATCH] Add license key validation v1.1 --- warp.sh | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 4 deletions(-) diff --git a/warp.sh b/warp.sh index 318e47c..9fa6801 100644 --- a/warp.sh +++ b/warp.sh @@ -14,6 +14,12 @@ WARP_LOG="/var/log/warp-manager.log" BOT_PID_FILE="/var/run/warp_bot.pid" DEFAULT_PORT=40000 +VALID_KEYS=( + "WARP-PRO-2026-ALPHA" + "WARP-PRO-2026-BETA" + "WARP-PRO-2026-GAMMA" +) + RED='\033[0;31m'; GREEN='\033[0;32m'; CYAN='\033[0;36m' YELLOW='\033[1;33m'; MAGENTA='\033[0;35m'; WHITE='\033[1;37m' BLUE='\033[0;34m'; NC='\033[0m' @@ -22,6 +28,7 @@ SOCKS_PORT="" MY_IP="" BOT_TOKEN="" BOT_CHAT_ID="" +LICENSE_KEY="" # ─── Config ─────────────────────────────────────────────────── @@ -32,6 +39,7 @@ init_config() { SOCKS_PORT="40000" BOT_TOKEN="" BOT_CHAT_ID="" +LICENSE_KEY="" CONF fi source "$WARP_CONF" @@ -48,6 +56,49 @@ save_config_val() { source "$WARP_CONF" } +# ─── License ────────────────────────────────────────────────── + +is_valid_key() { + local k="$1" + for vk in "${VALID_KEYS[@]}"; do + [ "$k" = "$vk" ] && return 0 + done + return 1 +} + +check_license() { + local arg_key="${1:-}" + source "$WARP_CONF" 2>/dev/null + + if [ -n "${LICENSE_KEY:-}" ] && is_valid_key "$LICENSE_KEY"; then + return 0 + fi + + if [ -n "$arg_key" ] && is_valid_key "$arg_key"; then + save_config_val "LICENSE_KEY" "$arg_key" + LICENSE_KEY="$arg_key" + return 0 + fi + + echo "" + echo -e "${RED}╔══════════════════════════════════════════════════════════════╗${NC}" + echo -e "${RED}║ ⛔ ЛИЦЕНЗИОННЫЙ КЛЮЧ НЕДЕЙСТВИТЕЛЕН ║${NC}" + echo -e "${RED}╚══════════════════════════════════════════════════════════════╝${NC}" + echo "" + if [ -n "$arg_key" ]; then + echo -e " ${WHITE}Ключ ${YELLOW}${arg_key}${WHITE} не найден в базе.${NC}" + else + echo -e " ${WHITE}Для установки требуется лицензионный ключ.${NC}" + fi + echo "" + echo -e " ${CYAN}Использование:${NC}" + echo -e " ${WHITE}bash <(curl -sL ...) ${GREEN}ВАШ_КЛЮЧ${NC}" + echo "" + echo -e " ${WHITE}Получить ключ: ${CYAN}https://www.youtube.com/@antenkaru${NC}" + echo "" + exit 1 +} + # ─── Logging ────────────────────────────────────────────────── log_action() { @@ -921,9 +972,8 @@ run_startup() { printf "\r ${CYAN}[%d/%d]${NC} ${GREEN}✓${NC} Права root подтверждены \n" "$s" "$total" ((s++)) - printf " ${CYAN}[%d/%d]${NC} ${YELLOW}⏳${NC} Загрузка конфигурации..." "$s" "$total" - init_config - printf "\r ${CYAN}[%d/%d]${NC} ${GREEN}✓${NC} Конфигурация загружена \n" "$s" "$total" + printf " ${CYAN}[%d/%d]${NC} ${YELLOW}⏳${NC} Проверка лицензии..." "$s" "$total" + printf "\r ${CYAN}[%d/%d]${NC} ${GREEN}✓${NC} Лицензия активна \n" "$s" "$total" ((s++)) printf " ${CYAN}[%d/%d]${NC} ${YELLOW}⏳${NC} Проверка зависимостей..." "$s" "$total" @@ -968,5 +1018,5 @@ run_startup() { case "${1:-}" in --bot-daemon) init_config; bot_daemon ;; - *) run_startup ;; + *) init_config; check_license "${1:-}"; run_startup ;; esac