// 全局授权标记(混淆)
$GLOBALS['_0xAUTH_VALID'] = false;
$GLOBALS['_0xAUTH_KEY'] = null;
// 授权验证核心
function _0xAuthCore() {
static $_0xchecked = false;
if($_0xchecked) return $GLOBALS['_0xAUTH_VALID'];
$_0xchecked = true;
// 授权服务器地址(支持HTTPS和HTTP自动降级)
$_0x4f2a_https = base64_decode('aHR0cHM6Ly81Zy5iYWlkdWRhaWZhLmNuL2F1dGhfc2VydmVyLnBocA==');
$_0x4f2a_http = base64_decode('aHR0cDovLzVnLmJhaWR1ZGFpZmEuY24vYXV0aF9zZXJ2ZXIucGhw');
$_0x3d1b = $_SERVER['SERVER_ADDR'] ?? $_SERVER['LOCAL_ADDR'] ?? @gethostbyname(@gethostname());
$_0x2c8e = $_SERVER['DOCUMENT_ROOT'] . '/runtime/.auth_' . md5($_0x3d1b . 'CORE') . '.dat';
if(!is_dir(dirname($_0x2c8e))) @mkdir(dirname($_0x2c8e), 0755, true);
// 解密函数
$_0xdec = function($_0xd) {
$_0xk = substr(md5($_SERVER['DOCUMENT_ROOT'] . 'PDF'), 0, 16);
return @openssl_decrypt($_0xd, 'AES-128-ECB', $_0xk);
};
// 加密函数
$_0xenc = function($_0xd) {
$_0xk = substr(md5($_SERVER['DOCUMENT_ROOT'] . 'PDF'), 0, 16);
return openssl_encrypt($_0xd, 'AES-128-ECB', $_0xk);
};
// 读取缓存
if(file_exists($_0x2c8e)) {
$_0xraw = @file_get_contents($_0x2c8e);
$_0xdata = @json_decode($_0xdec($_0xraw), true);
if($_0xdata && isset($_0xdata['v']) && $_0xdata['v'] === md5($_0x3d1b . 'CORE_V2')) {
if(time() - ($_0xdata['t'] ?? 0) < 14400) { // 4小时缓存
if(isset($_0xdata['e']) && strtotime($_0xdata['e']) > time()) {
$GLOBALS['_0xAUTH_VALID'] = true;
$GLOBALS['_0xAUTH_KEY'] = md5($_0x3d1b . date('Ymd') . 'KEY');
return true;
}
}
}
}
// 在线验证(先HTTPS,失败则HTTP)
$_0xresp = '';
$_0xcode = 0;
foreach([$_0x4f2a_http, $_0x4f2a_https] as $_0x4f2a) { // HTTP优先,HTTPS备用
$_0xurl = $_0x4f2a . '?domain=' . urlencode($_0x3d1b) . '&product=pdf_fan&v=3&t=' . time();
$_0xch = @curl_init();
if(!$_0xch) continue;
curl_setopt_array($_0xch, [
CURLOPT_URL => $_0xurl,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_TIMEOUT => 5,
CURLOPT_CONNECTTIMEOUT => 3,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_USERAGENT => 'PDFCore/3.0',
CURLOPT_HTTPHEADER => ['X-Auth-Core: ' . md5($_0x3d1b . date('YmdH'))]
]);
$_0xresp = @curl_exec($_0xch);
$_0xcode = @curl_getinfo($_0xch, CURLINFO_HTTP_CODE);
@curl_close($_0xch);
if(!empty($_0xresp) && $_0xcode == 200) break;
}
// 网络降级 - 只允许短暂降级,不能无限期
if(empty($_0xresp) || $_0xcode != 200) {
// 网络失败时,只有10分钟内的缓存才能通过
if(file_exists($_0x2c8e)) {
$_0xraw = @file_get_contents($_0x2c8e);
$_0xdata = @json_decode($_0xdec($_0xraw), true);
if($_0xdata && time() - ($_0xdata['t'] ?? 0) < 600) {
$GLOBALS['_0xAUTH_VALID'] = true;
return true;
}
}
return false;
}
$_0xresult = @json_decode($_0xresp, true);
if(!$_0xresult || empty($_0xresult['auth'])) {
@unlink($_0x2c8e);
return false;
}
// 保存缓存
$_0xcache = [
'v' => md5($_0x3d1b . 'CORE_V2'),
't' => time(),
'e' => $_0xresult['data']['expire_time'] ?? date('Y-m-d', strtotime('+1 year'))
];
@file_put_contents($_0x2c8e, $_0xenc(json_encode($_0xcache)));
$GLOBALS['_0xAUTH_VALID'] = true;
$GLOBALS['_0xAUTH_KEY'] = md5($_0x3d1b . date('Ymd') . 'KEY');
return true;
}
// 授权检查钩子 - 嵌入关键函数
function _0xRequireAuth($funcName = '') {
if(!$GLOBALS['_0xAUTH_VALID']) {
if(!_0xAuthCore()) {
http_response_code(403);
die('
授权验证');
}
}
return true;
}
// 获取授权密钥(用于解密关键数据)
function _0xGetAuthKey() {
_0xRequireAuth();
return $GLOBALS['_0xAUTH_KEY'] ?? '';
}
%PDF-1.7
%
6 0 obj
<< /Type /Page /Parent 1 0 R /LastModified (D:20251113171754+08'00') /Resources 2 0 R /MediaBox [0.000000 0.000000 595.276000 841.890000] /CropBox [0.000000 0.000000 595.276000 841.890000] /BleedBox [0.000000 0.000000 595.276000 841.890000] /TrimBox [0.000000 0.000000 595.276000 841.890000] /ArtBox [0.000000 0.000000 595.276000 841.890000] /Contents 7 0 R /Rotate 0 /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /PZ 1 >>
endobj
7 0 obj
<> stream
xœ=KAPJmݙݽ65(9L`!۬:wg$bcfxfvVI*6肂"Wefַ4h*3Oa3Ը.@ISpa.fp*j|*9E22
s|[!.)}Fma
#3Z9挥Rҫo$OJސ6=m c)灱$!R?E"pI%2$}HΚ|IzR̽- #HHQ2i0۔9ԑ3̏F̾Z( xLecK#Bغهr4bGCwILW[蒯@fe3Ia0ܹ%
endstream
endobj
8 0 obj
<< /Type /Page /Parent 1 0 R /LastModified (D:20251113171754+08'00') /Resources 2 0 R /MediaBox [0.000000 0.000000 595.276000 841.890000] /CropBox [0.000000 0.000000 595.276000 841.890000] /BleedBox [0.000000 0.000000 595.276000 841.890000] /TrimBox [0.000000 0.000000 595.276000 841.890000] /ArtBox [0.000000 0.000000 595.276000 841.890000] /Contents 9 0 R /Rotate 0 /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /PZ 1 >>
endobj
9 0 obj
<> stream
xŖ?kABd7IeHTR#2:9\+?!6m#|-9\m^H
i|.'־y{erdL+lr֤!q8Mmo&_o%g툌`KD#1"M
'vDF'kD`eny0\W*+{p]rVd+BrVy-xe#r9-^"JDc*r:xӘߣ`
endstream
endobj
10 0 obj
<< /Type /Page /Parent 1 0 R /LastModified (D:20251113171754+08'00') /Resources 2 0 R /MediaBox [0.000000 0.000000 595.276000 841.890000] /CropBox [0.000000 0.000000 595.276000 841.890000] /BleedBox [0.000000 0.000000 595.276000 841.890000] /TrimBox [0.000000 0.000000 595.276000 841.890000] /ArtBox [0.000000 0.000000 595.276000 841.890000] /Contents 11 0 R /Rotate 0 /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /PZ 1 >>
endobj
11 0 obj
<> stream
xV[HQܖ"
Гg.L]6xϽXf`m[YVS!0zD{*^zIPljBK9}# tf+, 6"}g?o"D/`xAar#Wff>@K24^2D+,x$*
HC
e+7GF?̩`TtUD*2
5hXvy]%T]1(Frv>`)sI `S M3I0iI|!+&
7ZQޥ5Ж#3ƫM[Ty@Nh>˓4zW{ȗ+gasrd mc%%yR+oV3SkKuD+rܯ6l4=d3O2q.FavbrFH$ u{11ѧ=BJ`V}ܓh[oHy@Ӿb0#86^+aoEЮDI^$V4GssM\ݨGX(kzcsl콺
Hy
d?G~28,O! 2$d hto)B 2 ;PT@$7Lpa?a$S>~(.Mjk87K?Kjã,߲#nwl"ear
endstream
endobj
12 0 obj
<< /Type /Page /Parent 1 0 R /LastModified (D:20251113171754+08'00') /Resources 2 0 R /MediaBox [0.000000 0.000000 595.276000 841.890000] /CropBox [0.000000 0.000000 595.276000 841.890000] /BleedBox [0.000000 0.000000 595.276000 841.890000] /TrimBox [0.000000 0.000000 595.276000 841.890000] /ArtBox [0.000000 0.000000 595.276000 841.890000] /Contents 13 0 R /Rotate 0 /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /PZ 1 >>
endobj
13 0 obj
<> stream
xVOHQ$ŎwfF/X&q^aUVDZP"Ww`،eܠ?a.!tn!":D1*vvŊgǛߟ@Q @@b> EIuIaUB*6Peyp4 B",\6*ʇ,-e:x6]R4l22U`!5@H!/ƳM$sf|`@~`^s{ ߙ/+ؐ
Qe`H$,jª~}PHdU2~lhlh$LS K`! 6nD
e`yl:@ !5URoP )ZX-w9mv{[I4:F3#u{`
L-O |_I/؟cZxdFiETjxM_YLM͢?"ן=wrI}dm"* *W=թgghg(X~>ֱy?7 H3Γegc/7t{&trFx.̅:jsUĬ.lC3boeZ35sۺVKαN{8C(E0P#Q{j6+XE|B4i==gahL&}-?^k;4SN-w7LWa
endstream
endobj
14 0 obj
<< /Type /Page /Parent 1 0 R /LastModified (D:20251113171754+08'00') /Resources 2 0 R /MediaBox [0.000000 0.000000 595.276000 841.890000] /CropBox [0.000000 0.000000 595.276000 841.890000] /BleedBox [0.000000 0.000000 595.276000 841.890000] /TrimBox [0.000000 0.000000 595.276000 841.890000] /ArtBox [0.000000 0.000000 595.276000 841.890000] /Contents 15 0 R /Rotate 0 /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /PZ 1 >>
endobj
15 0 obj
<> stream
x3357 r/ RR)
zFF&@%aijfafTf`hg
!i
!\7&lF=
Aj a2V)A,5inih`nfga 4X!$E!ZZǏBc_4cB@Ll9JCC\.##3=ssC3Sd`Z>8HM,M03Ks=cKs{AS)&-gD휄>i_©R!=AlPB|x8YYz
I
uǚMjM.9Z@W!3TVL