web development blog

> 前端技术 jQuery放大镜CloudZoom插件:分析-反编译-破解

jQuery放大镜CloudZoom插件:分析-反编译-破解

 

为什么要分析它,反编译它,破解它?不为啥,就是看不惯它在依赖jQuery基础上开发的插件要收费的这种行为。如果它是不依赖其他类库,独立开发的我也尊重他们的劳动成果。

刺激归刺激,但是也产生了兴趣,他们是如何来保护他们的版权呢?

 

一、分析

 

打开CloudZoom.js一看,密密麻麻,别晕!你也行很快会发现它才用一些十六进制混淆,我们就先搞懂这写关键的十六进制是啥:

 

  • Function:\x46\x75\x6E\x63\x74\x69\x6F\x6E
  • reverse:\x72\x65\x76\x65\x72\x73\x65
  • join:\x6A\x6F\x69\x6E

 

看到这几个js关键字,我们就能大体上推测到它的原理:

( new Function( ['js_str_2','js_str_1','js_str_0'].reverse().join('') ) )();

 

具体流程:

 

  • 1.cloudzoom的核心js拆分为很多小段的字符串
  • 2.并且把这些字符串倒过来,组织成一个数组
  • 3.然后在由数组的reverse和join方法还原回去
  • 4.最后利用new Function方式,接收cloudzoom字符串,创建一个函数并且运行

 

二、反编译它

 

我们明白具体流程后,我们只要把数组定义出去,然后借助浏览器的控制平台输出还原后的cloundzoom字符串就搞定。如下:

var cloudzoom_str_arr = ['.','..'];
( new Function( cloudzoom_str_arr.reverse().join('') ) )();
console.log(cloudzoom_str_arr.reverse().join(''));

我们在浏览器的控制台就可以得到cloundzoom的核心代码了,然后把他们复制出来,用个js格式化工具格式化一下就可以进行下一步破解了。

 

三、破解

 

别以为到了这步就简单了,查找“Unlicensed Cloud Zoom”关键字也是找不到的,因为他们还有混淆加密。嘿,其实也没啥,加密也好,从另一个角度来说,你看的懂的代码你忽略,你看不懂觉得奇怪的代码块你就要留意,这样一来,反而被他们混淆的代码块变得很突出,很吸引人注意了。

 

结果分析查找,你就会发现他所谓的混淆加密都是经过一个h()函数解密还原的,只要我们敲几个console.log()输出调试信息,我们就很快能找到版权信息设置的代码快了

 

具体描述:版权信息是有jquery动态创建一个div对象,然后判断显示版权文本是“Cloud Zoom (trial) starplugins.com”还是“Unlicensed Cloud Zoom”;然后就是还原css对象,动态添加css,最后就是把他appendTo到放大镜外围层里面.

 

附反编译后版本下载(含2种方式破解说明):cloudzoom Version 3.1

-留言评论-

  • 留言载入中...

-拍砖-

 

首页|前端技术|编程/php|生活|关于我

Copyright © 2012 wmhfly.com