mac平臺的代碼注入和函數hook

    關於mac平臺的代碼注入和函數hook,github上有個開源工程mach_start是做這個事的。本人由於工作的需要也以這個工程爲基礎做些修改和完善。從我個人的使用經歷來看,我覺得mach_star這個工程還遠沒有達到穩定通用的程度,需要做一些改進。

    mach_star的主要問題在於函數調用的修正,雖然有專門的函數來做修正,但實際效果並不理想。第一個問題是它只修正導入表的地址,對本模塊的函數調用沒有處理。另外一個問題就是對導入表的修正不夠徹底,沒有考慮系統api在不同進程中地址不一樣的情況。

    第一個問題比較好解決,使用原來的修正函數來修正導入表之外的跳轉即可。對於第二個問題,需要獲取被注入進程的導入表,手動修正注入模塊的導入表,這個比較麻煩,需要使用vm_read函數讀取,手動分析mach-o格式。

    相對於windows的代碼注入,mac平臺的注入實在不是一個簡單的工作。

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