iOS安全–淺談關(guān)于iOS加固的幾種方法

iOS代碼混淆的簡(jiǎn)單實(shí)現(xiàn)

關(guān)于IOS安全這方面呢,能做的安全保護(hù)確實(shí)要比Android平臺(tái)下面能做的少很多。
只要你的手機(jī)沒越獄,基本上來說是比較安全的,當(dāng)然如果你的手機(jī)越獄了,可能也會(huì)相應(yīng)的產(chǎn)生一些安全方面的問題。就比如我在前面幾篇博客里面所介紹的一些IOS逆向分析,動(dòng)態(tài)分析以及破解方法。
但是盡管這樣,對(duì)IOS保護(hù)這方面來說,需求還不是很乏,所有基于IOS平臺(tái)的加固產(chǎn)品也不是很多,目前看到幾種關(guān)于IOS加固的產(chǎn)品也有做的比較好的。
最開始關(guān)于愛加密首創(chuàng)的IOS加密,http://www.ijiami.cn/ios 個(gè)人感覺這只是一個(gè)噱頭而已,因?yàn)闆]有看到具體的工具以及加固應(yīng)用,所以也不知道它的效果怎么樣了。
后來在看雪上面看到一個(gè)http://www.safengine.com/mobile/ 有關(guān)于IOS加密的工具,但是感覺用起來太麻煩了,而且讓產(chǎn)品方也不是很放心,要替換xcode默認(rèn)的編譯器。
不久前看到偶然看到一個(gè)白盒加密的應(yīng)用http://kiwisec.com/ 也下下來試用了一下,感覺要比上面兩個(gè)從使用上方面了許多,而且考慮的東西也是比較多的。
好了,看了別人做的一些工具,這里大概說下都有哪些加固方法以及大概的實(shí)現(xiàn)吧,本人也是剛接觸這個(gè)方面不就,可能分析的深度沒有那么深入,大家就隨便聽聽吧。
現(xiàn)在的加固工具總的來說都是從以下幾個(gè)方面來做的:
一、字符串加密:
現(xiàn)狀:對(duì)于字符串來說,程序里面的明文字符串給靜態(tài)分析提供了極大的幫助,比如說根據(jù)界面特殊字符串提示信息,從而定義到程序代碼塊,或者獲取程序使用的一些網(wǎng)絡(luò)接口等等。
加固:對(duì)程序中使用到字符串的地方,首先獲取到使用到的字符串,當(dāng)然要注意哪些是能加密,哪些不能加密的,然后對(duì)字符串進(jìn)行加密,并保存加密后的數(shù)據(jù),再在使用字符串的地方插入解密算法,這樣就很好的保護(hù)了明文字符串。
二、類名方法名混淆
現(xiàn)狀:目前市面上的IOS應(yīng)用基本上是沒有使用類名方法名混淆的,所以只要我們使用class-dump把應(yīng)用的類和方法定義dump下來,然后根據(jù)方法名就能夠判斷很多程序的處理函數(shù)是在哪。從而進(jìn)行hook等操作。
加固:對(duì)于程序中的類名方法名,自己產(chǎn)生一個(gè)隨機(jī)的字符串來替換這些定義的類名和方法名,但是不是所有類名,方法名都能替換的,要過濾到系統(tǒng)有關(guān)的函數(shù)以及類,可以參考下開源項(xiàng)目:https://github.com/Polidea/ios-class-guard
三、程序代碼混淆
現(xiàn)狀:目前的IOS應(yīng)用找到可執(zhí)行文件然后拖到Hopper Disassembler或者IDA里面程序的邏輯基本一目了然。
加固:可以基于Xcode使用的編譯器clang,然后在中間層也就是IR實(shí)現(xiàn)自己的一些混淆處理,比如加入一些無用的邏輯塊啊,代碼塊啊,以及加入各種跳轉(zhuǎn)但是又不影響程序原有的邏輯。可以參考下開源項(xiàng)目:https://github.com/obfuscator-llvm/obfuscator/ 當(dāng)然開源項(xiàng)目中也是存在一些問題的,還需自己再去做一些優(yōu)化工作。
四、加入安全SDK
現(xiàn)狀:目前大多數(shù)IOS應(yīng)用對(duì)于簡(jiǎn)單的反調(diào)試功能都沒有,更別說注入檢測(cè),以及其它的一些檢測(cè)了。
加固:加入SDK,包括多處調(diào)試檢測(cè),注入檢測(cè),越獄檢測(cè),關(guān)鍵代碼加密,防篡改等等功能。并提供接口給開發(fā)者處理檢測(cè)結(jié)果。

當(dāng)然除了這些外,還有很多方面可以做加固保護(hù)的,相信大家會(huì)慢慢增加對(duì)IOS應(yīng)用安全的意識(shí),保護(hù)好自己的APP。

原文鏈接:http://www.blogfshare.com/ios-protect.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • via:http://www.blogfshare.com/ios-protect.html?f=http://b...
    蕭城x閱讀 1,771評(píng)論 0 11
  • 目錄 一、為什么要加固 二、加固的幾種方法 三、基于念茜如何加固 四、其他人的加固方法 前言 APP加固之代碼混淆...
    dvlproad閱讀 19,611評(píng)論 7 42
  • 前提 眾所周知,iOS系統(tǒng)安全性非常高,很少出現(xiàn)漏洞,幾乎不會(huì)中毒。大家認(rèn)為蘋果系統(tǒng)的封閉性會(huì)使iOS APP安全...
    小楓123閱讀 1,310評(píng)論 0 10
  • 前提 眾所周知,iOS系統(tǒng)安全性非常高,很少出現(xiàn)漏洞,幾乎不會(huì)中毒。大家認(rèn)為蘋果系統(tǒng)的封閉性會(huì)使iOS APP安全...
    在_宥閱讀 23,820評(píng)論 12 56
  • 這幾天忙著給三歲多的仔仔選幼兒園,南寧的幼兒園分公立和私立,也有些特別的私塾幾十個(gè)人就組團(tuán)成園。南寧的公立幼兒園費(fèi)...
    南寧大喇叭閱讀 282評(píng)論 0 0