欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

一步一步教你破解Tchart.net

程序员文章站 2022-03-16 10:50:56
1)某一天,当我们突然发现打开使用了tchart的控件的应用程序时蹦出如下对话框 2)控件过了试用期了!!!,不用慌张,我们一步一步来解除这个使用限制。用的是.net平台的程序嘛,源码都...
1)某一天,当我们突然发现打开使用了tchart的控件的应用程序时蹦出如下对话框

一步一步教你破解Tchart.net

2)控件过了试用期了!!!,不用慌张,我们一步一步来解除这个使用限制。用的是.net平台的程序嘛,源码都是可见的,也许我们很容易从源码找到解决方案哦,以下要用到一个可以反编译.net程序的工具Reflector

3)打开Relecotor ,加载我们使用tchart控件引用的程序集,也就是直接打开tchart.dll文件

一步一步教你破解Tchart.net

4)找到TChart类,为啥要从找这个类开始???因为我们使用TeeChart控件就是从实例化这个类开始的嘛,然后查看其构造函数.cor()

一步一步教你破解Tchart.net

5)没看出啥名堂,继续查看两个初始化的函数,追踪到InitVars()函数,结果如下

一步一步教你破解Tchart.net

6)看到问题了不???弹窗就是从这里出来的,有人说,我知道怎么做了,注释掉那行弹窗代码不就得了。确实是的,注释掉了就木的弹窗了,可是后面还有水印呀,这个不能完全解决问题的。我们该继续追踪evalExpired的值才对,evalExpired是chart的一个成员,那就去Chart类看看……

一步一步教你破解Tchart.net

7)继续看initVar();

一步一步教你破解Tchart.net

8) 看到了吧,要根本解决这个问题还得去Utils下的IsExpired函数找,我们来看看里面都写了些啥

一步一步教你破解Tchart.net一步一步教你破解Tchart.net

9)现在已经很清楚了,解决的办法有两种,一种是修改这里程序,全部注释掉直接返回false,另一种是不用该程序的,修改下注册表就ok了。其实后面一种方法我觉得是比较好的,前面一种方法有点麻烦,该了之后还要重新编译,还要解决强签名的问题,后面的方法看只需要一次改注册表就可以相对永久的免费使用了。

10)第一次启动程序时注册表中写入的是当前日期的信息,前几行程序的意思就是试用期是否已经超过40天,如果我们把启动日期改为n年后的某一天,那么我们岂不是可以一直在试用期?

11)再看最后几行代码,我们只看年,str7代表年,也就是注册表中95和-48之间的数字,如下图代表12年,我们若把12改为92,也就是一直可以用到2092年了,一生用够了,哈哈,就这样一次破解了tchart.net了

一步一步教你破解Tchart.net

哦,强调下,修改的注册表键值为

HKEY_CLASSES_ROOT\CLSID\{CC7128D5-4CA2-4668-B37D-3819F6DCC2A3}\TypeLib