嘿,伙计们在谷歌上大打出手,而这一次却堆满了.
我得到了用php chr()函数编码的php文件,下面是一些代码:
<?php require_once chr(65).chr(100).chr(109).chr(105).chr(110).chr(67).chr(111).chr(110).chr(116).chr(114).chr(111).chr(108).chr(108).chr(101).chr(114).chr(46).chr(112).chr(104).chr(112);class WP_Amazonimportproducts_ImportController extends WP_Amazonimportproducts_AdminController{protected function _isAllowed(){return Mage::getSingleton(chr(97).chr(100).chr(109).chr(105).chr(110).chr(47).chr(115).chr(101).chr(115).chr(115).chr(105).chr(111).chr(110))->{"isAllowed"}(chr(99).chr(97).chr(116).chr(97).chr(108).chr(111).chr(103).chr(47).chr(97).chr(109).chr(97).chr(122).chr(111).chr(110).chr(105).chr(109).chr(112).chr(111).chr(114).chr(116).chr(112).chr(114).chr(111).chr(100).chr(117).chr(99).chr(116).chr(115).chr(47).chr(105).chr(109).chr(112).chr(111).chr(114).chr(116));}protected function _initImport(){$this->{"_title"}($this->{"__"}(chr(67).chr(97).chr(116).chr(97).chr(108).chr(111).chr(103)))->{"_title"}($this->{"__"}(chr(87).chr(80).chr(58).chr(32).chr(65).chr(109).chr(97).chr(122).chr(111).chr(110).chr(32).chr(73).chr(109).chr(112).chr(111).chr(114).chr(116)))->{"_title"}($this->{"__"}(chr(73).chr(109).chr(112).chr(111).chr(114).chr(116).chr(32).chr(80).chr(114).chr(111).chr(100).chr(117).chr(99).chr(116).chr(115)));return $this;}protected function _initProduct(){$ =Mage::getModel(chr(99).chr(97).chr(116).chr(97).chr(108).chr(111).chr(103).chr(47).chr(112).chr(114).chr(111).chr(100).chr(117).chr(99).chr(116));$ =Mage::getSingleton(chr(97).chr(100).chr(109).chr(105).chr(110).chr(47).chr(115).chr(101).chr(115).chr(115).chr(105).chr(111).chr(110))->{"getImportSettings"}();if (isset ($ [chr(105).chr(109).chr(112).chr(111).chr(114).chr(116).chr(95).chr(112).chr(97).chr(114).chr(97).chr(109).chr(115)][chr(99).chr(97).chr(116).chr(101).chr(103).chr(111).chr(114).chr(121).chr(95).chr(105).chr(100).chr(115)])){$ ->{"setCategoryIds"}($ [chr(105).chr(109).chr(112).chr(111).chr(114).chr(116).chr(95).chr(112).chr(97).chr(114).chr(97).chr(109).chr(115)][chr(99).chr(97).chr(116).chr(101).chr(103).chr(111).chr(114).chr(121).chr(95).chr(105).chr(100).chr(115)]);我一直试图找到一个解码器,据我所知,您可以使用ord() php函数对其进行解码吗?我已经找到了一个脚本,可以将文本编码到chr(65),如果可能的话,可以反转它来解码用chr(111).chr(65)编码的php脚本--这将是令人惊讶的--我几乎没有需要解码的页面,如果它可以跳过非chr(65)代码,那么它就能工作,这样我就可以粘贴整个页面并对其进行解码。你们觉得怎么样?我怎么才能破解它?
<html>
<head>
<title>Convert String To PHP ASCII in PHP chr() function</title>
</head>
<body>
<b>Convert String To PHP ASCII in PHP chr() function:</b><br /><br />
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
<textarea name="s" rows="20" cols="100"></textarea>
<input type="submit">
</form>
<br />
<?php
$string = stripslashes($_GET['s']);
$chrstring = "";
for ($i=0; $i < strlen($string); $i++)
{
$chrstring .= "chr(" . ord(substr($string,$i,1)) . ")";
$chrstring .= ($i==strlen($string)-1)?"":".";
}
$toscreenstring = htmlentities($string);
echo "<b>Converted:</b><br />$toscreenstring<br /><b>To:</b><br />$chrstring<br /><br />-";
?>
</body>
</html>Edit!我已经找到了一个具有类似功能的php脚本来解码这个东西,但是它只在数字上工作(没有chr(数字).chr(数字),并且需要跳过非chr(数字),所以可以粘贴整个脚本并解码所需的内容。
<?php
$charset = array(
32 => ' ', 33 => '!', 34 => '"', 35 => '#', 36 => '$',
37 => '%', 38 => '&', 39 => "'", 40 => '(', 41 => ')',
42 => '*', 43 => '+', 44 => ',', 45 => '-', 46 => '.',
47 => '/', 48 => '0', 49 => '1', 50 => '2', 51 => '3',
52 => '4', 53 => '5', 54 => '6', 55 => '7', 56 => '8',
57 => '9', 58 => ':', 59 => ';', 60 => '<', 61 => '=',
62 => '>', 63 => '?', 64 => '@', 65 => 'A', 66 => 'B',
67 => 'C', 68 => 'D', 69 => 'E', 70 => 'F', 71 => 'G',
72 => 'H', 73 => 'I', 74 => 'J', 75 => 'K', 76 => 'L',
77 => 'M', 78 => 'N', 79 => 'O', 80 => 'P', 81 => 'Q',
82 => 'R', 83 => 'S', 84 => 'T', 85 => 'U', 86 => 'V',
87 => 'W', 88 => 'X', 89 => 'Y', 90 => 'Z', 91 => '[',
92 => '\\', 93 => ']', 94 => '^', 95 => '_', 96 => '`',
97 => 'a', 98 => 'b', 99 => 'c', 100 => 'd', 101 => 'e',
102 => 'f', 103 => 'g', 104 => 'h', 105 => 'i', 106 => 'j',
107 => 'k', 108 => 'l', 109 => 'm', 110 => 'n', 111 => 'o',
112 => 'p', 113 => 'q', 114 => 'r', 115 => 's', 116 => 't',
117 => 'u', 118 => 'v', 119 => 'w', 120 => 'x', 121 => 'y',
122 => 'z', 123 => '{', 124 => '|', 125 => '}'
);
function fromNumber($number)
{
$string = '';
while($number)
{
$value = substr($number, 0, 2);
$number = substr($number, 2);
if($value < 32)
{
$value .= substr($number, 0, 1);
$number = substr($number, 1);
}
$string .= $charset[ (int) $value];
}
return $string;
}
function fromString($string)
{
$number = '';
foreach(str_split($string) as $char) $number .= ord($char);
return $number;
}
$string = 'this is my test string to convert';
$number = fromString($string);
$string = fromNumber($number);
?>发布于 2013-03-09 21:43:08
给你:
function callback($hits){
return chr($hits['1']);
}
$php_content = file_get_contents("./myFile.php");
$php_content = preg_replace_callback('/chr\((\d+)\)(\.|)/', "callback", $php_content));
file_put_contents("./myFile.php", $php_content);只要循环它,直到你的所有文件被“解码”。
编辑:
您只需要知道所有文件都是不可读的,并将它们放到这个数组中,如下所示:
$files = array();
$files[] = "./folder/file1.php";
$files[] = "./folder/file2.php";
$files[] = "./folder/file3.php";
$files[] = "./folder2/file4.php";
$files[] = "./folder2/file5.php";
$files[] = "./file1.php";
foreach($files as $file){
$php_content = file_get_contents(file);
$php_content = preg_replace_callback('/chr\((\d+)\)(\.|)/', "callback", $php_content));
file_put_contents(file, $php_content);
}或者,如果它是一个文件和所有子文件夹等的整个文件夹,请查看http://php.net/manual/de/class.recursivedirectoryiterator.php
发布于 2013-03-09 21:28:13
编码行为require_once 'AdminController.php' ; 以下是回显的值,当您将require_once替换为echo时,包含被取消,因为您收到了错误“致命错误:类'WP_Amazonimportproducts_AdminController‘未找到”。在您的代码中,您可以回显并要求语句。
...
require_once chr(65).chr(100).chr(109).chr(105).chr(110).chr(67).chr(111).chr(110).chr(116).chr(114).chr(111).chr(108).chr(108).chr(101).chr(114).chr(46).chr(112).chr(104).chr(112);
echo chr(65).chr(100).chr(109).chr(105).chr(110).chr(67).chr(111).chr(110).chr(116).chr(114).chr(111).chr(108).chr(108).chr(101).chr(114).chr(46).chr(112).chr(104).chr(112);
...发布于 2013-03-09 21:38:27
嗯,我知道这不是你所期望的答案,但是当你知道如何解码它的时候,因为仅仅为了解析另一个php文件而编写一个php程序太困难了,我会这样做,我会把文件加载到类似MS Word或任何其他文本处理器上,它可以是一个记事本,搜索一个require/include (Ctrl),删除所有不包含它的行,然后只删除剩下的echo,就像Vahe所写的那样。
我知道这并不能回答您的问题(“如何在php中执行此操作?”),但我确实认为这不值得,因为您可能没有那么多包含或需要函数。在我看来,编写PHP程序在这种情况下并不是最理想的。
https://stackoverflow.com/questions/15315988
复制相似问题