加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

你如何在python中使用jsbeautifier解压缩javascript?

发布时间:2020-12-20 13:34:37 所属栏目:Python 来源:网络整理
导读:我有这个 javascript代码,我想解压和美化,它看起来类似于: eval(function(p,a,c,k,e,r){e=String;if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'^$'};c=1};while(c--)if(k[c])p=p.replace(new RegE
我有这个 javascript代码,我想解压和美化,它看起来类似于:

eval(function(p,a,c,k,e,r){e=String;if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'^$'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('b'+e(c)+'b','g'),k[c]);return p}('document.body.innerHTML="<iframe width='100%' scrolling='no' height='2500' frameborder='0' src='http://www.exmaple.com'>";',[],1,''.split('|'),{}))

当我把它放到jsbeautifier.org时,我得到:

document.body.innerHTML = "<iframe width='100%' scrolling='no' height='2500' frameborder='0' src='http://www.example.com'>";

但是当我尝试使用python库(使用jsbeautifier.beautify)时,它似乎没有正确解压缩:

print al(function (p,r) {
    e = String;
    if ('0'.replace(0,e) == 0) {
        while (c--) r[e(c)] = k[c];
        k = [
            function (e) {
                return r[e] || e
            }
        ];
        e = function () {
            return '^$'
        };
        c = 1
    };
    while (c--) if (k[c]) p = p.replace(new RegExp('b' + e(c) + 'b',k[c]);
    return p
}('document.body.innerHTML="<iframe width='100%' scrolling='no' height='2500' frameborder='0' src='http://www.example.com'>";',{}));

我究竟做错了什么?

编辑:Python代码是:

import jsbeautifier
#script needs to have 'n' at the beginning otherwise jsbeautifier throws an error
script = """neval(function(p,k[c]);return p}('document.body.innerHTML="<iframe width='100%' scrolling='no' height='2500' frameborder='0' src='http://www.example.com'>";',{}))"""
jsbeautifier.beautify(script)

解决方法

你应该导入这个模块:

import jsbeautifier.unpackers.packer as packer
unpack = packer.unpack(some_packed_code)

我在Windows 32bit,jsbeautifier 1.54中测试了这个.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读