AnyChartStock去除水印方法

  最近在使用AnyChartStock的图表,功能很强大,但下载过来是有水印的,虽然网上也有很多破解无水印的版本,但基本都是AnyChart的,AnyChartStoc的几乎没有。所以自己尝试着去除水印。

  首先想到的是用Sothink SWF Decompiler或类似的反编译工具来反编译,然后再用flash来生成swf文件,这个方法首先要装这两个软件,另外Sothink SWF Decompiler找来找去找不到一个破解版,只好有试用版本,能查看代码,发现产生水印是在一个叫'StockTrail'的类里加入的,具体代码如下:

public function StockTrial(param1:Boolean=true) {
         this.doRenderBitmap = param1;
         var _loc2_:TextFormat = new TextFormat();
         _loc2_.font = "Verdana";
         _loc2_.size = 60;
         var _loc3_:TextField = new TextField();
         _loc3_.text = "AnyChartStock Trial Version";
         _loc3_.autoSize = TextFieldAutoSize.LEFT;
         _loc3_.setTextFormat(_loc2_);
         var _loc4_:BitmapData = new BitmapData(_loc3_.width,_loc3_.height,true,0);
         _loc4_.draw(_loc3_);
         this.trialBitmap = new Bitmap(_loc4_);
         this.trialBitmap.alpha = 0.15;
         this.xmlFile = null;
         this.trialWidth = _loc3_.width;
         this.trialHeight = _loc3_.height;
         super();
      }

上面红色的‘AnyChartStock Trail Version'就是水印的文字了。但是测试版本的反编译工具不支持导入成完整的fla文件,所以只好另想办法。

  接着想到了是否可以直接修改swf的二进制文件来去掉水印文字,所以就用二进制文件查看器找开,找了半天也没找到AnyChartStock Trail Version的字样,看来没这么简单,所以就去了解了一下swf的文件格式,google了下,原来adobe提供了详细的格式说明,这个是链接

     对照格式说明,原来手头上的这个swf文件的主要内容是经过zlib压缩过的,难怪找不到文字。于是就按照格式把文件的前8个字节去掉,生成一个新文件,然后把这个文件内容进行解压缩,得到解压后的文件,再用二进制文件查看器去看时就找到AnyChartStock Trail Version的文字了,接着全部替换成空格,再压缩回去,最后把去掉的8字节加上,测试了下,大功告成,呵呵。

  随便说下我用的二进制编辑工具,叫Bless,功能很强大。另外压缩和解压缩zlib使用的是openssl zlib 的方法。

最后分享该文件,欢迎下载。

AnyChartStock: http://pan.baidu.com/s/13PfL2

AnyChart: http://pan.baidu.com/s/1oqcuE

posted on 2013-10-11 23:55  Maxwell Hu  阅读(1051)  评论(0编辑  收藏  举报