ほとんどすべてを逆コンパイルすることが常に可能である方法について、インターネットで読んでいました。このメソッドを追加すると、ハッカーがプログラムを逆コンパイルするのが難しくなります:
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
}
});
}
その方法は明らかですが、セマフォによって 2 つのスレッドを同期させて、同じコードを理解しにくくすることができます。そのような方法を持つことは、ハッカーの生活をより困難にするでしょうか? それとも、ハッカーは逆コンパイルするためにプログラムをデバッグする必要がないのでしょうか?