<p>原帖见:<a target="_blank" href="http://neeao.com/archives/11/">http://neeao.com/archives/11/</a></p><p>微盾PHP加密专家(PHPCodeLock)介绍见:</p><p><a target="_blank" href="http://www.vidun.com/vwsoft-vwphpcodelock-intro.html">http://www.vidun.com/vwsoft-vwphpcodelock-intro.html <br /></a></p><p>上面介绍的解密方面是常规的逐步逆向解密,这里弄懂加密原理,知道最终执行是由eval来完成。所以换种思路。内部替换eval。并且可以作为一种解密eval的通用脚本</p><p>具体代码如下:<br /></p>
/*eval通用解密:这里会自动生成debug_0.php,debug_1.php...等文件,其中数字最大的文件并是解密后的脚步。*/
function eva_($__str) {
static $o_o;
++$o_o;
extract($GLOBALS);
$__str = str_replace('eval(','eva_(',$__str);
preg_match_all('~(\$\w+)\=~is',$__str,$__vars);
if($__vars[1]) $__str = 'global '.implode(',',array_unique($__vars[1])).';'.$__str;
$_arr = explode("\n",$__str);
array_shift($_arr);
file_put_contents('debug_'.$o_o.'.php',"");
eval($__str);
}
$data = file_get_contents("yourfile.php");
$data = str_replace("eval(","eva_(",$data);
file_put_contents("debug_0.php",$data);
require "debug_0.php";
2010-03-27 06:08:07