站点图标 Linux-技术共享

WHMCS配合SOLUSVM部署一个SolusVM的伪授权

这是本人修改过的 SolusVM 伪站源代码,在原基础上修改 key 类型为 RS 企业授权。(可以更改)
支持正版,请购买官方 key,反正也不贵。
NmU4Mj-c3NDFm-ZWVhM2-Y5YTVh
也可以直接只用本站的伪授权hosts

SolusVM 伪授权节点1
139.28.235.38 soluslabs.com
139.28.235.38 www.soluslabs.com
139.28.235.38 licensing1.soluslabs.net
139.28.235.38 licensing2.soluslabs.net
139.28.235.38 licensing3.soluslabs.net
139.28.235.38 licensing4.soluslabs.net
139.28.235.38 licensing5.soluslabs.net
139.28.235.38 licensing6.soluslabs.net

SolusVM 伪授权节点2
15.235.185.116 soluslabs.com
15.235.185.116 www.soluslabs.com
15.235.185.116 licensing1.soluslabs.net
15.235.185.116 licensing2.soluslabs.net
15.235.185.116 licensing3.soluslabs.net
15.235.185.116 licensing4.soluslabs.net
15.235.185.116 licensing5.soluslabs.net
15.235.185.116 licensing6.soluslabs.net
15.235.185.116 licensing7.soluslabs.net

SolusVM 伪授权节点3
192.99.104.119 soluslabs.com
192.99.104.119 www.soluslabs.com
192.99.104.119 licensing1.soluslabs.net
192.99.104.119 licensing2.soluslabs.net
192.99.104.119 licensing3.soluslabs.net
192.99.104.119 licensing4.soluslabs.net
192.99.104.119 licensing5.soluslabs.net
192.99.104.119 licensing6.soluslabs.net


文件目录树

[root@DT_Node-15_235_185_116 /data/wwwroot/soluslabs.com]# tree
.
`-- clients
`-- modules
`-- servers
`-- licensing
|-- clean.php
|-- licensekey_server.log
`-- slbs_verify_license.php

4 directories, 3 files
[root@DT_Node-15_235_185_116 /data/wwwroot/soluslabs.com]#
slbs_verify_license.php文件内容

<?php
require "clean.php";
if(isset($_POST["nodes"]) && isset($_POST["licensekey"]) && isset($_POST["domain"]) && isset($_POST["ip"]) && isset($_POST["dir"])){
$returnarray = array( "hash" => '',
"hash2" => '',
"status" => 'Active',
//"productid" => 20, //SolusVM Enterprise (NOC)
//"productid" => 21, //SolusVM Enterprise (Full)
"productid" => 22, //SolusVM Enterprise (RS)
//"productid" => 23, //SolusVM Enterprise Slave Only (RS)
//"productid" => 24, //SolusVM Developer License
"checkDate" => date("Y-M-D"),
"companyname" => "ABC 专用 SolusVM 授权验证破解",
"email" => "admin@abc.def",
"nextduedate" => (date("Y") + 100) . "-12-31",
//extduedate" => "2099-10-25",
"validip" => "192.99.104.100",
"configoptions" => "Slaves=9999|Mini Slaves=9999|Micro Slaves=9999"
);
$data = $Crack->LicenseEncode($returnarray);
echo($data);
//DEBUG
//file_put_contents("test.txt", json_encode($_POST));
file_put_contents("licensekey_server.log",date('Y-m-d H:i:s').": ".json_encode($_POST).PHP_EOL, FILE_APPEND);//追加日志
}else{
echo("No input");
}
clean.php文件内容

<?php
$Crack = new Crack();
class Crack {
private $_s_C_OOO_o01 = "ypO%_Y/y0#rY@KFi==@65%swYskCaCTk-52#*StP6HCsrwP!tB";
private $_s_C_OOO_o02 = "MM=co=_prb+;XyuHkHfNtyWy/y@/FzcofZ9HqjQ9?XxSb96a.d";
private $_s_C_OOO_o03 = "31m*R*Z!zmnDjdqovF8Wyq1-LZUAFohEKqn652kM.FGykJF7LT";
private $_s_C_OOO_o04 = "UF*zssdx8E9Q7+tzZ%*Y#j2=/FFZOekUr1BXB6OANpO1-ivAOm";
private $_s_C_OOO_o05 = 30;
private $_s_C_OOO_o06 = "+";
private $_s_C_OOO_o07 = 30;
private $_s_C_OOO_o08 = "(";
private $_s_C_OOO_o09 = "=============================== START KEY DATA =================================\n";
private $_s_C_OOO_o10 = "\n================================ END KEY DATA ==================================";
public function LicenseEncode($result) {
$resulttraw = serialize($result);
$resulttraw = base64_encode($resulttraw);
$md5Hash = md5($resulttraw . $result['checkDate'] . $this->_s_C_OOO_o04);
$data = $md5Hash.$resulttraw;
$md5Hash = md5(strrev($data) . $this->_s_C_OOO_o03);
$data = $md5Hash.strrev($data);
$data = $this->LicenseEncodePart($data, $this->_s_C_OOO_o01);
$data = strrev($data);
$data = gzdeflate($data);
$data = convert_uuencode($data);
$data = strrev($data);
$data = $this->LicenseEncodePart($data, $this->_s_C_OOO_o02);
$data = strtoupper($data);
$data = wordwrap($data, 18, "+", true);
$data = wordwrap($data, 348, "(", true);
$data = wordwrap($data, 80, "\n", true);
$data = $this->_s_C_OOO_o09 . $data;
$data = $data . $this->_s_C_OOO_o10;
return $data;
}

private function LicenseEncodePart($string, $key) {
$key = sha1($key);
$strLen = strlen($string);
$keyLen = strlen($key);
$i = 0;
while($i < $strLen) {
$ordStr = ord(substr($string, $i, 1));
if($j == $keyLen) {
$j = 0;
}
$ordKey = ord(substr($key, $j, 1));
$j++;
$hash .= strrev(base_convert(dechex($ordStr + $ordKey), 16, 36));
$i += 1;
}
return $hash;
}
}

退出移动版