最近有源码审计的需求,首先了Fortify工具,但是其自带的漏洞库误报率较高,而且有很多过时我们并不需要的漏洞,于是想对官方规则库进行一些改造。经度娘查阅,找到了这篇文章:fortify规则库解密之旅|NOSEC安全讯息平台 - 白帽汇安全研究院
既然前人已经栽树,那我这后人就乘凉吧,一顿操作,解密成功,扫描源码……报错,规则库格式错误!
奇怪了,难道解密不对?这是不可能的,前面大哥调用的官方解密模块,不可能有错。于是分析解密后的xml,终于找到了原因:
看这是文件的最后,每个生成的xml,都会多出来这么几行,导致整个xml无效,验证失败。于是怀疑官方学坏了?在解密的最后留个小尾巴折腾人?
再分析前辈大哥写的解密代码,发现一处小问题:
看这里,读入缓冲区的内容直接写入新文件,未加判断,这就造成了,当到文件末尾时,