MENU

宝塔面板v6.X破解思路&过程&一键安装SHELL脚本

• November 24, 2018 • Read: 791 • 工具软件阅读设置

原文地址:https://madevo.net/bt-panel-v6-1-2-crack-think-setup-shell.html

测试正式版v6.6.1可用,其中宝塔数据同步工具无法使用,我现在也不知道怎么改,日后再说吧~

**

引子

**
不得不吐槽一下宝塔的定价策略,作为非专业向面板定价,单IP永久授权原价1388。20IP永久授权原价6588,折后4388,折算下来每台200出头,但十分不方便,团出来后只能由“团长”代绑定IP,修改IP复杂。作为经常换VPS玩儿的折腾党来说,入正之后,首先单IP不能完全实现需求,其次改绑IP需要频繁联系“团长”,次数多了人家肯定不愿意。

看这个IP策略,宝塔在向专业性面板(供给公司)方向转型,在目前国内环境下这个过程肯定会比较漫长,但不得不说宝塔面板是一款非常不错的国产面版,之前还有人跟我争论说

你都用Linux了还不手敲代码,用什么可视化管理面板

首先,作为爱折腾的搞机党,我不想把精力放在环境配置等一系列问题上。其次,那你去手工编译环境啊..都在用命令行面板,命令行控制面板不也是控制面板吗?

不过是保守派和维新派的争论罢了,历史自然会做出评判。

总而言之,宝塔面板确实对运维效率的提高做出了很大的贡献,在稳定的工作环境下or宝塔提供给个人开发者比较优惠的定价策略后,一定会付费支持他们。

破解思路

破解思路是由 @king51提出并实现的,该dalao盯着宝塔不放,首次放出最完美的5.9专业版破解思路,导致宝塔官方第一次感受到了被破解的压力,将付费插件全部改由云端获取。然而...大佬还是找出了漏洞并且进行了实践,依旧完美破解。该思路其实对比5.9版,更简洁,但想到想到并实现这个思路比较难

破解思路:

修改插件过期时间
破解时间
在 /class/panelPlugin.py第242行后添加两行代码:

for softInfo in softList['list']:
softInfo['endtime'] = 0

该段代码将插件过期时间设置为无限,就可以从云端获取插件列表并下载了

本地破解插件验证
插件下载下来后其实是只有插件的运行环境等文件的,功能代码文件 Plugin_main.py 内部存在验证,会提示”您未购买或授权已到期!“ 例如 宝塔任务管理器 插件 的 task_manager_main.py 文件代码:
请输入图片描述
本地破解
需要从正版已安装插件中替换该文件,并做一些修改. 正版插件中的代码开头如下:
请输入图片描述
本体破解
注意上图红框内的表名,和未破解完成的插件表名不同,需要做一个手动修改:
图
保存并上传后,就可以使用插件了!

备注: 上述修改仅为示例,部分插件内部还存在其他验证,在我做的SHELL脚本中已全部成功修改并通过测试。

SHELL脚本

伟大的哲学家 沃兹基梭德 曾经说过

要想Shell跑的好,见程序就写不能少

Shell Project: https://github.com/madlifer/btpanelv6.1_crack

使用方法

wget -O crack.sh https://git.io/fxiDS && bash crack.sh

源代码

#!/bin/bash
Green_font="\033[32m" && Yellow_font="\033[33m" && Red_font="\033[31m" && Font_suffix="\033[0m"
Info="${Green_font}[Info]${Font_suffix}"
Error="${Red_font}[Error]${Font_suffix}"
Important="${Red_font}[选择前须知:]${Font_suffix}"
PANEL_DIR=/www/server/panel
PLUGIN_RETURN=在面板安装插件完成之后,从下表选择你要破解的插件:
MAIN_RETURN=${Red_font}[宝塔面板v6.1.2破解脚本]${Font_suffix}

git_check(){
    GIT_V=`git --version | grep -q version`
if [ $? = 0 ]; then
    echo -e "${Info} Git已安装,开始下一步操作!"
else
    echo -e "${Error} 未安装Git,开始安装Git!"
    check_system
    install_git
fi
}

check_system() {
    if grep -Eqii "CentOS" /etc/issue || grep -Eq "CentOS" /etc/*-release; then
        DISTRO='CentOS'
        PM='yum'
    elif grep -Eqi "Red Hat Enterprise Linux Server" /etc/issue || grep -Eq "Red Hat Enterprise Linux Server" /etc/*-release; then
        DISTRO='RHEL'
        PM='yum'
    elif grep -Eqi "Aliyun" /etc/issue || grep -Eq "Aliyun" /etc/*-release; then
        DISTRO='Aliyun'
        PM='yum'
    elif grep -Eqi "Debian" /etc/issue || grep -Eq "Debian" /etc/*-release; then
        DISTRO='Debian'
        PM='apt'
    elif grep -Eqi "Ubuntu" /etc/issue || grep -Eq "Ubuntu" /etc/*-release; then
        DISTRO='Ubuntu'
        PM='sudo'
    else
        DISTRO='unknow'
    fi
}

install_git(){
    case ${PM} in
        yum)
            yum -y install sudo
            yum -y update 
            sudo yum -y install git
        ;;
        apt)
            apt -y install sudo
            sudo apt -y update
            sudo apt-get -y install git
        ;;
        sudo)
            sudo apt -y update
            sudo apt-get -y install git
        ;;
        *)
            echo -e "${Error} 不支持您的系统 !"
        ;;
    esac
    echo -e "${Info} Git安装完成 !"
}

install_bt_panel_pro(){
    curl http://download.bt.cn/install/update6.sh|bash
    echo -e "${Info} 宝塔专业版安装完成,正在进行下一步操作!"
}

get_crack_file(){
    git clone https://github.com/madlifer/btpanelv6.1_crack.git
}

copy_class_file(){
    cp -pf /root/btpanelv6.1_crack/panelPlugin.py ${PANEL_DIR}/class/panelPlugin.py
    echo -e "${Info} 复制Class文件完成,正在进行下一步操作!"
}

restart_btpanel(){
    /etc/init.d/bt restart
    echo -e "${Info} 重启宝塔面板完成,正在进行下一步操作!"
}

install_tamper_proof(){
    cp -pf /root/btpanelv6.1_crack/tamper_proof_main.py ${PANEL_DIR}/plugin/tamper_proof/tamper_proof_main.py
    PLUGIN_RETURN=${Red_font}[网站防篡改程序]${Font_suffix}破解完成,继续破解或返回主菜单: && plugin_choose
}

install_btwaf_httpd(){
    cp -pf /root/btpanelv6.1_crack/btwaf_httpd_main.py ${PANEL_DIR}/plugin/btwaf_httpd/btwaf_httpd_main.py
    PLUGIN_RETURN=${Red_font}[Apache防火墙]${Font_suffix}破解完成,继续破解或返回主菜单: && plugin_choose
}

install_total_main(){
    cp -pf /root/btpanelv6.1_crack/total_main.py ${PANEL_DIR}/plugin/total/total_main.py
    PLUGIN_RETURN=${Red_font}[网站监控报表]${Font_suffix}破解完成,继续破解或返回主菜单: && plugin_choose
}

install_btwaf(){
    cp -pf /root/btpanelv6.1_crack/btwaf_main.py ${PANEL_DIR}/plugin/btwaf/btwaf_main.py
    PLUGIN_RETURN=${Red_font}[Nginx防火墙]${Font_suffix}破解完成,继续破解或返回主菜单: && plugin_choose
}

install_load_leveling(){
    cp -pf /root/btpanelv6.1_crack/load_leveling_main.py ${PANEL_DIR}/plugin/load_leveling/load_leveling_main.py
    PLUGIN_RETURN=${Red_font}[宝塔负载均衡]${Font_suffix}破解完成,继续破解或返回主菜单: && plugin_choose
}

install_masterslave(){
    cp -pf /root/btpanelv6.1_crack/masterslave_main.py ${PANEL_DIR}/plugin/masterslave/masterslave_main.py
    PLUGIN_RETURN=${Red_font}[MYSQL主从复制]${Font_suffix}破解完成,继续破解或返回主菜单: && plugin_choose
}

install_task_manager(){
    cp -pf /root/btpanelv6.1_crack/task_manager_main.py ${PANEL_DIR}/plugin/task_manager/task_manager_main.py
    PLUGIN_RETURN=${Red_font}[任务管理器]${Font_suffix}破解完成,继续破解或返回主菜单: && plugin_choose
}

install_rsync(){
    cp -pf /root/btpanelv6.1_crack/rsync_main.py ${PANEL_DIR}/plugin/rsync/rsync_main.py
    PLUGIN_RETURN=${Red_font}[数据同步工具]${Font_suffix}破解完成,继续破解或返回主菜单: && plugin_choose
}

del_crack_file(){
    rm -rf /root/btpanelv6.1_crack
    MAIN_RETURN=${Red_font}[删除破解包]${Font_suffix}操作已完成。
}

setup(){
    git_check
    install_bt_panel_pro
    get_crack_file
    copy_class_file
    restart_btpanel
    MAIN_RETURN=${Red_font}[安装前准备]${Font_suffix}操作已完成。
    main
}

plugin_choose(){
clear
echo -e "${Green_font}
#====================================================
# ${Important} 必须先在面板成功安装插件才能进行破解。
#====================================================
# ${PLUGIN_RETURN}${Green_font}
#====================================================
#          1.网页防篡改程序
#          2.Apache防火墙
#          3.网站监控报表
#          4.Nginx防火墙
#          5.宝塔负载均衡
#          6.MYSQL主从复制
#          7.任务管理器
#          8.数据同步工具
#          9.返回主菜单
#====================================================
${Font_suffix}
${Font_suffix}"

read -p "输入数字以选择:" choose_function

while [[ ! "${choose_function}" =~ ^[1-9]$ ]]
    do
        echo -e "${Error} 无效输入"
        echo -e "${Info} 请重新选择" && read -p "输入数字以选择:" choose_function
    done

if [[ "${choose_function}" == "1" ]]; then
    install_tamper_proof
elif [[ "${choose_function}" == "2" ]]; then
    install_btwaf_httpd
elif [[ "${choose_function}" == "3" ]]; then
    install_total_main
elif [[ "${choose_function}" == "4" ]]; then
    install_btwaf
elif [[ "${choose_function}" == "5" ]]; then
    install_load_leveling
elif [[ "${choose_function}" == "6" ]]; then
    install_masterslave
elif [[ "${choose_function}" == "7" ]]; then
    install_task_manager
elif [[ "${choose_function}" == "8" ]]; then
    install_rsync
elif [[ "${choose_function}" == "9" ]]; then
    main
fi
}

main(){
clear
echo -e "${Green_font}
#=======================================
# Name:         bt-6.1-crack
# Project:      https://git.io/fxiwt
# requirement:  bt v6.1 free version
# Version:      0.0.1
# Author:       madlifer
# Thanks:       @king51
# Copyright:    https://madevo.net
#=======================================
${Font_suffix}"

echo -e "${MAIN_RETURN}"
echo -e "1.安装前准备\n2.进行安装\n3.删除破解包\n4.退出脚本"
read -p "输入数字以选择:" function

while [[ ! "${function}" =~ ^[1-4]$ ]]
    do
        echo -e "${Error} 无效输入"
        echo -e "${Info} 请重新选择" && read -p "输入数字以选择:" function
    done

if [[ "${function}" == "1" ]]; then
    setup
elif [[ "${function}" == "2" ]]; then
    plugin_choose
elif [[ "${function}" == "2" ]]; then
    del_crack_file
else
    clear
    exit 1
fi
}

main