我有一个我自己编译的Windows引导程序应用程序(深层次它使用C#和WPF),但我必须用来编程的框架不允许我在安装MSI包时更改它存储在Windows注册表中的特定GUID(它强制我用XML对引导程序进行编程,并且不将此GUID公开为XML可修改属性),我知道这个GUID具有一个特定的硬编码值。每当我重新编译引导程序可执行文件时,此值就会更改。我希望能够在构建后脚本上修改此GUID,以便保持不变。
我的问题是,有可能从十六进制转储中找到GUID的位置吗?我搜索了可执行文件的十六进制转储,试图从GUID转换为十六进制,或从GUID字符串转换为ASCII或十六进制,等等,我也尝试使用ILDASM
更好地了解情况,但这无济于事。我不确定GUID是如何存储在已编译的可执行文件中的。。。有人在这方面取得成功吗?如果是,GUID是如何存储的,您必须做些什么才能访问它?
它目前在注册表中安装的GUID是{E66D1133-9A23-4E07-8DB1-0A3A4A7F7B35}
。
我相信你有一个WiX引导程序。如果是这样,我们假设它的名称为Wix39.exe,并且在当前目录中。
"%WIX%bindark" Wix39.exe -x "%TEMP%dark.tmp" && ^
find "WixBundleProperties" "%TEMP%dark.tmpUXBootstrapperApplicationData.xml" & ^
rmdir /s/q "%TEMP%dark.tmp"
您正在查找WixBundleProperties/@Id。