注:原文---念茜的博客
Objective-C代碼容易被hook,暴露信息太赤裸裸,為了安全,改用C來寫吧!
當(dāng)然不是全部代碼都要C來寫,我指的是敏感業(yè)務(wù)邏輯代碼。
本文就介紹一種低學(xué)習(xí)成本的,簡易的,Objective-C邏輯代碼重寫為C代碼的辦法。
也許,程序中存在一個類似這樣的類:

被class-dump出來后,利用Cycript很容易實現(xiàn)攻擊,容易被hook,存在很大的安全隱患。
想改,但是不想大改程序結(jié)構(gòu),腫么辦呢?
把函數(shù)名隱藏在結(jié)構(gòu)體里,以函數(shù)指針成員的形式存儲。
這樣做的好處是,編譯后,只留了下地址,去掉了名字和參數(shù)表,提高了逆向成本和攻擊門檻。
改寫的程序如下:


最后,根據(jù)Xcode的報錯指引,把以前這樣的調(diào)用


就可以了。
是的,絕不費一點腦子。