班级档案http://pastebin.com/apGPiAXd
我找到了一个php端口,用于对javascript的dean edwards packer进行编码和解码。位于http://joliclic.free.fr/php/javascript-packer/en/
。我对这个类的编码方面不感兴趣,但对解码部分不感兴趣。我想采取这样的事情
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('4.8=9(a){1 b=e f();1 c=4.g("*");5(1 i=0;i<c.6;i++){2(c[i].3.h(" ")>=0){1 d=c[i].3.k(" ");5(1 j=0;j<d.6;j++){2(d[j]==a){b.7(c[i])}}}l 2(c[i].3==a){b.7(c[i])}}m b}',23,23,'|var|if|className|document|for|length|push|getElementsByClassName|function|||||new|Array|getElementsByTagName|indexOf|||split|else|return'.split('|'),0,{}))
并将其放在变量中并通过要解码的类运行它。我不知道如何让javascript进入要解码的类?也许是这样的:
require 'class.JavaScriptPacker.php';
$packed_javascript = $_GET["js"];
/* run $packed_javascript through class*/
return $decoded_javascript;
答案 0 :(得分:1)
您可以在浏览器中轻松打开开发人员控制台(在chrome或firebug中使用ctrl + j等),将打包的JS代码粘贴到控制台中,然后在输入之前只需更换&#34; eval&#34;使用&#34; console.log&#34;或&#34;警告&#34; 。
我知道这篇文章已经过时但我遇到了同样的问题,并且认为我发布了我的解决方案。你很受欢迎。
答案 1 :(得分:0)
这里是上面解压缩的java脚本。是你想要的吗?
document.getElementsByClassName=function(a)
{
var b=new Array();
var c=document.getElementsByTagName("*");
for(var i=0;
i<c.length;
i++)
{
if(c[i].className.indexOf(" ")>=0)
{
var d=c[i].className.split(" ");
for(var j=0;
j<d.length;
j++)
{
if(d[j]==a)
{
b.push(c[i])
}
}
}
else if(c[i].className==a)
{
b.push(c[i])
}
}
return b
}
答案 2 :(得分:0)
旧问题,但这里是简单的解码写在PHP
<?php
$a = "eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('4.8=9(a){1 b=e f();1 c=4.g("*");5(1 i=0;i<c.6;i++){2(c[i].3.h(" ")>=0){1 d=c[i].3.k(" ");5(1 j=0;j<d.6;j++){2(d[j]==a){b.7(c[i])}}}l 2(c[i].3==a){b.7(c[i])}}m b}',23,23,'|var|if|className|document|for|length|push|getElementsByClassName|function|||||new|Array|getElementsByTagName|indexOf|||split|else|return'.split('|'),0,{}))";
$pos = strpos($a, '}(');
$a = substr($a, $pos);
$pos = strpos($a, ",'");
$b = substr($a, 0, $pos);
$c = substr($a, $pos+2);
$pos = strpos($c, "'.");
$c = substr($c, 0, $pos);
$items = explode('|', $c);
//var_dump($items);
for ($i = count($items); $i >= 0; $i--) {
$b = str_replace($i, $items[$i], $b);
}
$b = str_replace("\'", "'", $b);
echo ' procedure: ';
echo $b;
?>