FusionChart 水印破解方法(代码版)
网上一直找不到有关去除水印的方法!
正好做项目要用到这个鬼东西,折腾了一天,总算破解成功,把方法告诉大家。
先看下破解前的效果。

这是个很烦人的东西,而且有一个更加让人烦人的地方, 就是根本无法买!为什么,因为FusionChart官方已经停止下载了!就是说
你想买都买不到了,这可怎么办呢?没关系,我叫你手把手破解哦 = =。
为了成为一个好心人,今天我免费把我的FusionChart的完整版共享给大家,希望有用的人以后可以用到哦。
->下载地址 提取码:8tb9
我分享给大家的FusionChart不仅仅只有js和swf文件,更有asp.net工程等,PHP等,我网上看到过很多包,不过都没我这个齐全哦。
好吧,废话不多,开始破解,我们破解的话需要一些工具哦。
我们先要明白,是swf文件的问题,所以我们需要下载SWF反编译工具,
我推荐一个免费的,网上的大部分工具都很黑,要钱。
我这个不仅是免费的,还是汉化版的。
推荐使用Flash Decompiler Trillix ,
-->下载地址 提取码:sfmm
好了,我们下载完成以后,打开那个有水印的FLASH文件。

我这里因为是曲线图,所以是Spline.swf
然后大家可以在右边窗口看到脚本这一项。
因为我已经找到这一句加水印的话了,所以就直接打开6。
如果是其他的文件这句话的地方可能不同,大家如果想用Ctrf+F去查找的话,这里不能进行多文件查找,所以比较麻烦,
查找的话,推荐使用闪客精灵,记住别买哦,这东西超贵的,给大家的只是演示,说明闪客精灵可以准确定位那一句话的具体文件的位置。
好吧,不废话。
下一步我们找到了这句话。

恩,找到了,不过我们才成功一半,我们需要把文件导出成fla格式的。
打开转换菜单,然后在右边的窗口选择SWF全部,至于要导出的FLASH版本,最好是越高越好,
我用的ADOBE Flash cs5,如果你安装了对应版本的Flash ,那么导出成功以后会自动打开FLASH。

这里我们先点击转换当前。
打开了FLASH。先暂时不管他。
我们先打开转换后的目录,里面有FLA文件盒as文件。

我们这里在FLASH里面把所有的as文件都打开,然后再把所有的文件的任意地方打一个空格,保存,记得所有文件都要保存哦,这一步是最重要的
如果做得不完整的话,就会造成图表缺失或者是打不开,因为后面的导出影片会编译这些文件。

如上图,打开所有文件。
然后我们找到底下的Chart.as文件
依然是Ctrl+F查找Evaluation可以直接定位到那句话,去掉那句话和超链接OK。

然后返回FLA文件,导出影片。

替换到以前的就OK了,大功告成!

晚上了再个大家发一个福利。大家知道FusionChart是以键值对的形式添加的就是
<set lable='xxxx' value='xxx'>
大家有没有注意到,我上面的Label也是数字呢?哈哈,这个数字是不是间距应该不同呢?但是为什么一样呢?
因为FusionChart不提供2种数字的比例图,这就要我们自己去修改API,其实也不是很高深哦,我先放一张效果图。

看到了没,间距不一样哦~~
这个怎么实现的呢?
首先我们需要找到他添加X轴坐标的地方,这个地方其实很难找,但是我已经找到了,直接告诉大家把。
大家反编译出来的FLA文件附带了很多AS文件,在com\fusioncharts\core\chartsSpline2DChart.as里面,打开这个文件
定位到850行左右,如下图,可以看到X轴和Y轴的设置方法。

我们把X轴注释掉(防止以后要用),然后自己写一个X轴,这里我们为了方便,就用Y轴的方法。
嘿嘿,其实FC留了一个后门的,其实直接用这个GetAxisPositon方法就OK。
我们来 看一下这个方法的样子。
这个方法在SingleYAxisChart.as里面。
function getAxisPosition(value, upperLimit, lowerLimit, startAxisPos, endAxisPos, isYAxis, xPadding)
{
var __reg3 = undefined;
var __reg2 = undefined;
var __reg1 = undefined;
var __reg4 = undefined;
__reg3 = upperLimit - lowerLimit;
if (isYAxis)
{
__reg2 = endAxisPos - startAxisPos;
__reg1 = __reg2 / __reg3 * (value - lowerLimit);
__reg4 = endAxisPos - __reg1;
}
else
{
__reg2 = endAxisPos - startAxisPos - 2 * xPadding;
__reg1 = __reg2 / __reg3 * (value - lowerLimit);
__reg4 = startAxisPos + xPadding + __reg1;
}
return __reg4;
}
SingleYAxisChart.as
注意里面有一个if (isYAxis) 哈哈,这个就是说,如果是Y轴,那么我们肯定不是Y轴。所以这个参数要写FALSE。
下面我们回到正题,把这个方法写出来
while (__reg2 <= this.num)
{
// this.data[__reg2].x = this.num == 1 ? this.elements.canvas.x + this.elements.canvas.w / 2 : this.elements.canvas.x + this.params.canvasPadding + __reg20 * (__reg2 - 1);
this.data[__reg2].x = this.getAxisPosition(this.data[__reg2].label, this.getMaxDataValueX(), this.getMinDataValueX(), this.elements.canvas.x, this.elements.canvas.toX, false, 0);
this.data[__reg2].y = this.getAxisPosition(this.data[__reg2].value, this.config.yMax, this.config.yMin, this.elements.canvas.y, this.elements.canvas.toY, true, 0);
this.data[__reg2].valTBY = this.data[__reg2].y;
++__reg2;
}
需要改动的地方
getAxisPosition里面的参数功能是这些
function getAxisPosition(value, upperLimit, lowerLimit, startAxisPos, endAxisPos, isYAxis, xPadding)
value:判断是label或者value
upperLimit:上限,放到X轴即最右边的极限
lowerLimit:最小值
startAxisPos:开始的坐标位置,这里直接把对应的Y改成X。
endAxisPos:结束的坐标位置,同上
isYAxis:是否是Y轴
xPadding:X轴PADDING,顾名思义啦。
这里我还创建了2个方法。一个是得到X轴最大值,一个是得到Y轴最大值,这里也可以写死,不过推荐大家写活的。
方法如下:可以参考Y轴的方法,把value替换成label就OK了
//获得X轴的最大值
function getMaxDataValueX()
{
var __reg3 = undefined;
var __reg4 = false;
var __reg2 = undefined;
__reg2 = 1;
while (__reg2 <= this.num)
{
if (__reg4 == false)
{
if (this.data[__reg2].isDefined == true)
{
__reg4 = true;
__reg3 = this.data[__reg2].label;
}
}
else if (this.data[__reg2].isDefined)
{
__reg3 = this.data[__reg2].label > __reg3 ? this.data[__reg2].label : __reg3;
}
++__reg2;
}
return __reg3;
} //获得X轴的最小值
function getMinDataValueX()
{
var __reg3 = undefined;
var __reg4 = false;
var __reg2 = undefined;
__reg2 = 1;
while (__reg2 <= this.num)
{
if (__reg4 == false)
{
if (this.data[__reg2].isDefined == true)
{
__reg4 = true;
__reg3 = this.data[__reg2].label;
}
}
else if (this.data[__reg2].isDefined)
{
__reg3 = this.data[__reg2].label < __reg3 ? this.data[__reg2].label : __reg3;
}
++__reg2;
}
return __reg3;
}
得到最大值最小值(X轴)
最后,晚安各位。
FusionChart 水印破解方法(代码版)的更多相关文章
- Photoshop Cs5 64位系统破解版下载(内含破解方法)
Photoshop Cs5 64位系统是电影.视频和多媒体领域的专业人士, 使用 3D 和动画的图形和 Web 设计人员, 以及工程和科学领域的专业人士的理想选择,下面提供Photoshop Cs5 ...
- VC2010的破解方法(针对旗舰版)
VS2010 正式版破解方法详解 全球开发者最为瞩目的Visual Studio 2010开发工具在4月12日正式发布,现为大家制作一个简单的破解教程有两种方法,操作不一样,原都一样(针对旗舰版,其他 ...
- 进程优化工具Process Lasso Pro 8.4官方版+激活破解方法
Process Lasso是一款来自美国的系统进程优化工具,基于特殊算法动态调整进程的优先级别,通过合理的设置进程优先级来实现降低系统负担的功能.可有效避免蓝 屏.假死.进程停止响应.进程占用 CPU ...
- DbVisualizer9.0.6破解版下载、破解方法以及补丁
DbVisualizer破解方法如下:第一步:把下载的dbvis.puk文件,替换掉安装目录“D:\Program Files\DbVisualizer-6.0.12\lib”下dbvis.jar里面 ...
- IntelliJ IDEA 破解方法
2017版破解方法: 1. 到网站http://idea.lanyus.com/,按要求修改电脑HOST,获取注册码: 使用前请将“0.0.0.0 account.jetbrains.com”添加到h ...
- PHPstorm破解方法及xdebug的断点调试
原文地址:http://www.php.cn/php-weizijiaocheng-381903.html 相信用PHPstorm的程序员肯定很多,令人头疼的是下载的PHPstorm是有使用期限的,小 ...
- IntelliJ IDEA 2017 完美注册方法及破解方法
本文使用破解方式注册. 下载破解文件JetbrainsCrack-2.6.2.jar 下载地址: http://idea.lanyus.com/ 开始破解 一.将下载的 JetbrainsCrack- ...
- 最简破解-java代码热加载热部署IDEA插件JRebel
如果经济实力允许的话,还是建议大家去购买收费版.支持原创作者,才能有更好的产品出现. 一.Jrebel插件介绍 JRebel一款帮助我们在开发过程中实现热加载的插件,目前来说,在IDEA中实现热加载最 ...
- Lua游戏逆向及破解方法介绍
Lua游戏逆向及破解方法介绍 背景介绍 随着手游的发展,越来越多的Cocos-lua端游开发者转移到手游平台.Lua脚本编写逻辑的手游也是越来越多,如梦幻西游.刀塔传奇.开心消消乐.游龙英雄.奇迹 ...
随机推荐
- Shell下突破安全狗远程桌面守护
首先在Shell下把安全狗的安装配置给下来 默认安装路径: C:\Program Files\SafedogServer\SafeDogGuardCenter 找到 ProGuardData.ini ...
- cxf3.1.4所需jar,大部分都可以从cxf3.1.4的lib包下找到
asm-.jar commons-beanutils-.jar commons-collections-.jar commons-lang-2.6.jar cxf-core-.jar cxf-rt-b ...
- return array 评论添加状态和提示信息
ThinkSNS漏洞系列第一弹,某处处理不当导致SQL注入 漏洞点出现在Comment Widget里:\addons\widget\CommentWidget\CommentWidget.class ...
- SQL Server恢复软件 Stellar Phoenix sql recovery
SQL Server恢复软件 Stellar Phoenix sql recovery http://www.stellarinfo.com/ http://www.stellarinfo.com/ ...
- SQL语句优化(转载)
一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...
- 基于Mono跨平台移动应用开发框架发布Xamarin 3.0
跨平台移动应用开发框架Xamarin可以让你完全用C#编写你的应用程序,在iOS.Android.Windows Phone 8.Windows8和mac平台上共享相同的代码.你可以重用你最喜欢的.N ...
- c#处理空白字符
空白字符是指在屏幕不会显示出来的字符(如空格,制表符tab,回车换行等).空格.制表符.换行符.回车.换页垂直制表符和换行符称为 “空白字符”,因为它们为与间距单词和行在打印的页 )的用途可以读取更加 ...
- UWP图片编辑器(涂鸦、裁剪、合成)
一.编辑器简介 写这个控件之前总想找一找开源的,可以偷下懒省点事.可是各种地方都搜遍了也没有找到. 于是,那就做第一个吃螃蟹的人吧! 控件主要有三个功能:涂鸦.裁剪.合成. 涂鸦:主要是用到了InkT ...
- Html5 实现灯笼绘制
最近在学习Html5,就用JavaScript在Canvas试着绘制了一个灯笼,并作了简要的说明. 具体绘制思路在页面上有说明,不再赘述,代码如下: <script type="tex ...
- 基于1.3.3版本tooltip的datagrid单元格tip实现
基于1.3.3版本tooltip的datagrid单元格tip实现 2013年05月25日 ⁄ datagrid ⁄ 共 6122字 ⁄ 评论数 26 ⁄ 被围观 7,033 views+ 文章目录 ...