修改pe文件头中的Win32VersionValue值,有的程序可以正常启动,有的有问题。
各位大侠:
我用一个小程序,计算EXE文件的CRC32值,然后把计算出来的CRC32值写到这个EXE文件PE头中的Win32VersionValue字段。经过修改后的EXE文件,有的可以正常运行;有的报错“应用程序正常初始化(0xc00000fd)失败。请单击“确定”,终止应用程序。”;有的闪了一下就自动关闭了。
程序应该是没有错误的,因为我拿二进制工具比较过修改之前和之后,程序就修改了Win32VersionValue,而且我用pexplorer查看修改过后的文件,pexplorer也认得我修改过后的Win32VersionValue值。如果用UltraEdit,把文件头中的Win32VersionValue改回0值,程序又可以正常使用了。
我的操作系统是XP SP3。请大家指点。
[解决办法]
这个域在pecoff规范上, 必须为0