PHP源码
目前使用比较多的一种。
新建apx.php,写入以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<?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地址。
1 |
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+)环境的情况下
1 2 3 4 |
git clone https://github.com/Srar/ServerSpeeder-AutoInstaller.git cd ./ServerSpeeder-AutoInstaller/ServerSpeederCreckServer npm install node app.js |
程序默认监听4000端口,您可以访问特定路由来生成授权文件:
1 |
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
1 2 3 4 5 6 7 8 9 10 |
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 2 |
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 2 3 4 5 |
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 2 3 4 5 6 7 8 9 |
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 2 3 4 5 6 7 8 9 |
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 2 3 4 5 |
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生成序列号:
1 2 |
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地址,因为生成序列号时做了取模,故可能反推失败:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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://51.ruyo.net/p/1015.html
下载完整的安装包,替换Config即可。
等有时间更新完整的内容。
参考文献:
http://lpisme.azurewebsites.net/archives/801/
http://www.hostloc.com/thread-305480-1-1.html
Leave a reply