HardenedLinux 写道 “srcinv 旨在通过编译器编译时的中间信息搜集和分析全局角度审计整个项目,近日发布的 v0.5 版本实现了针对 GCC 编译的程序基于 ALL_IPA_PASSES_END 进行收集和解析的功能。
当前 Ubuntu 18.04 下使用 v5.3 内核和 GCC 8.3.0 进行测试结果大概如下:内核编译(仅生成 vmlinux)生成了 30+G 的数据文件,总共 2537 个.c 源文件,解析生成了 4G 的索引数据,解析完成之后, 能够得到一级函数指针的调用关系(比如__vfs_read 函数和 tty_read)。未来的版本会基于稳定性修复的前提下去完成函数参数的回溯(例如函数调用时的实参为函数用以完善函数调用链),函数内部逻辑的梳理(入口到出口的执行流程)以及单条执行路径的状态指示(路径到达的必要条件和影响因素等),简单漏洞模型的静态检测和动态验证等 feature。


