逆向開發--8.HOOK

一.概述

    在iOS逆向中是指改變程序運行流程的一種技術

    1.Method Swizzle  利用runtime特性,動態改變SEL和IMP對應關係

    2.fishhook    Fackbook提供的一個動態修改鏈接machO文件的工具,利用machO文件加載原理,通過修改懶加載和非懶加載兩個表的指針達到C函數hook目的

    3.Cydia Substrate   原名Mobile Substrate,主要針對OC方法、C函數以及函數地址進行HOOK

二.fishHook

    獲取代碼: git clone https://github.com/facebook/fishhook.git

    //用來重新綁定符號表的函數,使用它來交換

    FISHHOOK_VISIBILITY

    //參數一 存放rebinding結構體的數組(可以同時交換多個函數)
    //參數二 rebindings數組的長度
    int rebind_symbols(struct rebinding rebindings[], size_t rebindings)nel);
   

    struct rebinding {
        const char name;//需要HOOK的函數名稱,字符串
        void *replacement;//替換到哪個新的函數上(函數指針,也就是函數名稱)
        void **replaced;//保存原始函數指針變量的指針(它是一個二級指針)
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章