• earthjasonlin released this 2024-02-25 08:39:16 +08:00 | 0 commits to main since this release

    原因

    进来先喊一句:Cloudreve, Fuck You !!!
    还是因为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对比整个仓库的时候就知道了
    首先将被加料的依赖项替换为原版
    github.com/abslant/mime => github.com/HFO4/aliyun-oss-go-sdk
    github.com/abslant/gzip => github.com/gin-contrib/gzip
    VSC编辑器全局搜索,直接替换
    bootstrap/app.go 不用多说,那个读取 []byte{107, 101, 121, 46, 98, 105, 110} 的就是授权文件
    routers/router.go 第128行 r.Use(gzip.GzipHandler()) 改为 r.Use(gzip.Gzip(gzip.DefaultCompression, gzip.WithExcludedPaths([]string{"/api/"})))
    如果改完还是自动引入就把 go.sum 删了
    然后是一些小变动:
    pkg/hashid/hash.go 最后一个函数 constant.HashIDTable[t] 改为 t
    基本上到这里就完成了
    注意前端打包时要保持目录结构 assets.zip/assets/build/{前端文件}

    前端

    忙活了半天,终于把程序跑起来了,打开页面一看,好家伙 Backend not running
    还是进不去,怎么想都进不去,因为前端还有一层验证
    但注意 "任何前端加密和混淆都是纸老虎,自己玩玩无所谓,重要业务千万别乱来"
    前端验证很好破解,还是先检查依赖项,打开 package.json
    头两行就是这个万恶的 abslant,删掉 @abslant/cd-image-loader@abslant/cd-js-injector
    然后把引用它们的地方删掉就行...了吗 ?
    位置在 config/webpack.config.js:35_625src/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泄露版和主线版拼凑而来的,存在不稳定因素,建议不要用于生产环境

    下载链接

    https://pan.loliquq.cn/s/9Esr

    Downloads