.net 关于DLL的问题

.net 关于DLL的问题,.net,security,debugging,dll,.net,Security,Debugging,Dll,好吧,我对编程和其他东西还很陌生,现在我正在尝试用c#编写一些基本程序 现在我基本上在做一个小东西,它基本上是一个DLL,允许任何人使用这个程序,只要程序指定,不再需要 我已经想好了如何编写代码,我将进行一些检查,然后如果测试版仍然有效或无效,则返回true或false给exe。 但我并不完全了解DLL是如何工作的,我知道有些程序可以查看DLL代码。下面是我的问题: 难道有人就不能更改或剽窃源代码并将值更改为始终为真吗?如果可以的话,有没有办法防止这种情况发生 如何正确调试DLL文件?现在我只

好吧,我对编程和其他东西还很陌生,现在我正在尝试用c#编写一些基本程序

现在我基本上在做一个小东西,它基本上是一个DLL,允许任何人使用这个程序,只要程序指定,不再需要

我已经想好了如何编写代码,我将进行一些检查,然后如果测试版仍然有效或无效,则返回true或false给exe。 但我并不完全了解DLL是如何工作的,我知道有些程序可以查看DLL代码。下面是我的问题:

  • 难道有人就不能更改或剽窃源代码并将值更改为始终为真吗?如果可以的话,有没有办法防止这种情况发生
  • 如何正确调试DLL文件?现在我只是在一个exe中编写代码,我计划稍后将其移动到一个DLL,但这不可能是正确的

也欢迎任何其他提示。谢谢

你基本上是在写作,这是一场你赢不了的游戏。无论你做什么,只要有人足够关心,你的访问控制措施都会被破解

据我所知,有两件事更难破解:

  • 硬件加密狗
  • 使用远程服务器进行身份验证(多人游戏和Steam在这方面非常好,Windows和Office在这方面稍差)
关于调试DLL,是的,您基本上是使用使用DLL的程序来调试它们。

  • DLL和EXE是同一件事,但有一个主要区别,即EXE(cute)可以自己运行,而DLL(动态链接库)则需要一个EXE(或其他可执行文件)文件来“运行”它

  • 编程的一般心态是,每一层保护都是可破解的,因为有一些工具可以帮助更难进行反射(使用机器语言并将其转换回C#),比如steven worte(+1)

  • 至于调试DLL你可以使用VS单元测试,非常有用的工具


  • 嗯,我喜欢这个主意,但是这些程序也应该可以离线使用。那么你最好能做的就是让它变得足够难。如果有人想改变它,并且足够努力,那么她可以做到。你知道,有些人喜欢运动。我明白了,好的,谢谢,我想我会结合使用我的旧系统和认证。我会把这个问题留一段时间,这样我可以听到一些其他的建议,还有一些混淆,这使得对DLL进行反向工程更加耗时(但并非不可能)。