导航

TeeChart For net 破解方法

Posted on 2009-10-14 16:10  ccjvl  阅读(3274)  评论(2编辑  收藏  举报

 根据分析,关键语句在
public Chart(); 
大致语法为:
if (Utils.IsExpired())
{
    this.evalExpired = true;
}
改为
if (Utils.IsExpired())
{
    this.evalExpired = false;
}

 

vs 中导入 外部工具:标题:ILdasm命令C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\ildasm.exe

使用ILdasm将Teechart.dll转储为 Teechart.IL文件

使用vs或文本编辑工具打开IL文件,将具有强名的dll中的以下内容(相似但可能不同)去掉:
    
  .publickey   =   (00   24   00   00   04   80   00   00   94   00   00   00   06   02   00   00       //   .$..............  
                                  00   24   00   00   52   53   41   31   00   04   00   00   01   00   01   00       //   .$..RSA1........  
                                  65   11   75   2C   2D   61   69   9A   F3   3D   9A   99   DD   1D   9C   AB       //   e.u,-ai..=......  
                                  C5   CA   D0   26   F9   0B   9A   CB   00   74   C2   12   82   61   0F   64       //   ...&.....t...a.d  
                                  00   F5   D6   13   7A   C3   D0   3C   EB   F1   29   68   53   94   5B   31       //   ....z..<..)hS.[1  
                                  35   B3   F7   7C   77   29   24   D0   31   4D   F6   02   3B   17   95   C7       //   5..|w)$.1M..;...  
                                  D9   24   74   5E   10   F1   4F   50   75   12   5F   61   3A   40   35   99       //   .$t^..OPu._a:@5.  
                                  6C   F9   3D   73   BB   D2   A3   B1   A4   B8   29   62   08   88   E5   5C       //   l.=s......)b...\  
                                  3C   D6   75   30   F1   E7   59   4E   51   B6   30   CA   A8   33   49   44       //   <.u0..YNQ.0..3ID  
                                  B5   32   F3   D0   E8   30   37   68   30   5C   8E   B2   6B   69   7A   BE   )   //   .2...07h0\..kiz.   
 找到如下代码
IL_0055:  ldarg.0
IL_0056:  ldc.i4.1 //修改为ldc.i4.0
IL_0057:  stfld      bool Steema.TeeChart.Chart::evalExpired 
保存,去掉public token  
    
  使用vs自带的工具命令提示行(开始菜单中),定位到文件所在目录,使用命令:

ilasm Teechart /dll

将IL文件汇编为DLL文件,覆盖原来安装目录中的dll文件即可正常使用。

 
如果不知道怎么保持强名一致,就把所有的DLL强名和其引用的DLL强名全部去掉吧。可以用CFF Explorer或者StrongNameRemove之类的。

一般不去掉它的强签名,只要使用sn -Vr DLLs
这样能保证其它DLLs的引用

替换强签名后,修改其它DLLs对修改后的DLLs引用的强签名

 

附:

(1)程序员用高级OO语言(C#,VB.Net,VC.Net,Cobol,Python..)编写代码,这些代码经过
.Net 编译器(比如Visual Studio.Net),编译成统一的MSIL(Microsoft Intermediate Language)。NET应用程序是以MSIL的形式出现的,只有在程序执行的时候才通过即时编译器JIT(Just-In-Time)被编译为本机代 码。
(2)程序执行的时候,由JIT装入程序的MSIL,JIT同时作了很多其他的工作(装载相应的运行库,安全检测。。) 最后JIT将转化成本地机器码(EXE或者DLL)。
(3)本地机器码被装入内存,开始执行。

就是通过这几个步骤,.net实现了编程语言无关(都转化成MSIL);平台无关(执行的
时候根据本地配置,生成相应的机器码);安全性(JIT里面做了很多检测)。

 

作为Cracker,可以用.Net Framework SDK自带的工具进行MSIL和EXE(DLL)之间的互换:
利用FrameworkSDK\Bin\目录下的ilasm和ildasm
(1)ilasm示例:
下面的命令对 MSIL 文件 myTestFile.il 进行汇编并产生可执行文件 myTestFile.exe。
ilasm myTestFile
下面的命令对 MSIL 文件 myTestFile.il 进行汇编并产生 .dll 文件 myTestFile.dll。
ilasm myTestFile /dll
下面的命令对 MSIL 文件 myTestFile.il 进行汇编并产生 .dll 文件 myNewTestFile.dll。
ilasm myTestFile /dll /output:myNewTestFile.dll
(2)ildasm示例
下面的命令使 PE 文件 MyHello.exe 的元数据和反汇编代码显示在 Ildasm.exe 的默认 GUI 中。
ildasm myHello.exe
下面的命令对 MyFile.exe 文件进行反汇编,并将结果 MSIL 汇编程程序文本存储在 MyFile.il 文件中。

ildasm MyFile.exe /output:MyFile.il
下面的命令对 MyFile.exe 文件进行反汇编,并将结果 MSIL 汇编程序文本显示到控制台窗口中。

ildasm MyFile.exe /text
如果文件 MyApp.exe 包含嵌入的托管和非托管资源,则下面的命令将产生以下 4 个文件:MyApp.il、MyApp.res、Icons.resources 和 Message.resources:

ildasm MyApp.exe /output:MyApp.il
下面的命令对 MyFile.exe 的 MyClass 类中的 MyMethod 方法进行反汇编,并将输出显示到控制台窗口中。

ildasm /item:MyClass::MyMethod MyFile.exe /text
在上面的示例中,可能有几个具有不同签名的 MyMethod 方法。下面的命令对返回类型为 void 且带有参数 int32 和 System.string 的 MyMethod 方法进行反汇编。

ildasm /item:"MyClass::MyMethod(void(int32,class System.String))" MyFile.exe /text