X3 photo gallery简单的相册程序,破解伪授权方法
X3 photo gallery是一款简单,漂亮,功能强大的相册程序,不用数据库,直接读取文件夹内容。有免费版和专业版区分,相比$75的个人版和$150的专业版,免费版只是少了全景功能和底部有不可更改的版权信息,除此之外没有太大差距。
有意思的是免费一旦自行修改版权信息,网页就会弹窗提示未授权并跳转官网,在查看代码过程发现当中引用了几个伪装的授权代码,即使除去了没能真正除去版权信息,本文主要是为了探讨学习与研究记录一下学习过程。有需要请支持正版,其实免费版足以解决大部分需求。
-------------------------------------------------------------------------------
安装
前面最新版是3.30.1,官网下载链接:https://www.photo.gallery/downloads/
安装环境:PHP 5.3 或更高,需要PHP扩展 GD 和 Mcrypt 。
安装过程接不多说了,参考官方详细文档
需要注意的的伪静态设置是,如果原来配置文档有涉及js,css的设置建议先删除。(例如宝塔需要删除原来配置文档里面location ~js jpg...那部分)
nginx伪静态
location / { if (!-e $request_filename){ # Rewrite any calls to html|json|xml|atom|rss if a folder matching * exists rewrite (.+)\.(html|json|xml|atom|rss)$ $1/ last; # Rewrite any calls to /render to the X3 image resizer rewrite ^/render/. /app/parsers/slir/ last; # Rewrite routes to X3 application index.php if they are non-existent files/dirs rewrite ^(.*)$ /index.php?$1 last; } } # Prevent web access to X3 /config and /_cache directories location ~ /(config|_cache) { deny all; }
-------------------------------------------------------------------------------
伪授权
以这个版本为例,目标:把验证网址https://auth.photo.gallery/改成 /auth
在/auth放入自己的授权文件
1)前台 修改 /app/public/js/3.30.1/x3.min.js
搜索 aHR0cHM6Ly9hdXRoLg== 替换为 Lw==
搜索 cGhvdG8uZ2FsbGVyeQ== 替换为 YXV0aA==
代码为base64加密,解密后对应
aHR0cHM6Ly9hdXRoLg== →→→ https://auth cGhvdG8uZ2FsbGVyeQ== →→→ photo.gallery Lw== →→→ / YXV0aA== →→→ auth
2)后台 修改 /panel/filemanager_js/x3_panel.js
搜索 aHR0cHM6Ly9hdXRoLnBob3RvLmdhbGxlcnkv 替换为 L2F1dGgv
代码为base64加密,解密后对应
aHR0cHM6Ly9hdXRoLnBob3RvLmdhbGxlcnkv →→→ https://auth.photo.gallery/ L2F1dGgv →→→ /auth/
3)修改使用本地x3.min.js,方法有二
一是修改引用文件:
修改/app/templates/cc/29/202264ab201d0d43a63882c31b1c06ae7e7992a5c371c52f885633d0acfa.php
大概第71行
$context["core_js"] = (("https://cdn.jsdelivr.net/npm/x3.photo.gallery@" . $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "x3_version")) . "/js/x3.min.js"); 修改为: $context["core_js"] = ("/app/public/js/3.30.1/x3.min.js");
二是后台设置取消cdn,全部使用本地静态:
在后台设置->高级-CDN,取消勾选。
4)新建 验证文件/auth/index.php
简单模式:
<?php header('Access-Control-Allow-Origin: *'); header('content-type:application/json'); echo '{"status":200,"message":"License is valid.","parameters":{"type":"1"}}'; ?>
或者指定域名模式
<?删除php header('Access-Control-Allow-Origin: *'); header('content-type:application/json'); $allowed_hosts = array('shanliang.xyz', 'p2.btu.pp.ua'); //修改为自己域名 if (in_array($_SERVER['SERVER_NAME'], $allowed_hosts)) { echo '{"status":200,"message":"License is valid [btu.pp.ua]","parameters":{"type":"1"}}'; }else{ echo '{"status":301,"message":"License not Found"}'; } ?>
这样应该可以了。
好像POST授权网址后,只要status返回的代码不是301,它就不会判断是不是正版,不再进行下一步的弹窗和跳转了
-------------------------------------------------------------------------------
目前个人使用遇到最大问题
文件夹不支持 #$%^&*()+=[]'"/\|{}`~!@.
Other disallowed characters
Other characters that are not allowed in folder names include #$%^&*()+=[]'"/\|{}`~!@. Most of these characters are simply not allowed in URL's, while some characters are disallowed because they break the functionality of X3.
匿名
昵称获取失败
Mover
xpat
jialezi