将 reg 文件传递​​给 regedit 而不将其写入磁盘(以避免将解密数据写入磁盘)

Pass reg file to regedit without writing it to disk (to avoid writing decrypted data to disk)

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

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 文件。我不介意他们稍后查看它,尽管他们不会识别加密后更改了哪些条目。

没有

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

请注意,对于 RegEdit,这是一个奇怪的要求,因为它所做的所有更改都已经对当前用户可见 - 因此您不会在不将文件写入磁盘的情况下隐藏任何内容。

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