Back

Seafile--linux专业版破解-6.2.9

deny 2018年06月08日

前言

关于这篇博文最先是3月30号在吾爱破解论坛发布的帖子原帖地址;早就打算在博客上也进行更新,后来事有点多慢慢的也就忘了,直到今天就打算更新一下。(文章是直接复制的帖子,并稍微的进行了修改)
PS:破解版本玩玩就好了,切勿用于其他非法用途。毕竟Seafile也是国人开发的一款程序,同时在此呼吁有条件的各位购买正版,以支持国产软件发展。

Seafile

​​‌‌​​​‌‌​‌​​‌‌‍​‌​‌‌‌​​‌‌‌‌​‌​‍​‌​​‌​​​‌​​​‌‌​‍​‌​‌‌​​​‌‌​​​​​‍​​‌​‌‌‌‌‌‌‌‌​​​‍​‌‌​​‌‌‌​‌‌​​‌‌‌‍​‌‌​​​‌‌‌​​​‌​‌‍​​‌‌‌‌‌‌‌‌​​‌‌‍‌​‌​‌‌​​‍‌​​‌‌​‌​‍‌​​‌‌‌‌​‍‌​​‌‌​​‌‍‌​​‌​‌‌​‍‌​​‌​​‌‌‍‌​​‌‌​‌​‍‌‌​‌​​‌​‍‌‌​‌​​‌​‍‌​​‌​​‌‌‍‌​​‌​‌‌​‍‌​​‌​​​‌‍‌​​​‌​‌​‍‌​​​​‌‌‌‍​‌‌​​​‌‌‌‌​‌‌​​‍​‌‌​​​‌‌‌‌​​‌​‌‍​​​‌‌​‌‌​‌‌​‌‌‌‍​​​​‌‌‌‌‌​​‌​‌‌‍​‌‌‌​‌‌​​​​‌‌‌​​‍‌‌​‌​​‌​‍‌‌​​‌​​‌‍‌‌​‌​​​‌‍‌‌​​‌‌​‌‍‌‌​‌​​​‌‍‌‌​​​‌‌​‍​​‌‌‌‌‌‌‌‌​​‌​‍​​​​​​​​‌‌‌‌​​‌‌‍​​​‌​‌​‌‌​​‌‌‌​‍‌​​‌‌​‌‌‍‌​​‌‌​‌​‍‌​​‌​​​‌‍‌​​​​‌‌​‍​‌‌​​​‌​‌‌‌​​​‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌‌‍‌‌​​‌‌‌​‍‌‌​​​‌‌‌‍‌‌​‌​​‌​‍‌‌​​‌‌‌‌‍‌‌​​‌​​‌‍‌‌​‌​​‌​‍‌‌​​‌‌‌‌‍‌‌​​‌​​​‍​‌​‌‌​‌‌‌‌​​‌​​‍​‌‌​​​​‌​‌​​​‌‌‍​​​​​​​​‌‌‌‌​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌​‌​​​‌‌​​‌‌‌‌‍​‌​‌​​​‌​‌‌‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​​‌​‌‌‍‌​​​‌‌‌‌‍‌​​​‌‌​​‍‌‌​​​‌​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍‌​​‌‌‌​‌‍‌​​‌​​‌‌‍‌​​‌​​​​‍‌​​‌‌​​​‍‌‌​‌​​​‌‍‌​​‌‌​‌‌‍‌​​‌​​‌​‍‌​​​​‌​‌‍‌​​​​‌‌​‍‌‌​‌​​​‌‍‌​​​‌​​‌‍‌​​‌​‌‌​‍‌​​​‌‌‌‌‍‌​‌​​​‌‌‍‌​​‌‌‌‌​‍‌​​​‌‌​‌‍‌​​‌‌‌​​‍‌​​‌​‌‌‌‍‌​​‌​‌‌​‍‌​​​‌​​‌‍‌​​‌‌​‌​‍‌​​​‌‌​​‍‌​‌​​​‌‌‍‌‌​​‌​‌​‍‌‌​​‌​​‌‍‌‌​‌​​​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​‌​​‌​‍‌​​‌​​‌‌

关于seafile的介绍请自行百度,其实官方是提供了专业版的,而且免费的专业版跟付了钱买的专业版功能上没有任何区别,主要是免费的只能注册三个用户。(百度上也貌似找不到专业版的破解版)
虽然说是可用的状态,但是我的感觉是十分蛋疼。毕竟有强迫症在作怪,正好可以让作为新手的我用这个程序来练练手。

破解过程

*破解的过程可能不会写的很详细。
此次破解主要是对限制人数进行了破解使其突破3人的限制。(将其修改为1000人)
破解的版本为目前的最新版本 6.2.9
经过大致的分析得知:

前台使用python语言编写,框架是django;
后端使用C语言编写;

于是可以先从前台下手,故意注册第4个用户使其提示错误信息,并根据错误信息追踪代码调用情况及位置;
最后从前台追踪到前台关于用户超限判断的代码位置,位于 seafile-pro-server-6.2.9/seahub/seahub/utils/licenseparse.py 文件中:

    def user_number_over_limit(new_users=0):
    logger = logging.getLogger(__name__)
    if is_pro_version():
        try:
            # get license user limit
            license_dict = parse_license()
            max_users = int(license_dict.get('MaxUsers', 3))

            # get active user number
            active_db_users = ccnet_api.count_emailusers('DB')
            active_ldap_users = ccnet_api.count_emailusers('LDAP')
            active_users = active_db_users + active_ldap_users if \
                           active_ldap_users > 0 else active_db_users

            if new_users < 0:
                logger.debug('`new_users` must be greater or equal to 0.')
                return False
            elif new_users == 0:
                return active_users >= max_users
            else:
                return active_users + new_users > max_users

        except Exception as e:
            logger.error(e)
            return False
    else:
        return False

难道真的就么简单?? 我猜想既然使用了C编写后端,那么肯定不会如此简单。于是把3改为1000,重启服务。并继续添加用户的操作,不过这时候错误信息变成了添加用户失败。果然没那么简单!
进一步分析python代码得出以下结论:

python前台并不进行任何实质上的操作,比如添加用户,更换邮箱,删除用户等等。
以上操作都是使用rpc进行通信调用C语言程序进行的。
所以实质上python只是对用户超限进行了简单的判断,像什么授权验证之类的都还是用C写的。

突然想起启动时控制台的输出信息,于是分析了Seafile的启动脚本,并将启动脚本中所启动的几个文件拖入IDA中静态分析。最终在 seafile-pro-server-6.2.9/seafile/bin/ccnet-server 文件中发现了端倪(进行text搜索关键字:license)
然后修改汇编代码将原本的3人限制改为了1000人。
修改完成后重启seafile服务并进行测试--成功注册第四位用户。至此程序也已经破解完成了。

PS:使用IDA分析linux可执行文件期间,也找到了授权验证的代码,并打算制作一个注册机,这样的话,以后的更新版本就不用再进行破解了;但深入以后发现,授权文件是使用RSA非对称加密算法进行的加密,既然没有他的私钥,那还是得将程序中的公钥替换成自己签发的。这样的情况还不如直接修改限制人数来的省事

运行截图

Demo:https://pan.deny.cx

console.png
home.png
admin.png

下载地址

不知道为什么官网也是放出了一个Ubuntu的版本?所以顺带也破解了。
同时也说明一下,seafile没有windows的专业版本的!!!
Linux版链接: 版权原因,不提供下载
Ubuntu 版链接: *版权原因,不提供下载**
Demo:https://pan.deny.cx

安装教程

安装教程官方教程都有便不再此赘述,博主的是运行在Centos7系统上,机器配置为 CPU:4U,RAM:8GB,DISK:1.5T;

问题

文中如有错误或其他问题欢迎留言评论指出。
如果站点内资料库消失,且出现红色的错误字样或者网站排版混乱,请照官方说明停止程序并删除缓存后重启便可解决,缓存文件处于/tmp目录下。
个人经验: 使用命令 rm -rf /tmp/sea* 删除缓存后重启Seafile服务即可。
管理界面内如果也出现类似错误同样可以尝试使用以上方法解决。
(服务器非正常关机可能会导致以上情况发生,反正我的服务器断电了两次并且都出现了以上错误。)

声明

文章中涉及到的任何东西仅供学习交流,并且本站不会提供任何破解版下载。请支持正版,谢谢!

Submit
    herozhang
    herozhang  2019-11-08, 14:30

    在ubuntu 18.04 lts上用网盘上的7.0.10-x86-64-Crack安装后,还是有3个人的限制。生成license上传后也是一样的。是否还需要其他操作?

    风行
    风行  2019-10-31, 21:11

    大佬您好,我的系统是linode的centos7上,安装前关闭了防火墙,部署了在你的网盘下载的7.0.10-x86-64-Crack版本。目前有两个问题:1、安装成功后没有账号和密码。2、cat /sys/class/dmi/id/product_uuid,查不到UUID。请问怎么解决。谢谢!

      deny
      deny  2019-10-31, 22:28

      在刚安装完成后是没有账号的,只有在第一次启动的时候才会提示你创建账号。/sys/class/dmi/id/product_uuid这个文件记录的是硬件相关的uuid,(VPS虚拟机等也会有这个文件的)。如果没有的话那我也无能为力了

    凝霜
    凝霜  2019-08-16, 11:49

    大神您好,我再centos7上部署的7.0.7专业版,ida修改ccnet-server后,可以启动,但1小时后就会[08/15/19 18:15:29] ../common/peer.c(948): libevent got an error! what=33, errno=104 (Connection reset by peer)
    [08/15/19 18:15:29] ../common/peer.c(950): Local peer down,然后页面上资料库显示错误,seafile.sh restart后又可以用1小时

      哈哈侠
      哈哈侠  2019-09-25, 05:26

      实测官方7.0.8以上版本已经做了相关检测机制,第一次使用证书是没有问题,重启之后就会出现错误提示,并且删除缓存方式不可用,要恢复错误前状态只需要把seafile目录下的License删除即可正常登陆

    1123
    1123  2019-08-02, 16:23

    大佬,你写的教程乱码看不了是什么编码的

    longxi
    longxi  2019-01-22, 10:02

    大佬能不能发一份树莓派的破解啊

    demo
    demo  2018-10-16, 10:58

    更新到6.3.7了

      James
      James  2019-01-04, 15:47

      求大佬邮箱分享一份最新版本。

    TabKey9
    TabKey9  2018-10-08, 16:45

    666