iOS應用安全之代碼混淆設計篇

來源:互聯網
上載者:User

關於iOS應用安全之代碼混淆專題分為以下篇章:

1.iOS應用安全之代碼混淆設計篇

2.iOS應用安全之代碼混淆實現篇


iOS應用安全隨著各種事件的曝出,越來越受到重視。那針對iOS應用安全方面能做點什麼呢。如何讓我們開發的應用更安全一點呢。要知道如何才能安全,就要瞭解iOS應用怎麼就不安全了呢。現在隨著越獄技術的提高和各種工具的完善,使得逆向分析一款iOS應用變成了一個輕而易舉事情。因此,要使的iOS應用更安全,那就從逆向工程的各個階段進行層層阻攔。當然,這個只是增加逆向到難度而已~。

iOS應用逆向分析分為靜態分析和動態分析。分析的前提是先有一部越獄過的裝置,然後再應用去殼,將去殼後的應用利用工具class-dump匯出標頭檔(先透漏下,本文就是針對它的,哈哈~),用於剖析器邏輯及設計實現,利用IDA 或Hoper進行反組譯碼。以上兩種方法為靜態分析。利用LLDB對應用進行動態調實驗證,那這個方法就是動態分析了。逆向的事也不多說了(就知道這些-_-|),本文的設計就是為了增加匯出標頭檔分析的難度,讓逆向人員看著標頭檔兩眼冒金星~~

為了達到看一眼兩眼冒金星的效果,現打算將以下內容進行混淆:

1.檔案名稱

2.類名

3.協議名

4.屬性名稱

5.函數名

元芳,你怎麼看。將以上內容混淆後,然後編譯發布。這樣使用clas-dump匯出的標頭檔,應該也是混淆後的了。這樣也就達到了我們的目的。

採用何種方式混淆呢。混淆無非就是將原來字解釋的關鍵字變的不可讀,那就簡單點,直接調用系統內建的md5密碼編譯演算法加密就可以了。


那混淆就簡單的很了,混淆看來是指日可待了~


混淆原理:將以上需要混淆的內容關鍵字提取去來,然後md5加密,然後再替換工程中出現的關鍵字。


原理很簡單,要考慮哪些問題呢。

1.如何提取關鍵字。

2.混淆演算法就簡單了,這個不是問題...

3.混淆後的關鍵字,怎麼替換原來的關鍵字呢。

4.混淆後的工程還要還原回去嗎。

5.混淆程式採用何種方式實現。

...

1.如何提取關鍵字。

提取關鍵字,當然是根據各種關鍵字自己的特性使用工具自動完成提取的。人工提取那還不瘋了。。。如果工具提取,那符合規則的關鍵字包括系統的,不就都提取出來了。這樣程式還能編譯通過嗎。也就是說提取關鍵字,只能提取自訂的,不能把系統自己產生的或使用的也提取出來。這個有點麻煩~~~~~。

2.混淆演算法

md5,這個是無法復原的,所以混淆後,要保留關鍵字和加密後的對應表,方便後續排除bug用。

3.混淆後的關鍵字,怎麼替換原來的關鍵字呢。

這個當然是使用工具批量替換了,如果遇到以下情況怎麼辦。

原字串:“This is my fish.” 要將is” 替換為”is not“。我們希望的當然是:“This is not my fish.” 而不是“This not is not my fis noth.” 。也就是說,要達到想要的目的,必須是單詞匹配替換,這個很重要。

4.混淆後的工程還要還原回去嗎。

能混淆,當然能還原回去,但是好像沒有必要哦~~,那就不考慮還原回去了,我的地盤聽我的,呵呵。

5.混淆程式採用何種方式實現。

首先當然是指令碼了,命令列工具豐富的很,拿來用即可。只是可惜,還要一個個學習而已。


還整點啥景呢。沒了就開始整唄~


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.