Redoce在解密异常数据流时可能出现“未知的软件异常(0x0eebfade)”错误,测试发现这是由于提供的数据流不是标准的数据流或根本不是数据流。在无法正确识别流格式时,Delphi编写的DLL(旧版使用Zlib单元,新版引用ZlibEx单元,均会发生故障)将会抛出一个Data Error异常,但是由于VB编写的无法正确识别该异常从而导致程序崩溃,我正尝试修改代码使得遇错不退出。
TIP:PDF结构分析时会自动“高亮”所有流项目,点击流项目即可定位,一般情况下当压缩流(CStream栏)的长度(LenB项目)大于1000时才有比较大的可能是恶意数据(否则的话对于恶意代码来说太短了),如果全部都是小于1000的,比如引发异常的这个pdf:
0-> [CStream] (LengthB= 50)
1-> [CStream] (LengthB= 59)
2-> [CStream] (LengthB= 46)
3-> [CStream] (LengthB= 172)
4-> [CStream] (LengthB= 584)
5-> [CStream] (LengthB= 33)
6-> [CStream] (LengthB= 179)
7-> [CStream] (LengthB= 44)
很有可能就是恶意代码以未压缩数据流的形式存在于PDF文档中。