iOS 逆向開(kāi)發(fā)指西

隨著業(yè)務(wù)發(fā)展 安全攻防這塊也需要作了解,避免灰產(chǎn)薅羊毛。要想研究怎么弄盾 首先要去研究矛。
先介紹我用到的技術(shù)

  • monkeydev 基本這個(gè)就是全套服務(wù)了,初級(jí)逆向開(kāi)發(fā)者用這個(gè)足已
  • class dump 對(duì)砸殼后的app進(jìn)行恢復(fù)頭文件 方便我們了解。 (monkey dev 已集成)
  • yoyolib 將動(dòng)態(tài)庫(kù)鏈接至app (monkey dev 已集成)
  • pp助手 手頭沒(méi)有越獄機(jī) 無(wú)法砸殼,所以就用pp上的砸殼后的IPA 。
  • hook工具 CaptainHook fishhook

Monkeydev

記得一定要看wiki 新手將wiki看個(gè)幾遍就行了。

class-dump

這個(gè)安裝之后需要將bin文件一道 /usr/bin or /usr/local/bin 如果提示無(wú)權(quán)限還需要給這個(gè)文件權(quán)限。

先簡(jiǎn)單介紹下CaptainHook

CHDeclareClass() //申明需要的類

CHOptimizedMethod()//需要hook的函數(shù)  參數(shù)有函數(shù)的類型 返回值
{
      CHSuper2()調(diào)用原來(lái)的方法。
}
CHConstructor({
        @autoreleasepool{
                CHLoadLateClass() 加載這個(gè)類 執(zhí)行hooke
                CHHook1() 需要hook的函數(shù)
        }
})

其實(shí)你把monkey整個(gè)wiki 看過(guò)一遍基本能初步入門(mén)逆向。
這里介紹幾個(gè)小技巧。

  • class-dump 之后的頭文件分析出自己需要的函數(shù) 當(dāng)我們需要調(diào)用宿主的類時(shí) 我們可以自己申明一個(gè)頭文件,包含我們需要的類 以及其方法
@interface MMTableViewInfo : NSObject
- (void)insertSection:(id)sec At:(int)index;
- (UITableView *)getTableView;
@end

這樣我們就有了代碼提示。沒(méi)必要去用runtime

  • PP助手上一定要選 越獄包
  • 在工程的buildSeting里搜 User-Defined ,如果搜不到 就搜 monkey ,會(huì)有幾個(gè)選項(xiàng)讓你選擇。我們將所有的都設(shè)置為yes 這時(shí)候 monkeydev 會(huì)幫你classdump 已經(jīng)做符號(hào)表恢復(fù)。
  • 介紹個(gè)調(diào)試技巧, 自己看
    簡(jiǎn)單來(lái)說(shuō) 在lldb‘下獲取一個(gè)類所有函數(shù)的地址的方法, [fuckClass _shortMethodDescription]。
    然后用b 0xfffffffff 就可以設(shè)置斷點(diǎn)拉
  • 基本這時(shí)候你就可以去使用了啊 ??
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容