iOS逆向工程之App脫殼

本篇博客以微信為例,給微信脫殼右锨。"砸殼"在iOS逆向工程中是經(jīng)常做的一件事情,碌秸,因為從AppStore直接下載安裝的App是加殼的绍移,其實就是經(jīng)過加密的,這個“砸殼”的過程就是一個解密的過程讥电。未砸殼的App是無法在Class-dump蹂窖、Hopper等工具中使用的。所以我們要將App進行砸殼處理恩敌。在Android開發(fā)中也存在App加殼的處理瞬测,比如什么360加固了,其實就是給App加一層殼纠炮。
本篇博客我們就以WeChat(微信)為例月趟,從AppStore上下載微信并安裝,然后使用dumpdecrypted工具(當然你也可以使用其他砸殼工具)進行砸殼處理恢口。砸殼后會生成解密后的App文件狮斗,然后我們就可以使用Class-dump和Hopper處理解密后的文件了。廢話少說弧蝇,就開始今天的主題碳褒。

一折砸、生成dumpdecrypted.dylib動態(tài)庫
首先我們要生成“砸殼”用的動態(tài)庫dumpdecrypted.dylib,我們“砸殼”時主要用到這個動態(tài)庫沙峻。該動態(tài)庫的源碼在github上是開源的(Github地址)睦授,要想得到dumpdecrypted.dylib這個動態(tài)庫,只需要從github上下載代碼摔寨,然后進行編譯去枷,生成dumpdecrypted.dylib即可。下方就是使用make命令對dumpdecrypted的源碼進行編譯是复。
進入到dumpdecrypted文件夾下删顶,運行make命令即可。
  


編譯完成后淑廊,dumpdecrypted文件夾中就會多一個dumpdecrypted.dylib動態(tài)庫逗余,該動態(tài)庫就是稍后我們砸殼使用的工具。
  

二季惩、“砸殼”前的準備工作
接下來就是要在越獄手機上尋找要“砸殼”的app路徑了录粱,首先使用ssh連接到你的越獄設備,然后在越獄設備中打開你要砸殼的App, 此處我們以微信為例画拾。從AippStore中下載安裝的應用都會位于/var/mobile/Applications中啥繁,下方的截圖就是我手機上從AppStore中下載的應用的安裝路徑。當然青抛,下方是使用iExplore工具進行查看的旗闽,下方內(nèi)容中,文件的拷貝我們都會用到iExplorer蜜另,當然你也可以使用之前提到過的iFunBox适室。
  

從上方的截圖中要找出微信所在的目錄是非常困難的,應用少的話你可以點開一個個的看蚕钦。向上面這種應用比較多的情況的話,一個個文件夾點開是不太現(xiàn)實的鹅很,所以我們得通過另一種方式來定位“微信”App所在的目錄嘶居。
這種快捷定位“微信”所在目錄的方式就是“查看應用進程”的方式,首先你需要打開微信促煮,然后運行下方的命令邮屁,來查看文件目錄/var/mobile/目錄下的所有正在運行的App進行毯焕,具體要用到的命令如下所示:
** ps -e | grep /var/mobile**

上方截圖就是上述命令運行后所輸出的內(nèi)容韩玩,從上述內(nèi)容中我們輕而易舉的就可以找到“WeChat”所在目錄。我們可以通過iExplore打開該目錄鳖擒,更直觀的來看一下微信App所在的目錄绳匀,具體內(nèi)容如下所示. 上面這個進程的絕對路徑我們要記下來芋忿,因為后邊砸殼的時候會使用到該路徑炸客。
  


接下來我們就要使用Cycript工具來尋找WeChat的Document路徑了,如果你的越獄設備上沒有安裝Cycript工具的話戈钢,那么請前往Cydia下載安裝Cycript工具痹仙。下方步驟就是使用Cycript工具來查看附加進程的Document目錄的步驟。

1.使用Cycript注入目標進程中
cycript -p WeChat

上述命令執(zhí)行完畢后殉了,會進入到cycript模式中开仰,如下所示。當然薪铜,在iOS9.2.1上的越獄設備執(zhí)行上述命令會報錯众弓,可能是目前Cycript這個強大的工具還不支持iOS9.2吧。所以我是在iOS7.2上做的該實驗隔箍。

  

2.獲取該進程的Document目錄
[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectoryinDomains:NSUserDomainMask][0]

輸入上述內(nèi)容谓娃,然后點擊回車,就會輸出WeChat進程的Document目錄鞍恢,輸出結果如下所示傻粘。下方的紅色部分就是WeChat的Document目錄的絕對路徑。

  

找到上述目錄后帮掉,使用iExplore進入到該目錄下弦悉,將上面我們生成的dumpdecripted.dylib動態(tài)庫拷貝到該目錄下即可,如下所示:

  

三蟆炊、開始砸殼
上述“砸殼”的準備工作就緒后稽莉,接下來我們就要開始砸殼了。進入到WeChat的Document目錄中涩搓,執(zhí)行下方的命令進行砸殼污秆。
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Applications/3DC16044-E5BB-4038-9E31-CFE3C7134A7B/WeChat.app/WeChat

在上述命令中,DYLD_INSERT_LIBRARIES后邊這個動態(tài)庫就是我們上面生成的動態(tài)庫昧甘,后邊這個路徑就是WeChat執(zhí)行文件的絕對路徑良拼,運行上述命令后,就開始砸殼了充边,下方截圖就是我們砸殼的過程庸推。   

砸殼過程完成后,會在我們的Document目錄下生成一個WeChat.decrypted文件浇冰,如下截圖所示贬媒。該文件就是脫殼后的文件,我們可以將該文件拷貝到我們的Mac上肘习,以備使用际乘。

  

四、導出脫殼App的頭文件
將上面生成的WeChat.decrypted脫殼文件拷貝的我們的Mac上漂佩,接下來就是我們class-dump出廠的時刻了脖含。接下來我們要使用class-dump導出該脫殼文件的所有頭文件罪塔。具體步驟如下所示。

1.前奏
WeChat.decrypted文件后器赞,我執(zhí)行了下方的命令來導出其頭文件垢袱,下方的命令在沒有加殼的app中是好使的,直接就可以導出相應App的頭文件港柜,如下所示:
class-dump -S -s -H WeChat.decrypted -o ./Headers

執(zhí)行上述命令結束后是下方這個結果, 并沒有導出想要的頭文件请契,Google了一下,是ARM的架構不對夏醉,所以就沒導出成功爽锥。

  

2.開始導出頭文件
從上述截圖中我們可看到,Headers文件夾中并沒有生成相應的頭文件畔柔。是我們解密的文件有問題嗎氯夷?于是乎,我使用了Hopper打開了解密后的文件靶擦,是可以正常打開的腮考,于是乎又Google一下,原來是我們在導出頭文件時指定的ARM架構不正確玄捕,于是乎使用class-dump的--arch配置項來指定了armv7的架構踩蔚,這樣的話,頭文件就導出成功了枚粘。
class-dump --arch armv7 -S -s -H WeChat.decrypted -o ./Headers

操作步驟和結果如下圖所示, 導出成功馅闽,你可以慢慢的分析了。

  

五馍迄、Hopper
上面使用了class-dump來操作我們脫殼的文件福也,木有問題。那么接下來來看一下在Hopper上的效果如何攀圈,下方就是使用Hopper打開“脫殼”文件的效果暴凑。當然,你也可以使用IDA Pro來查看赘来,當然此處我們使用的是Hopper现喳。從下方的截圖來看,結果是Perfect的撕捍。
  

至此呢拿穴,我們脫殼的過程就這么愉快的結束了泣洞,你可以去分析你想分析的東西了忧风。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市球凰,隨后出現(xiàn)的幾起案子狮腿,更是在濱河造成了極大的恐慌腿宰,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缘厢,死亡現(xiàn)場離奇詭異吃度,居然都是意外死亡,警方通過查閱死者的電腦和手機贴硫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門椿每,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人英遭,你說我怎么就攤上這事间护。” “怎么了挖诸?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵汁尺,是天一觀的道長。 經(jīng)常有香客問我多律,道長痴突,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任狼荞,我火速辦了婚禮辽装,結果婚禮上,老公的妹妹穿的比我還像新娘粘秆。我一直安慰自己如迟,他們只是感情好,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布攻走。 她就那樣靜靜地躺著殷勘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪昔搂。 梳的紋絲不亂的頭發(fā)上玲销,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音摘符,去河邊找鬼贤斜。 笑死,一個胖子當著我的面吹牛逛裤,可吹牛的內(nèi)容都是我干的瘩绒。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼带族,長吁一口氣:“原來是場噩夢啊……” “哼锁荔!你這毒婦竟也來了?” 一聲冷哼從身側響起蝙砌,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤阳堕,失蹤者是張志新(化名)和其女友劉穎跋理,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恬总,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡前普,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了壹堰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拭卿。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖贱纠,靈堂內(nèi)的尸體忽然破棺而出记劈,到底是詐尸還是另有隱情,我是刑警寧澤并巍,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布目木,位于F島的核電站,受9級特大地震影響懊渡,放射性物質(zhì)發(fā)生泄漏刽射。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一剃执、第九天 我趴在偏房一處隱蔽的房頂上張望誓禁。 院中可真熱鬧,春花似錦肾档、人聲如沸摹恰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俗慈。三九已至,卻和暖如春遣耍,著一層夾襖步出監(jiān)牢的瞬間闺阱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工舵变, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留酣溃,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓纪隙,卻偏偏與公主長得像赊豌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子绵咱,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

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

  • "砸殼"在iOS逆向工程中是經(jīng)常做的一件事情碘饼,,因為從AppStore直接下載安裝的App是加殼的,其實就是經(jīng)過加...
    Jessica124閱讀 2,058評論 1 2
  • 前言: 最近剛剛接觸逆向這一塊派昧,之前一直覺得是很高大上的一個方向,有點可望而不可即的樣子拢切。機緣巧合之下蒂萎,開始了逆向...
    Vampire丶Lv閱讀 1,161評論 1 11
  • 轉發(fā)自 2016-07-07何兆林騰訊Bugly 如果您有耐心看完這篇文章,您將懂得如何著手進行app的分析淮椰、追蹤...
    樹懶啊樹懶閱讀 10,633評論 5 63
  • 砸殼 class-dump 搭建越獄開發(fā)環(huán)境 Theos 配置越獄開發(fā)調(diào)試的 iOS 設備 Theos 環(huán)境 動態(tài)...
    ampire_dan閱讀 5,538評論 0 7
  • Ask: 我來自湖北在廣州讀的大學五慈,畢業(yè)后在一家外資銀行工作。因為工作很忙主穗,不擅社交泻拦,我一直沒有談過戀愛。 28歲...
    美索閱讀 706評論 0 2