2016-10-26 61 views
0

我,新来的KEXT编程,所以我的问题是:SIP关在Mac OS,但仍然无法载入我的kext

I,M运行MacOS的10.11.6我已经把SIP断,但是当我尝试加载我 KEXT使用kextload,并使用-v标志我得到我的KEXT加载成功:

*Requesting load of /private/tmp/kern.kext. 
/private/tmp/kern.kext loaded successfully (or already loaded).* 

,并检查我的kext加载我已经使用kextstat

152 0 0xffffff7f82db3000 0x2000  0x2000  com.SPX.kext.kern (1) 299868F4-9962-362D-AE3D-09579B6780DB <4> 

但是当我从尾我的内核日志:/var/log/system.log 使用命令:tail -f /var/log/system.log

我看到错误:

MacBook-Pro com.apple.kextd[47]: kext signature failure override 

allowing invalid signature -67050 0xFFFFFFFFFFFEFA16 for kext

"/private/tmp/kern.kext" 

我的kext是一个简单的hello world kext,这是我的代码

#include <mach/mach_types.h> 
#include <libkern/libkern.h> 

kern_return_t kern_start(kmod_info_t * ki, void *d); 
kern_return_t kern_stop(kmod_info_t *ki, void *d); 

kern_return_t kern_start(kmod_info_t * ki, void *d) 
{ 
    printf("hello world"); 
    return KERN_SUCCESS; 
} 

kern_return_t kern_stop(kmod_info_t *ki, void *d) 
{ 
    printf("bye kext"); 
    return KERN_SUCCESS; 
} 

在此先感谢您的帮助

编辑:

这么多的试验后的模样KEXT加载成功,但是当涉及到代码符号问题,我通过Xcode的构建去设置在那里我发现代码签名所以在代码签名代码签名身份,所以我将它设置为不编码标志我使用Xcode构建工具xcodebuild -configuration Debug -target kern 构建它,但直到现在仍然没有任何进展,所以我希望有人帮助至少给出链接或任何东西。

+2

你引述的声音如内核中的消息让无论你加载的签名不正确的。 – zneak

+0

首先感谢您的快速重播先生 – jacky

+0

但实际上system.log应该给出的输出不是我上面提到的错误 – jacky

回答

0

你得到的输出表明kext正在被加载 - 代码签名不是你的问题。

但我注意到,您的printf()调用不包含行终止。 (\n)不输出整行会导致消息被缓冲的时间比您预期的要长,并且会遇到其他消息。像这样的东西,它应该工作,你应该看到在系统日志邮件:

printf("hello world\n"); 
+0

再次非常感谢 – jacky

相关问题