78模板网分享cms建站教程,提供网站模板、网站插件、办公模板等模板教程免费学习,找模板教程就上78模板网!

PHP混淆解密之pack还原大法

源码.jpg PHP混淆解密之pack还原大法  第1张

代码已经格式化,可以看到有大量pack,当然,不只截图中的这些,手动替换的话,肯定要换到手软。当然了,肯定有自动替换的方法,就想到了一个比较笨的办法,下边详细说下。

分析下代码,上边是pack参数的数组,存在Globals变量中,这些数组就不管了,我们直接把有pack的代码行,变成一个字符串,然后把pack部分分离出来,接到代码中,例如:

echo'$GLOBALS["'.pack("H*", $GLOBALS[AAAAA____][0x5]).'"] = "'.pack("H*", $GLOBALS[AAAAA____][06]).'";';

这样就会把这一行代码直接打印出来,打印出来后pack就被替换成真正的字符了,当然必须得自动化处理,代码如下:

<?php

$txt = file('1.php');//按行读取目标文件1.php

foreach($txt as $t){

$t = str_replace("'", "'", $t);//转义

$t = toPack($t);

echo 'echo ''.$t.'';';

}

function toPack($t){

preg_match_all('/pack([^)]*?)/s', $t, $pack);

if($pack){

foreach($pack[0] as $p){

$t = str_replace($p, '"'.'.$p.'.'"', $t);

}

}

return $t;

}

?>

经过处理后,输出的代码要替换原来的文件内容,运行一遍,才会得到去除pack的代码。

当然了,利用这种方法还能还原一些全局变量或者其他的加密标签,你可以改造得更智能,更自动化,本文仅分享一下思路,希望对你有所启发。

本文链接:http://78moban.cn/post/8151.html

版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!

联系技术
文章删除 友链合作 技术交流群
1050177837
公众号
公众号
公众号
返回顶部