内核扩展Hello:
1:xcode里选择System Plug-in, 然后选择Generic Kernel Extension模板创建HelloWorld
2:导入输出需要的库#include <libkern/libkern.h>
3:加入输入输出整体代码如下:
#include <mach/mach_types.h>
#include <libkern/libkern.h>
kern_return_t HelloworldDemo_start(kmod_info_t * ki, void *d);
kern_return_t HelloworldDemo_stop(kmod_info_t *ki, void *d);
kern_return_t HelloworldDemo_start(kmod_info_t * ki, void *d)
{
printf("Hello World\n");
return KERN_SUCCESS;
}
kern_return_t HelloworldDemo_stop(kmod_info_t *ki, void *d)
{
printf("Hello World\n");
return KERN_SUCCESS;
}
5:build可以打包出Helloworld.kext将这个文件拷到/System/Library/Extensions/下
注意:需要超级用户 可以使用sudo passwd root命令创建超级用户, 可以用这个命令:cp -r Helloworld.kext /System/Library/Extensions/
6:kextload Helloworld.kext 加载到内核
kextunload 停止加载
kextutil 加载到内核并提供诊断信息
kextstat 显示所有加载到内核的kext列表