将reg文件传递给regedit而不写入磁盘(以避免将解密数据写入磁盘)
问题描述:
这是从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文件。我不介意他们稍后查看它,尽管他们不会识别哪些条目如果加密更改。
答
号
据我所知,注册表编辑器无法读取从控制台输入(通常是直接将信息传递到现有的应用程序的唯一途径) - 所以,不,你不能传递从信息注册表编辑器内存而不保存到磁盘。
请注意,对于RegEdit来说这是一个奇怪的要求,因为它所做的所有更改对当前用户已经可见 - 所以您不会隐藏任何不将文件写入磁盘的内容。
我能想到的唯一选择是自己读取文件并通过.Net API进行注册表更改(请参阅modifying the registry key value)。
+0
是有道理的。我也认为这可能是一种方式。 – Dexters
你能说清楚你到底解决问题有什么问题吗?显然你已经读了足够的“在C#中加密文件”的帖子,所以这部分应该没事... –
@AlexeiLevenkov我已更新我的问题 – Dexters