一招破解混淆后的JavaScript代码
http://www.cnblogs.com/zjyuan/archive/2011/12/14/2287647.html JavaScript不是很给力,想怎么破解就怎么破解!此文章教你的不仅仅是破解方案,还有源码保护意识!
一、原理:
JavaScript是解释性语言,没有悬念,它严重依赖游览器。不管JavaScript如何混淆,最终浏览器都会知道最真实的代码。有朋友提出质疑,混淆方式千千万万,你如果知晓它的混淆方式,并制定出反混淆算法?如果你这么想,那就陷入了泥潭,为何不另辟蹊径呢?首先,作为成熟的JavaScript产品,混淆是必须的。但是,他必须提供给浏览器反混淆算法,因为用户需要运行。而运行这两个字却提供给我无限的契机。我不需要知道反混淆算法,我只要知晓一个接口,有IE9->F12的帮助,一切都变的很简单,因为浏览器内核中有我迫切想要的东西。有朋友提问,我混淆过后,不给你接口或不给浏览器反混淆算法。我给出的答案永远是:运行不起来的代码,统统都是废代码,一无是处,我也懒得去破解。
二、方案:
当你需要学习一款JavaScript产品的源码,却无情遭到混淆,心情恐怕是糟糕的。所以你只能拿到官网例子,然后进一步学习。什么?例子?那就好办了,这不就是我想要的接口么?首先记住,只要JS源码里含有throw,那咱们就成功了一大步。首先找到这个接口,嗯,参数一切正常。正常?可不是咱们想要的,咱真正要做的就是让源代码抛出异常,让Eval Code还原出最真实的代码。我故意改一个错误的参数传进去。好吧,源代码已经展现在我眼前。
三、源码保护解决方案:
①混淆前,让变量、方法名不可读:
阴招啊,绝对的阴招。当人家破解完后你的代码,一眼望去,看一眼都觉得损了阳寿。不过,这样做的话,还有一个麻烦,就是你对外开发人员提供的API必须是有意义的,要不然谁也读不懂,这期间的映射工作,也非常的复杂。
②浏览器厂商配合:
真正的实现JS源码保护,非浏览器厂商参与不可,妄图用JS全程实现源码保护是不现实的。
③杜绝源码里存在throw
一招破解混淆后的JavaScript代码的更多相关文章
- MVC POST请求后执行javascript代码
[HttpPost] public ActionResult PostTest() { //你的业务代码 //...... //要执行的js string js = "window.loca ...
- 【转】使用Jasob混淆javascript代码
在平常的web开发中,我们时常需要写一些js的类库,当我们发布自己产品的时候,不得不把源代码分发出去:但是这样就会泄露自己的代码.今天使用了一下Jasob感觉不错: 使用Jasob,我们的JavaSc ...
- 如何对Javascript代码进行二次压缩(混淆)
如何对Javascript代码进行二次压缩(混淆) 对Javascript代码进行压缩(混淆),可以有效减少传输和加载时间.但是,不是所有的变量(方法)都能被混淆的,一般来说,只有非属性的变量(方法) ...
- JS Nice – JavaScript 代码美化和格式化工具
JS Nice 是一款让经过混淆处理的 JavaScript 代码可读更好的工具.它使用一种新型的用于 JavaScript 代码美化的去混淆和去压缩引擎.JSNice 采用先进的机器学习和程序分析技 ...
- JavaScript 之 解码类似eval(function(p,a,c,k,e,d){}))的JavaScript代码
这里以解码百度访问统计代码构造函数为示例: 以下为要统计JavaScript源码:红色加粗部分将是要修改的地方. eval(function(p,a,c,k,e,d){e=function(c){re ...
- Google Closure Compiler高级压缩混淆Javascript代码
一.背景 前端开发中,特别是移动端,Javascript代码压缩已经成为上线必备条件. 如今主流的Js代码压缩工具主要有: 1)Uglify http://lisperator.net/uglifyj ...
- Android 混淆后的代码调试
ProGuard的输出文件及用处 混淆之后,会给我们输出一些文件,在gradle方式下是在<project_dir>/build/proguard/目录下,ant是在<project ...
- JS函数 编程练习 使用javascript代码写出一个函数:实现传入两个整数后弹出较大的整数。
编程练习 使用javascript代码写出一个函数:实现传入两个整数后弹出较大的整数. 任务 第一步: 编写代码完成一个函数的定义吧. 第二步: 我们来补充函数体中的控制语句,完成函数功能吧. 提示: ...
- 【转】javascript代码混淆和压缩
隐藏 JavaScript 源代码?不,你只能混淆和压缩JavaScript源代码 http://www.yaohaixiao.com/tools/confuse-and-compressing-ja ...
随机推荐
- 基于CDH,部署Apache Kylin读写分离
一. 部署读写分离的契机 目前公司整体项目稳定运行在CDH5.6版本上,与其搭配的Hbase1.0.0无法正确运行Kylin,原因是Kylin只满足Hbase1.1.x+版本.解决方案如下 1. 升级 ...
- StringFormat
public class StringFormatDemo { public static void main(String[] args) { String str = null; str = St ...
- WEB安全扫描器Netsparker推荐给大家
Netsparker是一款综合型的web应用安全漏洞扫描工具,它分为专业版和免费版,免费版的功能也比较强大. Netsparker与其他综合 性的web应用安全扫描工具相比的一个特点是它能够更好的检测 ...
- ASCII表 基本记忆 -- C
/* ASCII表规则记忆 我们仅仅要记住了一个字母或数字的 ASCII 码 (比如记住 A 为 65 , 0 的 ASCII 码为 48 ), 知道对应的大写和小写字母之间差 32. 0 -- 32 ...
- Spring依赖检查
在Spring中,可以使用依赖检查功能,以确保所要求的属性可设置或者注入. 依赖检查模式 4个依赖检查支持的模式: none – 没有依赖检查,这是默认的模式. simple – 如果基本类型(int ...
- g++ 链接*.a静态库 方法
g++在链接*.a静态库时,直接作为object使用,不需要使用-l ,但是需要注意调整顺序,被依赖的文件放在后面. 如: g++ -g -o0 -Wno-deprecated -I$(INCL ...
- LINUX开启允许对外访问的网络端口命令
LINUX通过下面的命令可以开启允许对外访问的网络端口: /sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT #开启8000端口 /etc/rc ...
- ASP.NET Core 1.0 基础之配置
来源https://docs.asp.net/en/latest/fundamentals/configuration.html ASP.NET Core 1.0支持不同的配置选项.应用配置数据可以是 ...
- Linux开发环境必备十大开发工具
Linux是一个优秀的开发环境,但是如果没有好的开发工具作为武器,这个环境给你带来的好处就会大打折扣.幸运的是,有很多好用的Linux和开源开发工具供你选择,如果你是一个新手,你可能不知道有哪些工具可 ...
- 使用tortoisegit访问git@oschina
转自:http://www.3lian.com/edu/2014/01-03/121350.html 首先,如果你想使用git@oschina ,你的电脑上必须先有git工具:你可以从这里获取谷歌提供 ...