我是 kext 编程的新手,所以我的问题是:
我,我正在运行 macOS 10.11.6 我已经关闭了 SIP,但是当我尝试使用kextload并使用 -v 标志加载我的 kext 时,我发现我的 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 Build Settings 并在那里我发现了代码签名,所以在代码签名中有代码签名身份,所以我将其设置为Don't代码签名,我使用 Xcode 构建工具构建它, xcodebuild -configuration Debug -target kern
但到目前为止仍然没有进展,所以我希望有人帮助至少提供一个链接或任何东西。