2017-02-28 82 views
0

这是从c#运行.reg文件的代码。是否有可能加密该.reg文件,以便C#可以从内存中执行之前解密将reg文件传递给regedit而不写入磁盘(以避免将解密数据写入磁盘)

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

+0

你能说清楚你到底解决问题有什么问题吗?显然你已经读了足够的“在C#中加密文件”的帖子,所以这部分应该没事... –

+0

@AlexeiLevenkov我已更新我的问题 – Dexters

回答

0

据我所知,注册表编辑器无法读取从控制台输入(通常是直接将信息传递到现有的应用程序的唯一途径) - 所以,不,你不能传递从信息注册表编辑器内存而不保存到磁盘。

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

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

+0

是有道理的。我也认为这可能是一种方式。 – Dexters