關于macSubstrate
macSubstrate是一款針對macOS的代碼注入和打樁測試工具,該工具可以在macOS作業系統上實作程序間代碼注入測試,其功能類似于iOS上的Cydia Substrate。
在該工具的幫助下,廣大研究人員可以輕松将自己的安全測試插件(.bundle或.framework)注入到macOS應用程式(包括沙盒應用程式)中,以在程式運作時對其進行安全測試或其他調整。
功能特性
1、我們隻需要擷取并建立針對目标應用程式的插件即可;
2、不會影響目标應用程式的原始狀态或代碼實作;
3、目标應用程式更新後不影響macSubstrate工作;
4、可以輕松安裝或解除安裝插件;
5、每當目标應用程式重新啟動時自動加載插件;
6、提供了GUI應用程式,可以通過圖形化界面簡化代碼和插件注入操作;
準備工作
1、
工具下載下傳
廣大研究人員可以直接通路該項目的【】下載下傳預編譯的最新版本macSubstrate應用程式,然後直接拖動到/Applications目錄中,直接啟動:
如果系統彈窗申請授權的話,請給應用程式提供必要的權限。
接下來,通過導入和拖拽的方式将插件安裝到macSubstrate中:
現在,我們就可以直接啟動目标應用程式了。當macSubstrate完成插件安裝之後,需要一點時間才可以生效。但是,如果你想要插件能夠在目标應用程式重新開機或macOS重新開機時立刻運作生效,你需要保持macSubstrate的運作,并允許在作業系統登入時自動運作。
如果你不想再使用某一個插件了,你也可以直接解除安裝它:
插件開發
macSubstrate支援.bundle或.framework形式的插件,是以我們需要建立一個有效的.bundle或.framework檔案來開發插件。檔案中最重要的是要将macSubstratePlugin鍵添加到info.plist中,該鍵要求包含下列值:
鍵 | 值 |
TargetAppBundleID | 目标應用程式的CFBundleIdentifier,指定要注入的是哪一個應用程式 |
Description | 插件概述 |
AuthorName | 插件開發者 |
AuthorEmail | 插件開發者電子郵箱 |
項目提供了demo.bundle和 demo.framework作為示例插件可供大家參考使用。
Xcode模闆
macSubstrate還提供了來幫助我們輕松建立插件:
ln -fhs ./macSubstratePluginTemplate ~/Library/Developer/Xcode/Templates/macSubstrate\ Plugin
啟動Xcode後,就會生成兩個新的插件模闆了。
許可證協定
本項目的開發與釋出遵循開源許可證協定。
項目位址
macSubstrate:https://github.com/wzqcongcong/macSubstrate
參考資料
https://developer.apple.com/library/content/releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_11.html