我在互联网上搜索但到目前为止找不到任何解决方案。
我必须实时扫描使用Dean Edwards packer tool压缩的网页内容(包含视频流)。
因此,我只需要通过PHP解码压缩的JS。 (完整场景:卷曲页面内容,找到JS内容并实时解码,这样我就可以得到动态视频流。)
那么,有没有办法只通过PHP解码这个压缩的js示例?
压缩代码的示例:
eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||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}('(0(){4 1="5 6 7 8";0 2(3){9(3)}2(1)})();',10,10,'function|b|something|a|var|some|sample|packed|code|alert'.split('|'),0,{}))
谢谢
答案 0 :(得分:4)
首先,您必须将打包的javascript拆分为相关部分。
第一部分来自" eval"到"}('"与您无关:
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}('
第二部分是您的最小化功能(有效负载):
(0(){4 1="5 6 7 8";0 2(3){9(3)}2(1)})();
第三部分是基数,当您解码有效载荷时,您将使用它作为基础:
10
第四部分是字数:
10
第五个相关部分是您的关键字(以|分隔):
function|b|something|a|var|some|sample|packed|code|alert
最后一部分也无关紧要:
'.split('|'),0,{}))
所以基本上你现在拥有解码所需的所有部分:
$payload = '(0(){4 1="5 6 7 8";0 2(3){9(3)}2(1)})()';
$radix = 10;
$wordCount = 10;
$words = array("function","b","something","a","var","some","sample","packed","code","alert);
现在,您必须使用单词数组中的相应单词替换有效负载中的所有单词字符。在您的示例中它很简单,因为您的源JavaScript只包含10个单词。
第一个字charahter是0,用$ words [0] = function
替换它第二个单词是4,用$ words [4] = var
替换等等......
当你完成后,你的结果应该是:
(function(){var b="some sample packed code";function something(a){alert(a)}something(b)})();
当谈到单词>时,它当然有点复杂。 10.
但为此,您可以查看我的解包器类PHP JavaScript unpacker。
特别是源中的Unbaser类。
答案 1 :(得分:0)
我认为你混淆了几件事。
所以你真正的问题可能是:我如何对此进行混淆。
你看到的是eval
的东西。那个eval'运行' javascript代码,所以第一步是找出eval中的实际javascript代码返回的内容,因为这是你的浏览器/ javascript解析器将运行的内容。如果你很幸运,这是你正在寻找的代码,但它可能需要一些按摩。
所以剥离eval ,然后看看在javascript 中运行时该函数实际执行了什么操作。这意味着您应该使用特殊的服务器端方法在服务器上运行它,或者您可以自己破解。
现在你可以看到你还剩下什么了。也许现在你重新开始,但是使用javascript解析方法,这应该不是问题。
示例是(随机谷歌搜索):http://j4p5.sourceforge.net/
评论中提到的http://www.php.net/manual/en/book.v8js.php可能是一个更好的选择。
答案 2 :(得分:0)
您可以使用JavaScriptUnpacker,它是用PHP编写的