资源介绍

Cloudreve 可以让您快速搭建起公私兼备的网盘系统,Cloudreve 在底层支持不同的云存储平台,用户在实际使用时无须关心物理存储方式。你可以使用 Cloudreve 搭建个人用网盘、文件分享系统,亦或是针对大小团体的公有云系统。从论坛和GitHub上的issue来看,作者前期对于反馈和Bug修复还是很积极的,从2020年左右似乎性情大变,虽然群聊里可能有他的身影但不再积极回答捐助者或者开源版本使用者的问题,确实有点不太合适。

可能由于各种原因,出现了本文中的解锁版本,以下是来自于部分网友的观点,不代表本人。

还是因为Cloudreve只顾Pro版圈钱,不管issues提议,一堆Bug不修。论坛提出来你当没看见,修好了发Github你举报,用户的心都被你们给伤透了。所以正值v4即将发布之际,公布v3完整版"解锁"方式。

后端教程

文件分析

众所周知,捐助版会检测授权文件 key.bin,没有它是连程序都打不开的。那有人说了,在 app.go 的 InitApplication 函数里删掉就可以了?开发者能让你这么简单就破开吗,试过之后发现还是打不开程序。

猫腻就藏在程序的依赖库里,仔细看这个库 https://github.com/abslant/gzip/blob/v0.0.9/handler.go#L60看似只是一个fork版,但会在前端 main.xxx.chunk.js 中插入跳转官网403的代码,作者的用户名为 abslant,乍一看不认识。打开这个博客 https://hfo4.github.io/ ,注意头像下的联系邮箱,发现这就是开发者 Aaron 的小名。

这一切就说得通了都是作者搞的鬼,看过社区版源码的都知道,没看过的等你尝试用git对比整个仓库的时候就知道了。

后端改动

1、首先将被加料的依赖项替换为原版,可以使用VSC编辑器全局搜索,直接替换。

github.com/abslant/mime => github.com/HFO4/aliyun-oss-go-sdk
github.com/abslant/gzip => github.com/gin-contrib/gzip

2、bootstrap/app.go 不用多说,那个读取

[]byte{107, 101, 121, 46, 98, 105, 110}

的就是授权文件。

3、routers/router.go 第128行

r.Use(gzip.GzipHandler())

修改为

r.Use(gzip.Gzip(gzip.DefaultCompression, gzip.WithExcludedPaths([]string{"/api/"})))

如果改完还是自动引入就把 go.sum 删了。

4、然后是一些小变动:

pkg/hashid/hash.go 最后一个函数

constant.HashIDTable[t]

改为 t 基本上到这里就完成了。

注意:前端打包时要保持目录结构 assets.zip/assets/build/{前端文件}

前端教程

3.1 插曲

忙活了半天,终于把程序跑起来了,打开页面一看,好家伙 Backend not running 还是进不去,怎么想都进不去,因为前端还有一层验证。

3.2 改动

但注意 "任何前端加密和混淆都是纸老虎,自己玩玩无所谓,重要业务千万别乱来" 前端验证很好破解,还是先检查依赖项。

1、打开 package.json 头两行就是这个万恶的 abslant,删掉 "@abslant/cd-image-loader" 和 "@abslant/cd-js-injector"

2、把config/webpack.config.js:35_625 和 src/component/FileManager/FileManager.js:16_109中对它们的引用删除,之后进是能进网盘了但你想测试上传一个文件的时候就傻眼了,明明什么也没动就是传不上去。提示报错

Cannot read properties of null (reading 'code')

那是继3.5.3之后新增的一处验证 将 src/component/Uploader/core/utils/request.ts 第 12 行整个 const 替换为以下内容即可解决

const baseConfig = {
    transformResponse: [
        (response: any) => {
            try {
                return JSON.parse(response);
            } catch (e) {
                throw new TransformResponseError(response, e);
            }
        },
    ],
};

其它注意事项

除了去除验证,Plus版本还增加了几处功能优化,修复遗留Bug,感兴趣的可以下载体验一下。但因为是3.8.3泄露版和主线版拼凑而来的,存在不稳定因素,建议不要用于生产环境,如果怕在里面加料,可以自行检查源码,这程序十分的珍贵,尽快下载存档!

声明
1.本网站名称: 盲盒博客
2.本站永久网址:https://exakit.com
3.本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长support@exakit.com
4.本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责
5.本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6.本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新