【问题标题】:Embed and change data inside an executable在可执行文件中嵌入和更改数据
【发布时间】:2024-05-18 18:35:01
【问题描述】:

是否可以将文本文件放入可执行文件,然后在程序运行时更改文件?我需要这样做,因为我正在制作一个需要密码才能打开的便携式程序,并且用户需要能够更改密码。

【问题讨论】:

  • 我不知道更改可执行文件本身。也许相反,您可以读取/写入使用密码作为部分/全部加密密钥的外部加密文件?
  • 我不希望用户不小心删除它,或者其他东西故意删除它
  • 也许您可以使用加密的注册表项?

标签: c# file executable


【解决方案1】:

会有所谓的“备用数据流”非常适合此类任务。如果应用程序当前正在运行,您的便携式程序的可执行文件将无法通过正常方式向其附加数据(如文本文件),但仍然可以通过添加“备用数据流”访问它。 此处有一个关于如何将“备用数据流”添加到文件的示例/文章:Manipulate-Alternate-Data-Streams。只需重新编写示例以将流添加到您自己的可执行文件中。它就像一个隐藏的文件属性,只要“属性名称”未知,用户就不会知道它。即使在这种情况下,用户也需要一个工具来使属性/数据流可见。

【讨论】:

  • 这正是我想要的,谢谢,+1 文章