将 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)。
这是 运行 来自 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)。