关于js加密解密
有的时候有些网站的js用简单的eval混淆加密了.解密其实很简单的
解密JS的eval加密码的方式
例如这段:

很多朋友以为这段代码是“加密”的,其实这也谈不上是加密,只能算是一种编码(Encode)或者也可以成为是一种打包(packer),类似于base64这样的编码,都是可以以一定方式还原的,当然也就是“解密”了。
我们仔细分析这一段代码,不难发现代码开头都是eval,特征字符串是function(p,a,c,k,e,r)或者是function(p,a,c,k,e,d),其实这样的pack方式是dean edwards提出的,
你可以访问其个人主页以获取这方面的最新信息。后来还有一些编码打包方式也是eval开头,但是特征字符串p,a,c,k,e,r(d)改变了,我们姑且称为是这种打包方式的一个变种吧,其实解码很简单,我们回顾一下JavaScript脚本中eval含义及用法。
其实就是调用JavaScript分析解释器处理有效的js脚本字符串,注意我这里提到的是字符串,有点类似于ASP的Execute方法。好,既然eval执行的字符串,那么function(p,a,c,k,e,r)函数肯定返回的是字符串,究竟是什么内容呢?你猜对了,就是我们要解码的源代码,其实function(p,a,c,k,e,r)相当于是个自解码函数,返回的就是解码好的源代码,然后传递给eval,那么这段解码后的字符串脚本就执行了。
到这里,突破点就有了,那就是function(p,a,c,k,e,r)这样的自解码函数,我们要获取其返回的字符串,怎么办?很简单,替换eval函数就可以了,比如替换成alert或者document.write,那么明文是不是显示出来了?刚开始讲到的代码可以变成这样:
检查 JavaScript 代码并执行。
eval(codeString)
必选项 codestring 参数是包含有效 JavaScript 代码的字符串值。这个字符串将由 JavaScript 分析器进行分析和执行。
很好,原文已经显示出来了,我们可以喝口水了,不过这样也不是很方便的哎,所以我专门写了个在线eval解密解码unpack的工具,大家可以访问这里来使用,哦,对了,针对多层编码的情况,我这里主要是判断开头eval实现的,另外还加入脚本格式化功能,便于解码后代码的阅读。(据网友反映:该在线工具目前在IE9和最新版FF6下工作正常,其他浏览器可能会有问题。不过我会尽快调查以解决该问题!)
以上参考内容出自http://wangye.org/blog/archives/225/
关于js加密解密的更多相关文章
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
js中对arry数组的各种操作小结 最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊 ...
- 关于HTML或JS加密解密的七种方式
本文一共介绍了七种方法: 一:最简单的加密解密 二:转义字符""的妙用 三:使用Microsoft出品的脚本编码器Script Encoder来进行编码 (自创简 ...
- JAVASCRIPT加密方法,JS加密解密综述(7种)
一:最简单的加密解密 对于JAVASCRIPT函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码 用escape()函数加密后变为 ...
- js加密解密 base64
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...
- js 加密解密 TripleDES
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- web前端url传递值 js加密解密
一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: <script type=”text/javascript ...
- RSA JS 加密解密DEMO
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script&g ...
- js加密解密
<script> document.write("<xmp>"); document.write(function(p,a,c,k,e,r){}(''.sp ...
- JS七种加密解密方法
http://www.cnblogs.com/mq0036/p/4983858.html HTML或JS加密解密 本文一共介绍了七种方法: 一:最简单的加密解密 二:转义字符"\&q ...
随机推荐
- 2017-2018 ACM-ICPC Northern Eurasia (Northeastern European Regional) Contest (NEERC 17) 日常训练
A - Archery Tournament 题目大意:按时间顺序出现靶子和射击一个位置,靶子的圆心为(x, y)半径为r,即圆与x轴相切,靶子不会重叠,靶子被击中后消失, 每次射击找出哪个靶子被射中 ...
- CentOS7安装私有gitlab
1.安装依赖包 yum install -y curl policycoreutils openssh-server openssh-clients postfix systemctl start p ...
- Windows 上面优秀的工具软件推荐
Windows 上面优秀的工具软件推荐 一.下载软件 1.速盘 - 度盘神器 简介: 使百度网盘保持全速下载免受限速困扰! 下载: speedpan 2.http下载工具 百度网盘破解下载器:prox ...
- 二:Ionic Framework支持Android开发
首先安装ionic,在使用npm下载ionic和cordova的过程中有问题可以使用淘宝的npm镜像,具体的方法可以参考网络 npm install -g ionic cordova 其他还需要安装J ...
- jQuery插件开发,jquery插件
关于jQuery插件的开发自己也做了少许研究,自己也写过多个插件,在自己的团队了也分享过一次关于插件的课.开始的时候整觉的很复杂的代码,现在再次看的时候就清晰了许多.这里我把我自己总结出来的东西分享出 ...
- AttributeError: 'ForeignKey' object has no attribute 're' 解决办法
使用 field_object.rel.model.objects.filter(**db_condition) 报错 forekey中存在rel,为什么不能调用? 通过以下语句观察 print(fi ...
- 洛谷P3943星空
啦啦啦啦——又是五月天的歌,题目传送门 这道题比之前两道真的不是同一级别的,这里我这个蒟蒻也讲不清,不如看下这位大佬的吧,他的写的已经非常清楚了:Z-Y-Y-S,这里我就只放下我的代码,也是按照这位大 ...
- SOAP消息的结构
概述 介绍SOAP报文的结构,以及获取的方式. 正文 1.其实发送的是SOAP消息 在前面讲述过使用Eclipse的工具Web Services Explorer发送请求.在Actions中填写请求参 ...
- C++中的error C2662,const的this指针问题
今天在写C++代码的时候遇到一个错误,涉及到了常量的this指针的问题. 简化后的代码如下: #include <iostream> #include <string> usi ...
- AGC 020 B - Ice Rink Game
题面在这里! 倒着维护可以取的范围区间,判一下可不可能无解即可. #include<bits/stdc++.h> #define ll long long using namespace ...