iOS 初探代碼混淆(OC)

來源:互聯網
上載者:User

標籤:codec   htm   應用程式   命令列   com   檔案的   複製   pst   針對   

iOS 初探代碼混淆(OC)前言

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

起因

使用classdump對原程式進行dump,可以dump出所有來源程式的函數所有資訊:來源程式所有函數類型,變數全部泄露。這樣的話,讓攻擊者,也就是駭客們瞭解了程式結構方便逆向。因為在工程中,我們這些變數或函數命名都是有一定可讀性的,例如跟使用者名稱相關的,那一般裡面會有 userName,跟密碼相關的一般會有passWord,這樣定義也是為了我們自己代碼可讀性更強,我們修改的時候才更加的方便。但是我們相信,這麼個定義法,我們只是希望方便我們自己,我們可不希望方便駭客們去破解我們的APP。 總結出來就是一句話:“會把你項目中的所有方法和變數都羅列出來”。

開始混淆:1.

在進行代碼混淆之前,我們需要在我們的項目中增加兩個檔案:confuse.sh&func.list
我們開啟我們的終端命令列


先cd到你項目的路徑下,然後斷行符號
然後在終端中分別輸入  touch confuse.sh 和 func.list然後斷行符號
這個時候開啟我們的專案檔夾,就能看到多了兩個檔案。這個時候我們開啟我們的工程,把我們建立的這兩個檔案添加到項目中去

 

2

這個時候我們點擊我們的confuse.sh檔案可以看到裡面的內容是空的,我們要填一些代碼進去,點這個連結地址iOS安全攻防(二十三):Objective-C代碼混淆可以把這位大神的代碼粘貼到自己的confuse.sh檔案中

3

在項目中添加一個.PCH檔案。如果你說你不知道怎麼添加.pch,沒關係。這裡有個連結地址能幫到你ios中pch檔案的建立與配置
成功添加.pch檔案之後,我們就要在.pch檔案中添加這麼一句代碼#import"codeObfuscation.h 然後我們編譯一下,是不是報錯了?是不是這樣的?

我們先把報錯的代碼注釋掉,然後去項目的 Build Phases中的左上方的 +號,選中那個 New Run Script Phase,然後如所示,把你的 confuse.sh檔案的地址寫進去然後返回我們的PCH檔案,把我們剛才注釋的那行代碼開啟,然後再編譯一下子,是不是通過了。這個時候就證明,代碼混淆的前期工作,我們已經做好了。

 

4

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

這個時候你就找到一個你想要混淆的類(.h .m)檔案都可以。把你想混淆的代碼複製一下,然後粘貼到我們的func.list檔案中去。然後編譯一下,然後把切換到這個介面

我們就可以看到,我們定義的屬性或者方法名都被混淆了。

 

5打完收工,Over!!!!!6注意:該方法只能針對有.m.h的類進行混淆,靜態庫等只有.h檔案的沒法進行混淆7傳送門:Objective-C代碼混淆

 

c4ibd3
連結:https://juejin.im/post/5b06578f51882538c150744b

iOS 初探代碼混淆(OC)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.