博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于js加密解密
阅读量:6689 次
发布时间:2019-06-25

本文共 1042 字,大约阅读时间需要 3 分钟。

有的时候有些网站的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://ohzoo.baihongyu.com/

你可能感兴趣的文章
Linux内核调整,支持4000-8000并发
查看>>
jquery mobile 设置设备适配
查看>>
redis使用总结-redis命令总结
查看>>
创业浪潮:春天蓬勃而来
查看>>
阿里云Linux安装软件镜像源
查看>>
阿里云对象存储OSS支持版本管理特性
查看>>
用python 访问redis的几种常用方式
查看>>
SHARP MX-M261N需要维护的消除方法
查看>>
我的友情链接
查看>>
Linux Shell 基本概念及编程(5)
查看>>
RDBMS DBMS MS DB
查看>>
我的友情链接
查看>>
svn 实践
查看>>
在 PowerShell 中使用 SQL Server (3)
查看>>
我的友情链接
查看>>
CSS元素定位
查看>>
质量时代——“Jolt大奖精选丛书”有奖征文
查看>>
Python list方法总结
查看>>
DNS服务器维护命令
查看>>
六、用户与权限
查看>>