我有一个Windows引导程序应用程序,我编译自己(深入它使用C#和WPF),但我必须使用编程它的框架不让我改变一个特定的当它安装MSI软件包时,它存储在Windows注册表中的GUID(它迫使我使用XML编程引导程序,并且不会将此GUID作为XML可修改的属性公开),并且我知道此GUID采用特定的,编码值。无论何时我重新编译引导程序可执行文件,此值都会更改。我希望能够在生成后脚本中修改此GUID以保持它不变。如何找到已编译的Windows可执行文件的十六进制GUID
我的问题是这样的,是否有可能从十六进制转储中找到该GUID的位置?我搜查了我的十六进制转储的可执行文件,试图从GUID转换为十六进制,或从GUID字符串转换为ASCII或十六进制等,我尝试使用ILDASM
更好地掌握事物,但这并没有帮助。我不知道一个GUID是如何存储在一个编译的可执行文件中的...有没有人有过这方面的成功?如果是这样,GUID是如何存储的以及您需要做些什么来访问它?
它现在安装在注册表中的GUID是{E66D1133-9A23-4E07-8DB1-0A3A4A7F7B35}
。
@AJHenderson **您将MSI GUID与我的引导程序注册GUID混淆。**对于我所说的GUID的更改将不会破坏任何内容。相信我,我一直在做安装程序很长一段时间。 – Alexandru 2014-11-06 15:02:32
够公平的,但仍然没有看到有关此安全相关的任何事情。即使您为了某种安全目的而需要它是相同的,这也属于技术实现方法,这些方法通常不是主题,而是与实现方法最相关的网站(即本例中的StackOverflow) – 2014-11-06 15:05:11
@AJHenderson那么,我的想法是,它也不是一个编程问题。我不是在寻找代码,而是寻找解释。我认为最好的地方是'security.stackexchange.com' ...我希望人们能够理解Windows中编译器的低级工作方式以及它们如何存储数据。这很容易成为一个安全问题,例如,“如何在应用程序中掩盖GUID以便某人无法从十六进制转储中找到它们?”为此你需要知道如何首先找到它们。就像生活中的任何事情一样,如果不知道如何首先衡量它,你就无法做得更好。 – Alexandru 2014-11-06 15:12:39