gpt4 book ai didi

c - 通过可加载内核模块拦截 linux 内核 : fs/binfmt_elf. c 文件中的 ELF 加载程序

转载 作者:太空狗 更新时间:2023-10-29 15:35:19 25 4
gpt4 key购买 nike

我是内核编码的新手,目前我正在使用 ELF 文件,这些文件出于安全目的进行了一些修改,为此我需要查看其中的一些自定义部分标题并从中提取唯一的代码加密 key 供 CPU 解密修改后的 ELF 的内容。

目前上述逻辑已经在内核源码树的fs/binfmt_elf.c文件中的load_elf_binary函数中实现,不过只有250行左右我需要重新编译整个内核的代码更改,因此我希望通过将其实现为可加载内核模块(LKM)来即兴发挥此功能,以便每次加载 ELF 时,它都会检查其是否已修改 ELF 和如果是,则从相应部分提取 key 。

编辑:总而言之,我正在考虑制作一个可加载的内核模块来读取 ELF 的各个部分并获取包含加密 key 和相关元数据的自定义部分的内容,并将这些值设置在 CPU 寄存器中。

最佳答案

是的,可能,但绝对不容易。甚至还有一个受支持的内核工具“kprobes”,它允许您从指定位置插入对您自己的代码的调用(请参阅 Documentation/kprobes.txt)。如果插入对您自己的代码的调用是不够的,我认为您需要使用与 kprobe 相同的机制:通过用 jmpcall 覆盖指令来修补所需的位置>进入您自己的代码。

我曾经在一家公司工作,该公司的安全产品通过运行时修补 Windows 内核来安装其 Hook 。这几乎是一回事,尽管至少在当时的 Windows 中必须支持的版本数量有限。

所以,这绝对是可能的,但我不想尝试。它会很脆;你实际上是在试图击中一个移动的目标。每个内核安全补丁或版本升级都可能破坏您的代码。

关于c - 通过可加载内核模块拦截 linux 内核 : fs/binfmt_elf. c 文件中的 ELF 加载程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30797827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com