【问题标题】:Questions about DLLs关于 DLL 的问题
【发布时间】:2012-02-02 09:52:46
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: .net security debugging dll


    【解决方案1】:

    你基本上是在写DRM,这是一场你赢不了的游戏。不管你做什么,如果有人足够关心,你的访问控制措施可以被破解。

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

    • 硬件加密狗
    • 使用远程服务器进行身份验证(多人游戏和 Steam 在这方面非常擅长,Windows 和 Office 在这方面稍差)。

    关于调试 DLL,是的,您基本上是使用使用 DLL 的程序来调试它们。

    【讨论】:

    • 嗯,我喜欢这个主意,但程序也应该可以离线使用。
    • 那么你能做的最好的就是让它变得足够困难。如果有人想改变它并且足够努力,那么她可以做到。你知道,有些人为了运动而做饼干。
    • 我明白了,好的,谢谢,我想我会结合使用旧系统和身份验证。我会暂时搁置这个问题,以便我也能听到一些其他建议
    • 还有混淆,这使得反向工程 DLL 更加耗时(但并非不可能)。
    【解决方案2】:
    【解决方案3】:
    1. DLL 和 EXE 是同一个东西,一个主要区别是 exe(可爱)可以自己运行,DLL(动态链接库)但是需要一个 exe(或其他一些可执行文件)文件才能“运行”它。

    2. 编程中的一般心态是每一层保护都是可以破解的,在说有一些工具可以帮助更难进行反射(使用机器语言并将其转换回 C#)之后,比如 steven麦汁 (+1)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-03
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多