xnu

    1熱度

    1回答

    我在調用其中一個iokit命令時正在使用以下函數。它 extern void OSPrintBacktrace(void); 無論如何定義,我的KEXT看來我的KEXT加載失敗,因爲它找不到這個符號.. 12/26/16 10:02:53.000 AM kernel[0]: kxld[com.my.driver]: The following symbols are unresolved fo

    1熱度

    1回答

    這一直困擾着我很長一段時間。 在我的IOkit驅動程序中,我將中斷事件源,定時器事件源註冊到workloop。我使用GetWorkLoop() - > runAction(pAction)進行硬件訪問。因此,來自中斷處理程序和定時器處理程序以及我的pAction的所有硬件訪問都被序列化。 但是,我從IOCommandGate發現了另一個runAction。我不知道兩個runAction的區別。 我

    4熱度

    1回答

    當通過kdp調試遠程機器驅動程序(kext)時,我想從lldb讀取用戶空間地址。我知道,在我的代碼可以使用copyin以移動代碼到內核空間,容易閱讀,因此預期當我試圖讀取用戶內存直接失敗: (lldb) memory read 0x000070000d15a024 error: kdp read memory failed (error 4) 有一些替代到copyin在運行時調試會話將我的數

    0熱度

    1回答

    我正在顛倒iOS固件。有什麼方法可以找到內核二進制代碼,通過IOConnectCallMethod調用?

    1熱度

    1回答

    在建立/刪除回調(例如kauth_unlisten_scope)和回調本身(在xnu代碼庫,是的,我知道,它的日期)之間似乎沒有同步, 。這會增加跟蹤/消除回調的負擔,並與擴展本身的調用同步。但是這也是有問題的,因爲有一個窗口指出一個線程已經退出了回調並且實際返回了擴展代碼。 有什麼模式可以正確迴避這場比賽嗎?或者,是否有任何來自Apple的文檔表明他們已經正確地同步了這些內容?

    1熱度

    1回答

    我目前正在開發一個驅動程序在osx中​​,我在我的Xcode項目中使用XNU文件時出現問題。我根據這裏的說明建立了XNU: http://shantonu.blogspot.co.il/2013/10/building-xnu-for-os-x-109-mavericks.html 它成功地構建。 我應該將它安裝在XCODE的特定目錄中以查找庫和頭文件嗎? 謝謝。

    0熱度

    1回答

    萊文在他的書Mac OS X and iOS internals: To the Apple's Core.有一章與默認冷凍機相關,可用於虛擬內存管理。據說這是在osfmk/vm/default_freezer.c 實施在撰寫本文時,這仍然是不完整的。有誰知道這是否在更新版本的iOS中實現?我沒有找到很多文件。

    0熱度

    2回答

    是否可以通過C API而不是使用system()調用加載內核擴展(kext)?

    2熱度

    1回答

    我需要longjmp/setjmp在OS X的.kext文件中。不幸的是,我不認爲XNU中有這些函數的官方支持。有沒有什麼根本的原因,爲什麼這不起作用,或者它現在只是沒有實施? 任何想法,我可以得到這個工作? 如果有幫助,我想嘗試讓Lua在OS X內核中運行,但運行時似乎取決於longjmp/setjmp或C++異常,而這兩者在XNU中都不可用。

    1熱度

    1回答

    我爲我的驅動程序創建了卸載程序,它從/Library/LaunchDaemons中刪除了匹配的plist文件,以便在下一個引導週期內不會再由launchd加載它。 但是,它似乎並沒有對我的驅動程序仍然正常加載後啓動機器上的任何影響。 經過對此事的一些研究,我發現kextcache是這種行爲的原因,爲了清除/無效它,我需要touch安裝目標卷的文件夾。但是,它沒有任何影響。 我的問題是如何正確無效k