在构建内核之前,我如何知道哪些文件将包含在linux内核中?

巴克斯

我正在从事一个项目,其中包括构建旧的linux内核版本。很好,但是我仍然需要修补基于CVE的所有先前发现的安全漏洞的内核。我拥有CVE,并提取了其中提到的易受攻击的文件的名称以及它影响的内核版本。

到目前为止,我发现了大约150个潜在漏洞可能会影响我的构建,但是显然其中一些漏洞会影响与我不使用的图形驱动程序有关的文件。到目前为止,我只是手动浏览了列表,使用来检查文件是否包含在其中make menuconfig,并考虑Kconfig了相关文件夹中的内容。到目前为止,这种方法还可以,但是这些方法没有显示实际的文件名(例如ipc / sem.c),因此需要的工作量比必要的多。

理想情况下,我想以某种方式打印将包含在构建中的所有文件的列表,然后只编写脚本来检查是否包含易受攻击的文件。

如何找到将包含在我的构建中的源文件的名称(例如ipc / sem.c)?

吉勒斯“别再邪恶了”

进行构建,然后列出.o文件。我认为每一个.c或者.S是参与在构建文件编译成一个.o具有相应名称的文件。这不会告诉您安全问题是否需要在构建中包含的头文件中进行修复。

make vmlinux modules
find -name '*.o' -exec sh -c '
    for f; do for x in c S; do [ -e "${f%.o}.$x" ] && echo "${f%.o}.$x"; done; done
' _ {} +

一种更精确的方法是将源放置在存储访问时间的文件系统上,然后进行构建。访问时间未被该版本更新的文件未在该版本中使用。

touch start.stamp
make vmlinux modules
find -type f -anewer start.stamp

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将脚本单独包含在我的构建文件夹中?

Linux内核是如何构建的

Linux内核如何知道将输入事件写入哪个文件描述符?

我如何知道elixir的CPU中的内核数量?

如何将内核调试信息构建为单独的文件?

Linux +如何知道前一天哪些CPU内核处于活动状态

Linux:如何知道哪些进程固定在哪个内核上?

为什么j1939.h不包含在Ubuntu 18.04 Linux内核中?

它包含在 linux 手册的第 9 节内核例程中的内容

如何仅将JavaScript库包含在create-react-app的生产构建文件中?

如何使用Ant构建将Maven依赖库包含在war文件中

在freebsd中,如何知道在编译期间在内核中启用了哪些选项

如何在模块中包含任意内核头文件?

如何git克隆特定的Linux内核构建

如何自动配置 Linux 内核构建

如果我从源代码构建linux内核,默认情况下它是否包含initramfs?

如何知道在内核中启用什么?

我可以阅读Linux内核的哪些部分以取乐?

我可以安全删除哪些旧的内核相关文件?

依赖二进制文件如何包含在我在 Maven 中最终构建和安装的 .JAR 中?

我如何将SASS mixin包含在变量中?

如何在构建后将Vue环境变量设置为不包含在JS文件中?

.net核心项目在构建时如何知道要包含哪些文件

我怎么知道什么解压算法被编译进了 linux 内核?

如何将jar文件包含在Scala代码中

如何获得Linux内核中CPU内核的能耗?

Linux内核如何自我更新?

Linux内核中的USB鼠标使用哪些驱动程序?

我必须包含哪个头文件才能在内核源文件中获取printk()?