2016-10-26 133 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

相關問題