簡體   English   中英

主題:在Mac OS X High Sierra的鑰匙串訪問中無法為gdb的系統證書進行代碼簽名

[英]subject: cannot codesign system certificate for gdb in keychain access in Mac OS X High Sierra

我正在嘗試在Mac OSX High Sierra上使用gdb。 我使用brew安裝了8.01版(最新版本8.1實際上有一個單獨的,不相關的錯誤 ),並且在codesign步驟上遇到了麻煩。 我正在按照brew建議頁面上說明進行操作

在“鑰匙串訪問”中,我使用“ codesign”選項創建一個證書,並覆蓋默認值,然后單擊直到其要求輸入證書的位置為止,為此我選擇了“鑰匙串:系統”。 但是,此后我立即收到一條神秘消息:

An Error Occurred
Unknown Error = -2,147,414,007

該消息也出現在上一個線程中 ,但是唯一的答案是質量低下,沒有用,問題似乎並沒有引起太多的關注。 我還嘗試進入恢復模式並執行csrutil disable ,但仍然出現-2,147,414,007錯誤。 回到“鑰匙串訪問”窗口中“系統”下,我獲得了剛創建的證書的公共和私有RSA密鑰,但是證書本身不存在。

如果我重復所有操作,但是在“登錄”而不是“系統”下創建,那么這次將創建證書。 然后,我將一個.cer文件導出到我的桌面,然后再導入到Keychains中,但在“系統”類別下。 然后,我重新啟動計算機,然后執行

codesign -s gdb-cert /usr/local/Cellar/gdb/8.0.1/bin/gdb

但我收到error: The specified item could not be found in the keychain.

我當然可以lldb執行sudo gdblldb ,但我想將gdbemacs一起使用,所以這些都不是選項(當然,從技術上講,我可以只執行sudo emacs ,它將起作用,但是出於明顯的原因,我不希望使用sudo )。 我該如何對gdb進行代碼簽名,以便可以在不遇到mach port投訴的情況下使用它?

編輯:似乎其他地方的另一個線程有很多人有同樣的問題。 那里似乎沒有確定的解決方法。 我嘗試了一些建議,並繼續得到

Unable to find Mach task port for process-id 575: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))

我終於得到它的工作。 我正在使用截至本文發布之日的最新High Sierra。 首先,我安裝了較舊的gdb版本8.0.1,而不是似乎已損壞的最新版本8.1:

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/9ec9fb27a33698fc7636afce5c1c16787e9ce3f3/Formula/gdb.rb

然后brew pin gdb

對於后續步驟,我發現此線程該其他線程很有用。 另外, 此頁面

為了避免-2,147,414,007錯誤,請在“登錄”而不是“系統”中創建證書。 然后,單擊掛鎖以解鎖“系統”類別,然后將證書和密鑰拖動到“系統”中。 如果此處出現任何問題,您可以嘗試使用File-> Import和File-> Export。 目標是獲得以下內容:

鑰匙串訪問

例如證書和密鑰都在System鑰匙串下,而不是login (甚至不必將鍵拖到系統中,但為了安全起見,我這樣做了)。

然后,這是非常重要的一步:右鍵單擊證書,轉到“信息”,“信任”,然后為每個類別選擇“始終信任”。 如果您不這樣做,則代碼簽名將無效,即使您進行了代碼簽名,也仍會在gdb中獲得馬赫端口錯誤消息。

(上面鏈接的兩個線程中的答案之一是說暫時啟用Directory Utilities中的root帳戶,但我不確定這是否確實必要)。 然后,重新啟動計算機或執行sudo killall taskgated 然后codesign -fs gdb-cert $(which gdb)

然后,我不再在gdb中收到mach端口錯誤消息。 我第一次跑時,出現一個彈出窗口,要求輸入密碼 為了禁用它以便以后運行,我按照該線程做了sudo /usr/sbin/DevToolsSecurity --enable

還要注意8.0.1有一個小問題:您將收到有關unhandled dlyd version警告。 該線程對此進行了解釋。 請注意,該線程中的某些帖子說斷點不起作用,但我沒有看到這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM