SmartFox2.7破解并升级到2.8.5

来源:互联网 发布:java中的包是什么意思 编辑:程序博客网 时间:2024/05/29 16:24
仅确定2.7.0~2.8.5可以这么弄。

使用netbeans作为开发工具测试成功,Eclipse应该差不多,可以类推。

首先新建一个普通的java项目,添加sfs2x目录中lib下的以下jar包:
sfs2x.jarlog4j-xxx.jar slf4j-api-xxx.jar slf4j-log4j12-xxx.jar
xxx表示版本号。。可能有不同就不列了。

添加类,如下:

packagecom.sfs.license;
importjava.io.FileOutputStream;

importcom.smartfoxserver.v2.entities.data.SFSObject;
importcom.smartfoxserver.v2.protocol.binary.DefaultPacketCompressor;

public classLicenseCreater {
     publicstatic void main(String[] args) throws Exception {
              SFSObject license = newSFSObject();
             license.putUtfString("customer", "");// 授权人,为空则为共享版,否则个人版
              license.putUtfString("bind","120.35.62.35");// 限制IP ,也就是服务器的公网IP!!如果写内网IP则只能在内网上访问。
              license.putInt("users",-1);// 连接数上限,-1为无限数量
              license.putLong("expire",0);// 版权到期时间,0为无限制
              license.putBool("private",false);// 私有?

              byte[] objectBytes =license.toBinary();
              objectBytes = newDefaultPacketCompressor().compress(objectBytes);
              byte[] licenseData = newbyte[objectBytes.length + 4];
              for (int i = 0; i <objectBytes.length; i++) {
                    licenseData[i + 4] = (byte) (objectBytes[i] ^licenseData[2]);
              }

              newFileOutputStream("/opt/license.2x").write((byte[]) licenseData);//设置保存的路径
       }
}

生成完成以后,停止sfs2x-service的服务,然后将license.2x放到SFS2X/config目录下。
重启服务,进入admintool,在license中查看当前的权限,应该是无限制的了。

然后可以使用2.8.5的patch升级到2.8.5,还是可以用的,不能升2.9。
升级包地址

2.7升2.8.5的补丁地址:http://www.smartfoxserver.com/downloads/sfs2x/patches/SFS2X-Patch-2.8.5.zip

使用unzip解压以后放到安装目录下,进入path目录,执行install-linux.sh脚本即可。

0 0