// 全局授权标记(混淆)
$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:20250521234006+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œJAǷKaag5fݝ+*QsF4B Zk#"X%|k_R1 s~37
m(Uaf1Ni(Ufod&f2%1O4XVC:ґO%HFƑqW<|qsyW^ZXld
4qTߐRچnh%/slNZ(
&[u7
|@-CBX(rn`,IkTخׂqI%2$}HΚ|iiehuePhB bVM/mʜIZs#f_Rϰ4zx1c!pqSpbסwQHCе2\n#jQY?*_ّ{Aa>u_b0=)
endstream
endobj
8 0 obj
<< /Type /Page /Parent 1 0 R /LastModified (D:20250521234006+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:20250521234006+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
xݖOHQ'Km)Nᣓo"?ouhZAY1Xu۬e5:F!Cht( b. JĶv4WvɅc~~o dH.T20ɣ@VVDs
*YU~MHۋe=~@B0=ķ2D"R/RY*' YX"z0Jcf`茌/s'^MH99G,3J:imk(_j+Qcfl &\/lUsV.Ir"Vl`+jpKhhRn#lPuFWczw/EJWX($к=EeH҉OS1> /PZ 1 >>
endobj
13 0 obj
<> stream
xVOHQ$y͌v2bYWYB\͂Mcr+ѰS.!tZo!D:tJ
[Dm82o3̏xE@ -Xm^T4MBt! w81ꏋ B^t& /YFt۾w mIӽ|(vTu(A^h} .`^é+=Zcl=gp#]UTRP }("^U!R/Q").Y%HWyIWټ9J&uޟXgOGrpcbĬkxٙ;l'ƈP]"<{é;w}WJRANWL<']\
ΐ@UrqP%/fGöq7F,^]VfXL;ŅPιy]EBk6> /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)&-K'^I}+&vOڗ*kWHO[&p#Cfz01!BRC~ݱ&*y.?CK- .Ōo>)4=?O0kқ@NF?ݩ_ Cz̸)1LZM 9ˊ*g
χ٘4| 8Y!%K#yRQ
ш7t`&y G@~3`
(a+ki]KxcSHj-@S=$76 R.!
OK
0fr[EVsyV2c۲UL:MM~Yt,k+M
}X\E 'g
endstream
endobj
16 0 obj
<< /Type /Page /Parent 1 0 R /LastModified (D:20250521234006+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 17 0 R /Rotate 0 /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Annots [ 5 0 R ] /PZ 1 >>
endobj
17 0 obj
<> stream
xVAHQҡ>