网上发现一款相对简单功能全面的PHP源码,发货100自动发货系统
点击下载原模板演示
因为它不是一款完全免费的源码系统,若要开启全功能需要花费三百多到1000多不等,有兴趣可以去官网fahuo100.cn上面看一下。代码主体部分涉及的授权部分全部以goto语句写成了一个加密代码。如如下这段便是其中一小段代码:
function zcode($string){$E4kA0=!defined("jlBcRUJ");if($E4kA0)goto E4keWjgx9f;goto E4kldMhx9f;E4keWjgx9f:$E4keF0=call_user_func_array("define",array("jlBcRUJ","prSdesQ"));goto E4kx9e;E4kldMhx9f:E4kx9e:$E4keF0=call_user_func_array("explode",array("|=|D|T","H*|=|D|T454E434F4445|=|D|T666168756F3130302E636E"));unset($E4ktIA0);$GLOBALS[jlBcRUJ]=$E4keF0;unset($E4kcVvP1);if(is_array($GLOBALS[jlBcRUJ]))goto E4keWjgx9j;goto E4kldMhx9j;E4keWjgx9j:$E4kcVvP1=&$GLOBALS[jlBcRUJ][00];goto E4kx9i;E4kldMhx9j:$E4kcVvP1=$GLOBALS[jlBcRUJ][00];E4kx9i:unset($E4kcVvP2);if(is_array($GLOBALS[jlBcRUJ]))goto E4keWjgx9h;goto E4kldMhx9h;E4keWjgx9h:$E4kcVvP2=&$GLOBALS[jlBcRUJ][1];goto E4kx9g;E4kldMhx9h:$E4kcVvP2=$GLOBALS[jlBcRUJ][1];E4kx9g:$E4keFvP0=call_user_func_array("pack",array(&$E4kcVvP1,&$E4kcVvP2));unset($E4kcVvP6);if(is_array($GLOBALS[jlBcRUJ]))goto E4keWjgx9l;goto E4kldMhx9l;E4keWjgx9l:$E4kcVvP6=&$GLOBALS[jlBcRUJ][00];goto E4kx9k;E4kldMhx9l:$E4kcVvP6=$GLOBALS[jlBcRUJ][00];E4kx9k:$E4keFvP5=call_user_func_array("pack",array(&$E4kcVvP6,$GLOBALS[jlBcRUJ]{02}));$E4keF8=call_user_func_array("xcode",array(&$string,&$E4keFvP0,&$E4keFvP5,0));return $E4keF8;}
经过这样加密的代码段很长,很多,与乱码无异。为了方便观看,用在线格式化排列工具。这里百度一下了在线格式化工具,我这里用的是http://www.jsons.cn/phpformat/。
function zcode($string) {
$E4kA0=!defined("jlBcRUJ");
if($E4kA0)goto E4keWjgx9f;
goto E4kldMhx9f;
E4keWjgx9f:$E4keF0=call_user_func_array("define",array("jlBcRUJ","prSdesQ"));
goto E4kx9e;
E4kldMhx9f:E4kx9e:$E4keF0=call_user_func_array("explode",array("|=|D|T","H*|=|D|T454E434F4445|=|D|T666168756F3130302E636E"));
unset($E4ktIA0);
$GLOBALS[jlBcRUJ]=$E4keF0;
unset($E4kcVvP1);
if(is_array($GLOBALS[jlBcRUJ]))goto E4keWjgx9j;
goto E4kldMhx9j;
E4keWjgx9j:$E4kcVvP1=&$GLOBALS[jlBcRUJ][00];
goto E4kx9i;
E4kldMhx9j:$E4kcVvP1=$GLOBALS[jlBcRUJ][00];
E4kx9i:unset($E4kcVvP2);
if(is_array($GLOBALS[jlBcRUJ]))goto E4keWjgx9h;
goto E4kldMhx9h;
E4keWjgx9h:$E4kcVvP2=&$GLOBALS[jlBcRUJ][1];
goto E4kx9g;
E4kldMhx9h:$E4kcVvP2=$GLOBALS[jlBcRUJ][1];
E4kx9g:$E4keFvP0=call_user_func_array("pack",array(&$E4kcVvP1,&$E4kcVvP2));
unset($E4kcVvP6);
if(is_array($GLOBALS[jlBcRUJ]))goto E4keWjgx9l;
goto E4kldMhx9l;
E4keWjgx9l:$E4kcVvP6=&$GLOBALS[jlBcRUJ][00];
goto E4kx9k;
E4kldMhx9l:$E4kcVvP6=$GLOBALS[jlBcRUJ][00];
E4kx9k:$E4keFvP5=call_user_func_array("pack",array(&$E4kcVvP6,$GLOBALS[jlBcRUJ] {
02
}
));
$E4keF8=call_user_func_array("xcode",array(&$string,&$E4keFvP0,&$E4keFvP5,0));
return $E4keF8;
}
经过排列后,代码的规律也逐渐显现出来,比如里面大量发现有这样一句
$E4keF0=call_user_func_array("define",array("jlBcRUJ","prSdesQ"));
对call_user_func_array()功能了解的朋友应该就知道这句实际意义就是:
$E4keF0=define("jlBcRUJ","prSdesQ");
其中的goto语句如:
if(is_array($GLOBALS[jlBcRUJ]))goto E4keWjgx9j;
goto E4kldMhx9j;
E4keWjgx9j:$E4kcVvP1=&$GLOBALS[jlBcRUJ][00];
goto E4kx9i;
E4kldMhx9j:$E4kcVvP1=$GLOBALS[jlBcRUJ][00];
E4kx9i:
经过逻辑分析发现其意义相当于:
if(is_array($GLOBALS[jlBcRUJ])) $E4kcVvP1=&$GLOBALS[jlBcRUJ][00];
else $E4kcVvP1=$GLOBALS[jlBcRUJ][00];
也就相当于:
$E4kcVvP1=$GLOBALS[jlBcRUJ][00];
原来的代码便成为了:
function zcode($string) {
if(!defined("jlBcRUJ"))$E4keF0=define("jlBcRUJ","prSdesQ");
else $E4keF0=explode("|=|D|T","H*|=|D|T454E434F4445|=|D|T666168756F3130302E636E");
$E4kcVvP1=$GLOBALS[jlBcRUJ][00];
$E4kcVvP2=$GLOBALS[jlBcRUJ][1];
$E4keFvP0=pack($E4kcVvP1,$E4kcVvP2);
$E4kcVvP6=$GLOBALS[jlBcRUJ][00];
$E4keFvP5=pack($E4kcVvP6,$GLOBALS[jlBcRUJ] {02} );
$E4keF8=xcode($string,$E4keFvP0,$E4keFvP5,0);
return $E4keF8;
这一段关键就看explode("|=|D|T",“H*|=|D|T454E434F4445|=|D|T666168756F3130302E636E”)的含义了。实际上它是一个数组Array(H*,454E434F4445,666168756F3130302E636E),而$GLOBALS[jlBcRUJ]即用来代表了这个数组,也就是说上面的代码实际上可以写成:
function zcode($string) {
$E4keFvP0=pack("H*","454E434F4445");
$E4keFvP5=pack("H*","666168756F3130302E636E");
$E4keF8=xcode($string,$E4keFvP0,$E4keFvP5,0);
return $E4keF8;
}
pack()里面表示的东西返回出来什么值我不知道,干脆就拿机器测试一下,结果就是:
function zcode($string) {
$E4keFvP0="ENCODE";
$E4keFvP5="fahuo100.cn";
$E4keF8=xcode($string,$E4keFvP0,$E4keFvP5,0);
return $E4keF8;
}
好吧,这段代码其实用一句就可以表达出来意思了,那就是:
function zcode($string) {
return xcode($string,"ENCODE","fahuo100.cn",0);
}
为了让这一句代码让人看不懂什么意思,写代码的人可谓煞费苦心。
goto加密会有一点防君子不防小人(指的可能就是我)的嫌疑,但是我还是要支持正版为底线的,这里的内容仅提供大家学习娱乐。整个源码我已经全部解密掉了,另外为了丰富其内容,在网站框架下添加了比特币等加密货币的支付功能,感兴趣的朋友可以去看一下。