【问题标题】:decode dean edwards javascript packer with a php class用 php 类解码 dean edwards javascript packer
【发布时间】:2011-12-04 08:46:21
【问题描述】:

类文件http://pastebin.com/apGPiAXd

我找到了一个 php 端口,可以对 dean edwards packer for javascript 进行编码和解码。位于此处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;

【问题讨论】:

  • 你试过了吗?我的意思是什么没用?很高兴知道,如果该类具有解码功能,它应该可以工作,不是吗?
  • @hakre 我不知道如何测试任何东西,因为我不知道如何通过类运行打包的 javascript 以对其进行解码
  • 刚刚看到,PHP 类没有解码功能。这需要一个解码函数。
  • @hakre 在类文件中称为 $fastdecode 第 43 行 - pastebin.com/apGPiAXd
  • 该属性与浏览器中的 javascript 解码有关,这就是您现在要寻找的。您需要一个 PHP 解码功能,而不是更改 javascript 解码器的类型。

标签: php javascript decode


【解决方案1】:

您可以简单地在浏览器中打开一个开发者控制台(在 chrome 或 firebug 等中按 ctrl+j),将打包的 JS 代码粘贴到控制台中,然后在您按下回车键之前,只需将“eval”替换为“console.log”或“alert”

我知道这篇文章很旧,但我也遇到了同样的问题,我想我会发布我的解决方案。不客气。

【讨论】:

    【解决方案2】:

    这里是上面解压的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
    }
    

    Reference

    【讨论】:

    • 谢谢,但我希望能够将打包的 javascript 作为字符串发送到要解码并显示给我的类。我不能依赖第三方网站
    • 有很多开源项目,你可以自己下载使用。
    • @diEcho:实际上这看起来像 -1:您刚刚使用第三方网站解码了一些 javascript 并将其粘贴到此处 - 但根本没有回答问题。我想知道你是否真的可以提供一个可以解码打包的javascript而不是造词的PHP类。
    【解决方案3】:

    老问题,但这里是用 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;
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 2011-05-01
      • 1970-01-01
      • 2011-04-20
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      相关资源
      最近更新 更多