性能分析和安全审计等操作,`make menuconfig`,然后在配置界面中找到“Kernel hacking”选项,找到“Compile-time checks and compiler options”,然后禁用“Compile the kernelwithBTFtypeinformation”,保存退出。
返回到Kernel hacking菜单 ---> (可能需要先退回主菜单再进入)Processor type and features---> 找到Randomize the address of the kernel image (KASLR)选项,按空格键取消选中(确保显示为[ ])。这将设置CONFIG_RANDOMIZE_BASE=n,禁用内核地址空间布局随机化(Kernel Address Space Layout Randomization, KASLR)。禁...
内核会稍微大一点,但不管 是否有数学协处理器,都可以在不同的机器上工作。 “kernel hacking”配置细节通常会导致更大或更慢的内核(或两者 兼而有之),甚至可以通过配置一些例程来主动尝试破坏坏代码以发现 内核问题,从而降低内核的稳定性(kmalloc())。因此,您可能应该 用于研究“开发”、“实验”或“调试”特性相...
欢迎阅读 Rusty's Remarkably Unreliable Guide to Linux Kernel Hacking。本文档描述了内核代码的常见例程和一般要求:其目标是为有经验的 C 程序员提供 Linux 内核开发的入门指南。我避免了实现细节:这就是代码的用途,我忽略了一些有用的例程。 在阅读本文之前,请了解我从未想过要写这个文档,因为我明显不够资格,但...
这次Hacking前先给自己设定了几个目标(也算是想清楚为何要这么做): * 追溯本源 用Linux内核运转原理解释上层应用的行为并指导上层应用的开发。 * 定制优化 在对Linux Kernel有了深入了解之后,尝试定制适合产品特性的Linux内核。 * 走进内核开发,尝试提交补丁 ...
欢迎阅读 Rusty's Remarkably Unreliable Guide to Linux Kernel Hacking。本文档描述了内核代码的常见例程和一般要求:其目标是为有经验的 C 程序员提供 Linux 内核开发的入门指南。我避免了实现细节:这就是代码的用途,我忽略了一些有用的例程。 在阅读本文之前,请了解我从未想过要写这个文档,因为我明显不够资格,但...
打开kernel配置,使能如下选项: kernel hacking ---> [*] Show timing information on printks 1. 2. linux4.9 kernel hacking ---> printk and dmesg options ---> [*] Show timing information on printks 1. 2. 3. 将会在内核的log前加入时间戳。
4.2.KASAN(Kernel Address Sanitizer) KASAN是一种用于检测内核中的内存错误(例如越界访问)的动态分析工具。要使用KASAN,需要在内核配置中启用此功能。 启用KASAN的步骤: ² 进入内核源代码目录 ² 执行`make menuconfig`命令,进入内核配置菜单 ² 进入"Kernel hacking"子菜单 ...
首先使用make menuconfig来生成默认的config文件,这是一个图形化的配置,可以在kernel hacking选项中启用部分调试选项来更好的分析kernel上的漏洞。接着使用make命令来进行编译,当然这只是默认的编译选项,针对linux内核的编译非常多的选择。 默认的编译会生成多个文件,包含了vmlinux、System.map、bzImage等文件,这里主要关注...
有,只要我们能写和插入kernel module就可以干这个事情。 下面这个代码是模拟内核当中父进程回收子进程资源的逻辑来完成对僵尸进程的“过继”和“清除”,而不需要杀死其父进程。简单来说就是把一个父进程活着的僵尸进程直接交给init进程使其对它进行回收。 代码参考前面。父进程启动把自己名字改为testaa,然后启动子...