天天看點

macSubstrate:一款針對macOS的代碼注入和打樁測試工具

作者:FreeBuf

關于macSubstrate

macSubstrate是一款針對macOS的代碼注入和打樁測試工具,該工具可以在macOS作業系統上實作程序間代碼注入測試,其功能類似于iOS上的Cydia Substrate。

macSubstrate:一款針對macOS的代碼注入和打樁測試工具

在該工具的幫助下,廣大研究人員可以輕松将自己的安全測試插件(.bundle或.framework)注入到macOS應用程式(包括沙盒應用程式)中,以在程式運作時對其進行安全測試或其他調整。

功能特性

1、我們隻需要擷取并建立針對目标應用程式的插件即可;

2、不會影響目标應用程式的原始狀态或代碼實作;

3、目标應用程式更新後不影響macSubstrate工作;

4、可以輕松安裝或解除安裝插件;

5、每當目标應用程式重新啟動時自動加載插件;

6、提供了GUI應用程式,可以通過圖形化界面簡化代碼和插件注入操作;

準備工作

1、

工具下載下傳

廣大研究人員可以直接通路該項目的【】下載下傳預編譯的最新版本macSubstrate應用程式,然後直接拖動到/Applications目錄中,直接啟動:

macSubstrate:一款針對macOS的代碼注入和打樁測試工具

如果系統彈窗申請授權的話,請給應用程式提供必要的權限。

接下來,通過導入和拖拽的方式将插件安裝到macSubstrate中:

macSubstrate:一款針對macOS的代碼注入和打樁測試工具

現在,我們就可以直接啟動目标應用程式了。當macSubstrate完成插件安裝之後,需要一點時間才可以生效。但是,如果你想要插件能夠在目标應用程式重新開機或macOS重新開機時立刻運作生效,你需要保持macSubstrate的運作,并允許在作業系統登入時自動運作。

如果你不想再使用某一個插件了,你也可以直接解除安裝它:

macSubstrate:一款針對macOS的代碼注入和打樁測試工具

插件開發

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