在分析前端js中,Eval加密解密、js混淆概念及其破解

前端虽然开源, 但是由于前端代码量很多,也有一些特殊的保护代码的方法,其中Eval、js混淆是常用的方式,但是在大的互联网产品上用得很少,因为前端加密(RSA、AES、MD5等)是为了保证数据传输中的安全性,而非要让人难以模仿数据传输请求。

而前端中的js混淆、eval对于专业的人来说形同虚设,所以也没必要做混淆和eval,并且对于代码维护是及其不利的,所以在接触的百度、腾讯、京东的一些产品上没遇到过上面两种问题。

js中的eval()方法就是一个js语言的执行器,它能把其中的参数按照JavaScript语法进行解析并执行,简单来说就是把原本的js代码变成了eval的参数,变成参数后代码就成了字符串,其中的一些字符就会被按照特定格式“编码”,像下面:

var showmsg="粘贴要加密/解密的javascript代码到这里";
if(1==1){
  alert(showmsg);
}

eval加密:

eval(function(p,a,c,k,e,d){e=function(c)
{return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?
String.fromCharCode(c+29):c.toString(36))};
if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return 
d[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}('5 4="粘贴要加密/解密的3代码到这里";2(0==0){  
1(4);}'
,62,6,'1|alert|if|javascript|showmsg|var'.split('|'),0,{}))

变成了一串不知道什么意思的字符串,但是其中的一些关键词还是可以看清楚的。

应对这种js代码的方法也很简单,有很多在线提供eval解密的功能,可以直接复制代码解密

在这里插入图片描述

或者直接在浏览器调试模式下使用开发者工具的控制台,复制执行包含eval()的代码

在这里插入图片描述

对于js混淆很好理解就是,把其中的变量、方法位置顺序打乱,但是又用一些无关的变量或者方法来保证执行顺序,这种js混淆的也很好处理,复制完整的混淆代码去js混淆还原网站还原。

在这里插入图片描述


ID:Python之战

|作|者|公(zhong)号:python之战

专注Python,专注于网络爬虫、RPA的学习-践行-总结

喜欢研究和分享技术瓶颈,欢迎关注

独学而无友,则孤陋而寡闻!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值