0001. seafile:
关于seafile的介绍请自行百度,其实官方是提供了专业版的,而且免费的专业版跟付了钱买的专业版功能上没有任何区别,主要是免费的只能注册三个用户。(百度上也貌似找不到专业版的破解版)
虽然说是可用的状态,但是我的感觉是十分蛋疼。毕竟有强迫症在作怪,正好作为小白的我可以用这个程序来练练手。
0010.破解:
详细的破解过程就不在此进行阐述,主要是对限制人数进行了破解使其突破3人的限制。(将其修改为1000人)
破解的版本为目前的最新版本 6.2.9
大致分析及破解过程如下:
该程序是由python和C编写,前台使用了python的django框架。
安装好运行之后添加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
复制代码
难道真的就么简单??,于是把3改为1000,重启服务。
继续添加用户,不过这时候错误变成了添加用户失败。果然没那么简单!
继续追踪分析python代码,最后发现基本上所有的操作(比如添加用户,更换邮箱,删除用户)都是使用rpc进行通信调用C语言程序进行的操作。
这时候突然想起启动时控制台的输出信息,于是使用IDA进行静态分析。从 seafile-pro-server-6.2.9/seafile/bin/ccnet-server 文件中发现了端倪。
进行text搜索 :license 果不其然,决定使用人数的代码就在其中。(文件删了后我也懒得下,所以就不放图了,后面的就自行分析吧)。
不过最初我是想做个注册机出来,最后发现程序使用RSA来验证授权文件,所以如果做注册机还需将程序中的公钥替换成我的,这样还不如直接修改人数限制来的简单粗暴。
0100.下载链接:
不知道为什么官网也是放出了一个Ubuntu的版本?所以顺带也破解了。
Ubuntu 版:https://pan.baidu.com/s/1w2jZcoOYKAec1eurHPJVEw 密码:xz2z
百度网盘:https://pan.baidu.com/s/1bYVO_KfWqFbX8vZQwIr7HA 密码:zayr
demo站点:https://pan.deny.cx
文件都是从官网下载的,然后进行了破解,后门病毒之类的应该不存在的吧?(大家请放心,我技术这么渣想加也加不了啊)
0101.安装教程官方的文档都有
安装方法就按照官方的说明来就是了。
0110..侵删;