2016-10-16 63 views
2

我注意到,我能夠進行數字簽名的任何隨機文件:存儲不在捆綁中的文件的密碼信息在哪裏?

touch ~/test 
md5 ~/test 
    -> MD5 (~/test) = d41d8cd98f00b204e9800998ecf8427e 
codesign -vv ~/test 
    -> code object is not signed at all 
codesign -s <Developer ID Certificate Hash> ~/test 
md5 ~/test 
    -> MD5 (~/test) = d41d8cd98f00b204e9800998ecf8427e 
codesign -vv ~/test 
    -> valid on disk 
    -> satisfies its Designated Requirement 

如果它被捆綁,協同設計信息,將存儲在這裏: MyBundle.app/Contents/_CodeSignature/

但在這種情況下,沒有包,並且文件的校驗和沒有變化,所以代碼簽名存儲在哪裏?

回答

1

真是個好問題!

如果觸摸文件,看看它與ls,你會看到這樣的內容:

$ ls -la test 
-rw-r--r-- 1 User staff 0 17 Oct 09:42 test 

協同設計文件並再次列出它

$ ls -la test 
[email protected] 1 User staff 0 17 Oct 09:42 test 

你會看到第二個列表在權限末尾有一個@,它告訴我們有一個或多個擴展屬性。

我們可以用一個呼叫存在查看數據到xattr

$ xattr -l test 

這將顯示代碼簽名數據,其被存儲爲文件的擴展屬性。

+1

謝謝!說得通。 –

相關問題