锐速授权PHP版本源码
2016年12月22日10:20:24 已经更新:Python/Nodejs/JAVA 源码。
生成锐速授权文件!!
PHP源码
目前使用比较多的一种。
新建apx.php,写入以下代码:
<?php if ($argc < 4) { echo "Usage: php " . $argv[0] . " mac expireYear bandwidth, Bandwidth=0 means unlimited.\nExample: php " . $argv[0] . " 04:a0:67:a1:05:0b 2999 0 \n"; die; } $lic_tpl = 'b226bc274e220f53e22d863a1ec913dea6961bd046d034e88818e68d260d781345298b8d3b11e00b5061045667c12af4982992ab86ee7a4f84c1ef83020a1adc[serial]c81cb3b404eab69f59993fbf62bd373a[date]0663cea3f326[bw]a366445113ecf74205e40af32cb30c5342cc5ebd981f7e02a9326f3823e8304e4d20f942f20bdfbeaeeff843'; // month/date base: FA43 now 0663 => 1231 we do not change it $date_base = 16245; $bw_base = 3812869942; $mac = $argv[1]; $date = intval($argv[2]); $bw = intval($argv[3]); $mac = explode(':', $mac); $mac_res = array(); for ($i = 0; $i < 16; $i++) { if ($i < 6) { $mac_res[$i] = intval($mac[$i], 16) + $i; } else { $mac_res[$i] = $mac_res[$i % 6] + $i; } } $serial = ''; for ($i = 0; $i < 8; $i++) { $serial .= sprintf('%02X', ($mac_res[$i] + $mac_res[$i + 8]) % 256); } echo 'SerialNo:' . $serial . ' '; $lic = ''; $rd = array(162, 15, 239, 202, 57, 14, 45, 164, 147, 232, 120, 90, 117, 15, 239, 232); for ($i = 0; $i < 16; $i++) { $lic .= sprintf('%02x', (ord($serial[$i]) + $rd[$i]) % 256); } echo 'Lic:' . $lic . ' '; $date_lic = unpack('H*', pack('v', $date_base + $date)); $date_lic = $date_lic[1]; $bw_lic = unpack('H*', pack('V', $bw_base + $bw)); $bw_lic = $bw_lic[1]; $lic = str_replace('[serial]', $lic, $lic_tpl); $lic = str_replace('[date]', $date_lic, $lic); $lic = str_replace('[bw]', $bw_lic, $lic); @file_put_contents("./apx-" . $date . "1231.lic", pack('H*', $lic));
使用ifconfig命令查看当前机器MAC地址。
php apx.php mac expireYear bandwidth
例如:php apx.php 02:42:ac:11:46:9e 2999 0
bandwidth=0代表无限制,执行后将会在当前目录生成文件名为apx-29991231.lic的授权文件。
同时,请记录下执行后生成的SerialNo。
NODEJS源码
开源项目:https://github.com/Srar/ServerSpeeder-Keygen
首先你需要安装NodeJS!!
在您已经安装nodejs(v4.0.0+)环境的情况下
git clone https://github.com/Srar/ServerSpeeder-AutoInstaller.git cd ./ServerSpeeder-AutoInstaller/ServerSpeederCreckServer npm install node app.js
程序默认监听4000端口,您可以访问特定路由来生成授权文件:
http://127.0.0.1:4000/regenspeeder/lic?bandWidth=1G&mac=00:00:00:00:00:00&expires=2023-03-03
上述例子会为00:00:00:00:00:00
MAC地址网卡生成一个速度上限1Gpbs和到期时间为2023-03-03
的授权文件
锐速心跳包访问地址, 您可以通过配置Nginx与Hosts来强制指定访问:
- my.serverspeeder.com
- www.serverspeeder.com
- dl.serverspeeder.com
server { listen 80; server_name my.serverspeeder.com www.serverspeeder.com dl.serverspeeder.com; charset utf8; location / { proxy_pass http://127.0.0.1:4000/; } }
JAVA源码
目前该代码已经不再更新。部署依赖比较多。不推荐。
开源项目:https://github.com/ruterfu/ServerSpeeder-AutoInstaller
需要java环境,且有tomcat。项目为java servlet项目,Eclipse Project。
PS : 如果是搞java的这些应该都懂。
servspdInstaller.sh 为一键安装(无需修改mac地址)
增加了tomcat直接跑的war包,配置文件里面配置
1.写入hosts,将dl.serverspeeder.com重定向到shell顶部填写的HOSTADDR(这里就靠自己部署了,反正就是返回一个code:200,让ss认为lic是正常的,部署好不要忘了在hosts里面修改dl.serverspeeder.com,我默认写[hostIP]了)
注意事项: 需要把项目放在Tomcat-webapps-ROOT来运行,因为软件请求的时候地址是http://***.com/ac.do,或者通过nginx代理也可以
1.lic生成,100M带宽默认: http://ip.com[:port]/regenspeeder/lic?mac=00:00:00:00:00:00
2.lic生成指定日期: http://ip.com[:port]/regenspeeder/lic?mac=00:00:00:00:00:00&expires=2035-12-31
3.lic生成指定带宽: http://ip.com[:port]/regenspeeder/lic?mac=00:00:00:00:00:00&bandwidth=100M
4.生成日期参数和带宽参数可同时使用(废话...),带宽不填默认100M
1.在服务器上安装tomcat ubuntu为apt-get install tomcat7
2.将仓库里srcANDwar里的servspd.war放到tomcat里面webapps包中(默认tomcat7的webapps目录是/var/lib/tomcat7/webapps),最好重命名成ROOT,这样网址中不需要加项目名,tomcat端口最好为80,也可以使用nginx进行反向代理,
3.测试使用:ROOT http://您的服务器ip[:服务器端口]/
非ROOT: http://您的服务器IP[:服务器端口]/servspd/
4.如果显示一个 Hello World 字样就可以了
5.打开servspdInstaller.sh 修改HOST=http://ip.com[:port]为自己服务器ip和项目名 例如HOST=http://10.1.1.1:8080/servspd
6.额外:如果tomcat是80端口,且项目已经重命名成ROOT,则打开servspdInstaller.sh 修改HOSTADDR=[hostIP]为自己服务器ip 例如HOSTADDR=10.1.1.1
7.将servspdInstaller.sh传到服务器上,输入 bash servspdInstaller.sh 即可进行自动安装
附加内核更改方法(Ubuntu) 这里用 3.13.0-29-generic 举例,其他服务器自行摸索:
1.首先,安装需要的内核: sudo apt-get install linux-image-extra-3.13.0-29-generic
2.输入 sudo uname -r,记住当前的内核,假设是 3.13.0-74-generic
3.输入 sudo apt-get purge linux-image-3.13.0-74-generic linux-image-extra-3.13.0-74-generic
4.因为上面命令执行后会删除当前内核然后会安装新内核,假设安装了3.xx.xx内核,这时可能不知道,用以下方式查找,输入sudo apt-get purge linux-image-3 然后按2次tab后会出现以下内容linux-image-3.13.0-29-generic linux-image-extra-3.13.0-29-generic linux-image-3.XX.X-XX-generic linux-image-extra-XX.X-XX-generic,如果出现了4个,则记住xx的数字,并继续输入完整,最后完整命令是:sudo apt-get purge linux-image-3.XX.X-XX-generic linux-image-extra-3.XX.X-XX-generic,如果只出现2个,则跳过
5.sudo update-grub更新内核
6.sudo reboot 重启服务器
7.重启之后 再次使用uname -r则看到使用了3.13.0-29-generic内核,直接下载servspdInstaller.sh并配置好里面的地址,上传到到服务器,然后sudo bash servspdInstaller.sh进行安装
8.具体参考 http://bbs.tcp.hk/thread-84-1-1.html
1.2016年02月29日23:02, 修正输入时间会导致错乱问题,原来版本当输入2100年时,会生成23xx的文件
2.2016年03月01日16:40, 取消kernel内核单独提供,一并放入网页中,这样无需进行nginx部署
3.2016年03月02日13:41, 不再更新
4.2016年03月11日12:22, 反正有那么多了,就直接改名ServerSpeeder-AutoInstaller.
需要自行部署eclipse项目,来重定向ss的定时lic检测,否则会因为无法更新lic而导致ss加速无效
Python源码
这个是最开始出现的计算序列号的方法。比较原始。可以学习了解,不推荐使用。
根据MAC生成序列号:
MAC='MAC地址'.replace(':','') print '%02X%02X%02X%02X%02X%02X%02X%02X'%((int(MAC[0:2],16)+int(MAC[4:6],16)+10)%256,(int(MAC[2:4],16)+int(MAC[6:8],16)+13)%256,(int(MAC[4:6],16)+int(MAC[8:10],16)+16)%256,(int(MAC[6:8],16)+int(MAC[10:12],16)+19)%256,(int(MAC[8:10],16)+int(MAC[0:2],16)+16)%256,(int(MAC[10:12],16)+int(MAC[2:4],16)+19)%256,(int(MAC[0:2],16)+int(MAC[4:6],16)+22)%256,(int(MAC[2:4],16)+int(MAC[6:8],16)+26)%256)
根据序列号逆推MAC地址,因为生成序列号时做了取模,故可能反推失败:
S='序列号' m4=(int(S[4:6],16)-int(S[0:2],16)+int(S[8:10],16)-22)/2 m2=int(S[4:6],16)-m4-16 m0=int(S[0:2],16)-m2-10 m5=(int(S[6:8],16)-int(S[2:4],16)+int(S[10:12],16)-25)/2 m1=int(S[10:12],16)-m5-19 m3=int(S[2:4],16)-m1-13 if (m0 >= 0 and m1 >= 0 and m2 >= 0 and m3 >= 0 and m4 >= 0 and m5 >= 0): print 'MAC地址为%02x:%02x:%02x:%02x:%02x:%02x'%(m0,m1,m2,m3,m4,m5) else: MAC0 = '%02x:%02x:%02x:%02x:%02x:%02x'%(m0%256,m1%256,m2%256,m3%256,m4%256,m5%256) MAC = MAC0.replace(':','') S2 = '%02X%02X%02X%02X%02X%02X%02X%02X'%((int(MAC[0:2],16)+int(MAC[4:6],16)+10)%256,(int(MAC[2:4],16)+int(MAC[6:8],16)+13)%256,(int(MAC[4:6],16)+int(MAC[8:10],16)+16)%256,(int(MAC[6:8],16)+int(MAC[10:12],16)+19)%256,(int(MAC[8:10],16)+int(MAC[0:2],16)+16)%256,(int(MAC[10:12],16)+int(MAC[2:4],16)+19)%256,(int(MAC[0:2],16)+int(MAC[4:6],16)+22)%256,(int(MAC[2:4],16)+int(MAC[6:8],16)+26)%256) if (S.lower() == S2.lower()): print 'MAC地址为'+MAC0 else: print '反推失败'
然后访问: http://fandai.gezi.workers.dev/p/1015.html
下载完整的安装包,替换Config即可。
等有时间更新完整的内容。
参考文献:
http://lpisme.azurewebsites.net/archives/801/
http://www.hostloc.com/thread-305480-1-1.html
版权声明:
作者:我是小马甲~
链接:https://fandai.gezi.workers.dev/2820.html
来源:如有乐享
文章版权归作者所有,未经允许请勿转载。
shira
gg
admin@gg