【问题标题】:Pass reg file to regedit without writing it to disk (to avoid writing decrypted data to disk)将reg文件传递给regedit而不将其写入磁盘(以避免将解密的数据写入磁盘)
【发布时间】:2017-02-28 16:10:21
【问题描述】:

这是从 c# 运行 .reg 文件的代码。是否可以加密 .reg 文件,以便 C# 在从内存执行之前解密"

Process regeditProcess = Process.Start("regedit.exe", "/s " + @"D:\Projects\efe\efe\bin\Debug\test.reg");

regeditProcess.WaitForExit()

在这种情况下,上述几行如何变化?

编辑: 我的问题是,我可以解密文件并将其临时写入某个位置并将其传递给我的代码,例如)test.reg。但是我可以在不传递实际文件位置的情况下使用Process.Start 命令在内存中执行 reg 文件吗?

原因是不允许任何人弄乱 .reg 文件。 exe 执行一些任务并在此过程中运行 .reg 文件。我不介意他们稍后查看它,尽管他们不会确定哪些条目在加密后发生了变化。

【问题讨论】:

  • 您能否澄清一下您在解决问题时遇到的问题?显然,您已经阅读了足够多的“用 C# 加密文件”帖子,所以那部分应该没问题...
  • @AlexeiLevenkov 我已经更新了我的问题

标签: c# encryption registry


【解决方案1】:

没有。

据我所知,RegEdit 无法从控制台读取输入(这通常是直接将信息传递到现有应用程序的唯一方法) - 所以不,您不能在不保存到磁盘的情况下将信息从内存传递到 RegEdit。

请注意,在 RegEdit 的情况下这是一个奇怪的要求,因为它所做的所有更改对当前用户都是可见的 - 所以你没有隐藏任何东西而不是将文件写入磁盘。

我能想到的唯一选择是自己读取文件并通过 .Net API 进行注册表更改(请参阅modifying the registry key value)。

【讨论】:

  • 有道理。我也认为这可能是一种方式。
猜你喜欢
  • 1970-01-01
  • 2017-10-12
  • 1970-01-01
  • 1970-01-01
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-18
相关资源
最近更新 更多