iOS 初探代碼混淆(OC)

前言

本身作iOS開發也有幾年的時間了,平時作完項目基本就直接打包上傳到Appstore上,而後作上架操做了。可是最近,客戶方面提出了代碼安全的要求。說是要作代碼混淆,這方面的工做以前歷來沒有接觸過。而後就上網查了一下,原來有不少應用程序都作了代碼混淆。看來是我固步自封了......html

原由

使用classdump對原程序進行dump,能夠dump出全部源程序的函數全部信息:源程序全部函數類型,變量所有泄露。這樣的話,讓攻擊者,也就是黑客們瞭解了程序結構方便逆向。由於在工程中,咱們這些變量或函數命名都是有必定可讀性的,例如跟用戶名相關的,那通常裏面會有 userName,跟密碼相關的通常會有passWord,這樣定義也是爲了咱們本身代碼可讀性更強,咱們修改的時候才更加的方便。可是咱們相信,這麼個定義法,咱們只是但願方便咱們本身,咱們可不但願方便黑客們去破解咱們的APP。 總結出來就是一句話:「會把你項目中的全部方法和變量都羅列出來」。ios

開始混淆:

1.

在進行代碼混淆以前,咱們須要在咱們的項目中增長兩個文件:confuse.sh&func.list
咱們打開咱們的終端命令行
git


先cd到你項目的路徑下,而後回車
而後在終端中分別輸入 touch confuse.shfunc.list而後回車

這個時候打開咱們的項目文件夾,就能看到多了兩個文件。這個時候咱們打開咱們的工程,把咱們建立的這兩個文件添加到項目中去

2

這個時候咱們點擊咱們的confuse.sh文件能夠看到裏面的內容是空的,咱們要填一些代碼進去,點這個連接地址iOS安全攻防(二十三):Objective-C代碼混淆能夠把這位大神的代碼粘貼到本身的confuse.sh文件中github

3

在項目中添加一個.PCH文件。若是你說你不知道怎麼添加.pch,不要緊。這裏有個連接地址能幫到你ios中pch文件的建立與配置
成功添加.pch文件以後,咱們就要在.pch文件中添加這麼一句代碼#import"codeObfuscation.h 而後咱們編譯一下,是否是報錯了?是否是這樣的?
安全

咱們先把報錯的代碼註釋掉,而後去項目的 Build Phases中的左上角的 +號,選中那個 New Run Script Phase,而後以下圖所示,把你的 confuse.sh文件的地址寫進去
而後返回咱們的PCH文件,把咱們剛纔註釋的那行代碼打開,而後再編譯一會兒,是否是經過了。這個時候就證實,代碼混淆的前期工做,咱們已經作好了。

4

而後接下來的就是如何進行代碼混淆了。函數

這個時候你就找到一個你想要混淆的類(.h .m)文件均可以。把你想混淆的代碼複製一下,而後粘貼到咱們的func.list文件中去。而後編譯一下,而後把切換到這個界面 ui

咱們就能夠看到,咱們定義的屬性或者方法名都被混淆了。

5

打完收工,Over!!!!!

6

注意:該方法只能針對有.m.h的類進行混淆,靜態庫等只有.h文件的無法進行混淆

7

傳送門:Objective-C代碼混淆

相關文章
相關標籤/搜索