1

我在互联网上阅读有关如何总是可以反编译几乎所有内容的信息。添加此方法会使黑客更难反编译程序:

void PreventProgramFromBeingDebuged()
{
     Task.Factory.StartNew(()=>{

         while(true){
             var a = DateTime.Now;
             Thread.Sleep(10);
             var b = DateTime.Now;

             // if difference in time is greater than 1 second it means the program has stopped executing

             if( (b-a).TotalSeconds > 1)
               // then make appliction crash or make it behave the way it is not suppose to
         }      
     });
}

这种方法很明显,但是您可以让两个线程通过信号量同步,从而使相同的代码更难理解。拥有这样的方法会让黑客的生活更加艰难吗?或者黑客不必为了反编译程序而调试程序?

4

2 回答 2

3

可以在不运行代码的情况下完成反编译。其实可以反编译,把这段代码拿出来,重新编译。

于 2013-06-05T01:05:48.113 回答
3

如果用户系统负载过重(内存或其他资源不足),您的代码实际上会导致程序崩溃。您没有阻止调试,而是引入了一个讨厌的Heisenbug

通常,当您试图阻止某人对您的代码进行逆向工程时,您就是在为实际客户的问题做好准备。

编辑:每当用户计算机自动将其时钟与时间源同步时,您的程序也可能会崩溃。

于 2013-06-05T01:31:52.667 回答