本demo以通訊錄的c function為例 hook其中的一個c function。
app為
這個app是在獲取通訊錄的授權之后,獲取每一個通訊錄名片的詳細信息 此處要hook的是 ABAddressBookCopyArrayOfAllGroups 這個 C函數
hook細節為
步驟為
1:首先對需要hook的函數的一個extern的定義
2:對old函數和新函數的聲明,注意 需要在新函數里實現對舊函數的實現 類似%orig,否則的話這個函數將會失去原始的功能
3:在%ctor初始化中 使用substrate提供的 MSHookFunction實現對C Function的替換
結果為