标签:
原文:使用JustDecompile修改程序集JustDecompile是Telerik公司推出一个免费的.net反编译工具,支持插件,与Visual Studio 2010,2012集成,能够创建Visual Studio project文件。今天我们使用其一个插件Assembly Editor Plugin来修改程序集。首先,我们来写一个非常简单的时间限制程序:
1: static void Main(string[] args)
   2:          {   
     3:              Timebomb();
     4:          }
  5: static void Timebomb()
   6:          {
  7: var message = "Welcome to demo";
8: if (DateTime.Now > new DateTime(2012, 12, 01))
   9:              {
    10:                  Environment.Exit(0);
    11:              }
    12:              Console.WriteLine(message);
    13:              Console.Read();
    14:          }
 
 
  
  
通过反编译后,我们看到IL, 假设您对IL有一定的了解。offset 39  
ldc.i4.0
意思是将常数0做为4个字节整数压入栈, offset 40 接着是
call System.Void System.Environment::Exit(System.Int32)
意思是调用System.dll中Environment类Exit方法。我们还可以看到具体的时间,你可修改他们,让我们来修改多点儿东西。我们在上面单击右键选择Edit,把这两条IL分别修改为nop 操作,从而达到让主程序不退出的效果,最后在上面点击右键另存为新的程序集。
  
 
   
 
  
  
最后运行刚才另存为的程序集,结果与我们期待的一致。此时我们反编译程序集的这个方法,是如下代码: 
  
1: private static void Timebomb()
   2:  {
3: string str = "Welcome to demo";
4: if (DateTime.Now > new DateTime(0x7dc, 10, 9))
   5:      {
   6:      }
   7:      Console.WriteLine(str);
   8:      Console.Read();
   9:  }
  10:   
  11:   
希望对您软件开发有帮助。
  
  
作者:Petter Liu 
  
出处:http://www.cnblogs.com/wintersun/ 
  
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 
  
该文章也同时发布在我的独立博客中-Petter Liu Blog。 
标签:
原文地址:http://www.cnblogs.com/lonelyxmas/p/4493599.html