1)某一天,當咱們忽然發現打開使用了tchart的控件的應用程序時蹦出以下對話框 函數
2)控件過了試用期了!!!,不用慌張,咱們一步一步來解除這個使用限制。用的是.net平臺的程序嘛,源碼都是可見的,也許咱們很容易從源碼找到解決方案哦,如下要用到一個能夠反編譯.net程序的工具Reflector 工具
3)打開Relecotor ,加載咱們使用tchart控件引用的程序集,也就是直接打開tchart.dll文件 spa
4)找到TChart類,爲啥要從找這個類開始???由於咱們使用TeeChart控件就是從實例化這個類開始的嘛,而後查看其構造函數.cor() .net
5)沒看出啥名堂,繼續查看兩個初始化的函數,追蹤到InitVars()函數,結果以下 code
6)看到問題了不???彈窗就是從這裏出來的,有人說,我知道怎麼作了,註釋掉那行彈窗代碼不就得了。確實是的,註釋掉了就木的彈窗了,但是後面還有水印呀,這個不能徹底解決問題的。咱們該繼續追蹤evalExpired的值纔對,evalExpired是chart的一個成員,那就去Chart類看看…… 源碼
7)繼續看initVar(); it
8) 看到了吧,要根本解決這個問題還得去Utils下的IsExpired函數找,咱們來看看裏面都寫了些啥 編譯
9)如今已經很清楚了,解決的辦法有兩種,一種是修改這裏程序,所有註釋掉直接返回false,另外一種是不用該程序的,修改下注冊表就ok了。其實後面一種方法我以爲是比較好的,前面一種方法有點麻煩,該了以後還要從新編譯,還要解決強簽名的問題,後面的方法看只須要一次改註冊表就能夠相對永久的無償使用了。 構造函數
10)第一次啓動程序時註冊表中寫入的是當前日期的信息,前幾行程序的意思就是試用期是否已經超過40天,若是咱們把啓動日期改成n年後的某一天,那麼咱們豈不是能夠一直在試用期? 引用
11)再看最後幾行代碼,咱們只看年,str7表明年,也就是註冊表中95和-48之間的數字,以下圖表明12年,咱們若把12改成92,也就是一直能夠用到2092年了,一輩子用夠了,哈哈,就這樣一次破解了tchart.net了
哦,強調下,修改的註冊表鍵值爲
HKEY_CLASSES_ROOT\CLSID\{CC7128D5-4CA2-4668-B37D-3819F6DCC2A3}\TypeLib