2016-12-28 16 views
1

我最近开始一个新项目,我的问题是我想保证我的程序不被任何类型的调试器连接,或者被显示什么数据进出(除ip外)像Wireshark。从调试器和像wireshark这样的程序中保护ac#程序

我不知道我应该从这开始,我已经通过很多论坛来看这个。

我第一次尝试是把它放在这样的每一个行动的前面,但我寻找一个更简单的方法,只需1-2行代码来做到这一点每个表单

if (System.Diagnostics.Debugger.IsAttached == true) 
     this.close(); 
else 
    // run the rest of the program 

上,但做到这一点帮助每一个人,还有加密的调试器?

或者我需要得到一些程序的签名?

将是很好的得到一些好的建议

感谢所有帮助

+1

如果一台计算机可以执行你的程序,调试器也可以执行它。没有什么可以做到的,以防止这种情况发生。有些东西像混淆使人难以弄清楚程序的功能,但它几乎是你唯一能做的事情。 –

+1

如果您通过电线发送数据,那么确实无法阻止Wireshark将其捕获。你所能做的只是对有效载荷进行加密,这样攻击者就可以看到数据包 - 但没有意识到它的内容 –

+0

我寻找更好的方式,然后我的执行整个时间,程序正在运行并关闭如果有什么建立的话。 – TheDexter

回答

1

我假设你有两个方面有:

1)您可以混淆您的代码下面这个教程。这将帮助你的debbuger问题:https://www.codeproject.com/Articles/1040107/Configuring-Visual-Studio-for-Obfuscation

2)通信问题,you'll必须加密您的通信。由于Wireshark类型的软件在另一个层面上工作,您无法避免它。根据您的软件使用何种类型的通信以及哪些是端点,您可以在其他端点上进行加密和解密。在这篇文章中,你可以很好地看到这个:How to create a stateful encrypted connection between two C# applications?

+0

所以没有任何方法来检测酒吧调试?并自动关闭应用程序? – TheDexter

+0

我从来没有做过这样的事情。你可以检查在这篇文章中发现的东西是否适合你... http://stackoverflow.com/questions/2188201/is-there-a-way-to-detect-if-a-debugger-is-attached -to-A-过程从-C – NicoRiff