我有一个自行编译的Windows引导程序应用程序(内部使用C#和WPF),但是我必须使用它编程的框架不允许我更改它存储在Windows注册表中的特定GUID。安装MSI包(它强制我用XML编写引导程序并且不将此GUID公开为XML可修改的属性),并且我知道此GUID具有特定的硬编码值。每当我重新编译引导程序可执行文件时,此值都会更改。我希望能够在构建后的脚本上修改此GUID,以使其保持不变。
我的问题是,是否可以从十六进制转储中找到该GUID的位置?我搜索了我的可执行文件的十六进制转储,尝试从GUID转换为十六进制,或者从GUID字符串转换为ASCII或十六进制等,我尝试使用ILDASM
更好地掌握事情,但这没有帮助。我不确定如何将GUID存储在已编译的可执行文件中...有没有人成功使用它?如果是这样,GUID是如何存储的以及您需要做什么才能访问它?
目前它在注册表中安装的GUID是{E66D1133-9A23-4E07-8DB1-0A3A4A7F7B35}
。
答案 0 :(得分:0)
我相信你有一个WiX引导程序。如果是这样,我们假设它名为Wix39.exe并且位于当前目录中。
"%WIX%\bin\dark" Wix39.exe -x "%TEMP%\dark.tmp" && ^
find "WixBundleProperties" "%TEMP%\dark.tmp\UX\BootstrapperApplicationData.xml" & ^
rmdir /s/q "%TEMP%\dark.tmp"
您正在寻找WixBundleProperties / @ Id。