你如何在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中测试了这个. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |