【问题标题】:Writing Binary To file in Visual Basic with the intent of unreadability在 Visual Basic 中编写二进制文件以防止可读性
【发布时间】:2011-05-25 20:45:09
【问题描述】:

我正在开发一个创建“许可证”文件的程序。该文件应该是二进制文件,包含名称、今天的日期、警告日期、到期日期以及公制或英制测量单位的偏好,并且基本上授权程序在到期日期之前工作,在此之前警告日期通知用户许可证将到期。要充分利用此功能,日期必须不能轻易编辑,以防止人们将日期设置为他们想要的任何日期并保留程序。

我现在将 String 或 Integer 中的每个字段写入 BinaryWriter 类在我使用其“write”方法时认为应该写入的任何内容中。我一直在试验Big Endian和Little Endian编码的区别,可以在表单中选择。

[代码编辑]

如果输入的名称没有空格,文件看起来有点不可读,但还不够。使用 Big Endian,大部分 Expiration Date 仍在显示;对于 Little Endian,其他两个日期大多可见。但是,在输入的名称中使用空格会极大地改变输出文本的格式,使所有字符都由空格分隔,因此非常容易更改。抱歉,我无法真正向您展示这些文件的样子。

是否有更好/更被接受的方式来存储这些数据?我希望许可证文件可以与现有的 FORTRAN 程序一起使用,其中读取我详细介绍的一般结构中的未格式化文件,但是从我所读到的内容进行逆向工程听起来有点困难,而且我的雇主已提议重写FORTRAN 文件以在需要时接受这个新的许可证创建程序。

【问题讨论】:

    标签: vb.net binary


    【解决方案1】:

    将您的许可证结构创建为文本,包含您需要的任何数据(XML 是一种方便的格式)。

    使用公钥加密(使用您的私钥)对其进行加密。

    在您的应用中嵌入公钥。使用公钥解密许可证文件。根据需要处理它。

    简单!

    【讨论】:

      【解决方案2】:

      我见过的大多数许可证管理器都倾向于以纯文本形式显示许可证信息,然后是程序检查的校验和代码,很可能是与其他一些随机内容进行哈希处理的数据。这提供了具有人类可读的许可证文件的好处,同时难以更改。

      请注意,像这样的许可证管理器会使随意复制变得困难,但决心在没有许可证的情况下运行您的程序的人仍然可以使用反汇编程序破解它,并且需要一些时间。

      【讨论】:

        【解决方案3】:

        最安全的方法可能是加密许可证文件,让使用许可证的程序解密文件并在必要时显示其中的信息。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-05-02
          • 2023-03-27
          • 2012-01-26
          • 2018-07-26
          • 2016-06-14
          • 2021-06-03
          相关资源
          最近更新 更多