1. 程式人生 > >ios逆向工程-靜態分析

ios逆向工程-靜態分析

轉載自:http://my.oschina.net/iq19900204/blog/340297

最近在學習IOS逆向工程,檢視網路上的資料也不是太多,邊學邊總結一下。

首先學習資料:

  1. 《ios應用逆向工程 分析與實戰》

----------------------------------------------------凌亂的分割線------------------------------------------

其次講講要用到的工具(ios安裝工具使用Cydia中搜索安裝,有些需要資料來源可以自行查詢):

  1. 已經越獄的IOS裝置:這是必須的

  2. OpenSSH(資料來源:http://apt.saurik.com):用於遠端登入ssh和檔案傳輸scp

  3. class-dump-z: 用於簡單分析出工程中的類名和函式名

  4. IDA:強大的反編譯工具

  5. Hopper Disassembler:類似IDA 我比較喜歡,能簡單轉換成OC的功能

  6. Reveal:UI層解析工具

  7. iFunBox 、 iTools :兩個都是強大的ios裝置管理工具,越獄後能輕鬆讀取應用檔案等功能

----------------------------------------------------凌亂的分割線------------------------------------------

恩,差不多就這麼多了!上面的工具大部分都是收費的,不過都是有試用版的,接下來我們一個個分析:

  1. ios裝置越獄,這個我就不講了吧,不過我要贊@盤古團隊一個,目前所有ios系統都可以越獄(包括ios8.x)

  2. 在ios裝置上下載OpenSSH (資料來源:http://apt.saurik.com),然後用電腦遠端登入ios:

?
1 ACA80166:~ yuchenghai$ ssh [email protected]

然後輸入密碼,@後面是手機的IP號,越獄後預設密碼好像是123456.

傳輸檔案的命令是

?
1 2 scp gdbinit [email protected]:/var/root scp [email protected]
:/var/root/123.txt ~/

 3. class-dump-z 是一個強大的函式提取工具,非常好用,也是基礎工具

可以發到手機裡呼叫,也可以在電腦上呼叫,要解析的檔案是在應用目錄下x.app(裡面還有用到的所有檔案資源)下面的x(x是你要分析的應用名)以唱吧為例,用ifunbox找到應用進入應用目錄就可以看到ktv.app了開啟包檔案就能找到ktv。

?
1 2 class-dump-z ktv > ktv.txt       //匯出所有內容到檔案 class-dump-z -H ktv -o ktvdir/   //匯出所有內容目錄到資料夾(首先要建立ktvdir資料夾)

*這裡會有一個問題,就是從app store下載的應用解析出來會是亂碼,因為應用被加密了。解決辦法


  1. 去渠道上下應用如同步推、91

  2. 解密工具 如AppCrackr(源http://cydia.xsellize.com)、Crackulous、Clutch

  class-dump 只能解析出類名和函式名,不能看到具體的實現邏輯。但是很直觀

 4.IDA和Hopper Disassembler差不多,能看到每個函式的具體邏輯(但是-都是彙編)IDA很強大,能在後面標記的oc的函式名,但是我更喜歡Hopper Disassembler,因為他能簡單的模擬出oc原始碼,但是也是非常簡單的。兩者按空格鍵都能顯示出分支邏輯來。

    彙編非常難看懂,我們需要的是耐心+耐心。後面可以加上動態工具聯合分析能更有效

 5.Reveal的功能就更強大了,能表明出UI的具體結構來,告訴你每個View的型別是什麼,這通常也是我們常用的分析一個app的切入點。

下載完後開啟reveal在選單目錄中help-show reveal library in finder開啟庫檔案,將兩個檔案發到手機裡

?
1 2 scp -r /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/Reveal.framework [email protected]:/System/Library/Frameworks scp /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib [email protected]:/Library/MobileSubstrate/DynamicLibraries

接下來編輯libReveal.plist檔案

在/Library/MobileSubstrate/DynamicLibraries/下建立檔案libReveal.plist,指定app的Bundle,可以指定多個

?
1 2 3 4 5 {    Filter = {   Bundles = ("com.changba.ktv");    };    }

同學們會問了,app 的bundleID怎麼檢視呢,我們還是用ifunbox工具找到應用目錄,在x.app資料夾中會有info.plist檔案,開啟就能找到。

最後重啟裝置-開啟想分析的應用-電腦開啟reveal介面,就可以點選分析了


總結一下吧,分析一個應用的邏輯是這樣的:

  1. 拿個越獄機-下好工具

  2. 去越獄平臺下個想分析的應用(或者去app store下,用解密工具解密一下)

  3. 匯入reveal分析頁面,得到想要的知道的具體檢視類或者大致範圍

  4. 分析class-dump中,找到想要的類和函式

  5. 在IDA中找到具體函式,檢視邏輯

單純的靜態分析只能知道個大概,想知道框架和具體內容還需要動態分析(下面分析)的幫助。不過想知道一個應用用到了什麼庫,介面是什麼結構,有什麼圖片資源,上面的絕對夠用了。總之逆向工程是比較枯燥無味的東西,資料又少,需要的是。。。。。加油

相關推薦

ios逆向工程-靜態分析

轉載自:http://my.oschina.net/iq19900204/blog/340297 最近在學習IOS逆向工程,檢視網路上的資料也不是太多,邊學邊總結一下。 首先學習資料: 《ios應用逆向工程 分析與實戰》 --------------------

iOS逆向工程之App脫殼

工程 脫殼 一、生成dumpdecrypted.dylib動態庫首先我們要生成“砸殼”用的動態庫dumpdecrypted.dylib,我們“砸殼”時主要用到這個動態庫。該動態庫的源碼在github上是開源的(Github地址),要想得到dumpdecrypted.dylib這個動態庫,只需要從git

iOS逆向工程之Hopper中的ARM指令

工程一、Hopper中的ARM指令ARM處理器就不多說了,ARM處理器因為低功耗等原因,所以大部分移動設備上用的基本上都是ARM架構的處理器。當然作為移動設備的Android手機,iPhone也是用的ARM架構的處理器。如果你想對iOS系統以及你的應用進一步的了解,那麽對ARM指令集的了解是必不可少的,ARM

逆向靜態分析工具——IDA初學者筆記之字符串分析

工具 代碼 註釋 調整 菜單項 哪些 窗口 mes comment 逆向中靜態分析工具——IDA初學者筆記之字符串分析 程序中往往包含很多字符串資源,這些資源存在於PE文件的rdata段,使用IDA反編譯後,可以查找到這些字符串, 逆向破解程序通常需要一個突破點,而這個突破

逆向靜態分析工具——IDA初學者筆記

.... 映射 鏡像 ner 列表 都是 not 判斷 2gb 逆向中靜態分析工具——IDA初學者筆記 //******************************************************************************//IDA

iOS逆向工程概述(轉)

tails 盤古 order detail 功能 分析工具 border 還要 越獄 逆向工程一詞,對很多人來說可能很陌生,在android領域,我們經常會聽到“反編譯某個apk”,那麽逆向工程從某種角度講也包括反編譯這項技術,這樣一對比,可能我們就更容易理解逆向工程的定義

iOS - 逆向工程

逆向工程 ssi command 安裝完成 repo min round relay ipa 公司最近搞得物聯網項目,很註重安全,對於我這種架構師,當然考慮到APP使用上的安全。分享一篇逆向基礎文章. 1.ios逆向工程指的是在軟件層面上進行逆向分析的一個過程。如果想要達到

iOS逆向之動態分析(騰訊視訊廣告移除)非會員

前言: iOS逆向分析之動態分析,我開始思考怎樣把原理講的深入淺出,怎樣把故事講的有趣生動,於是本來寫好的動態分析又操了重來,那麼今天我準備帶著問題來講動態分析,先丟擲我們這次逆向的目標,騰訊視訊廣告移除,以此為例講解動態分析。 首先我們進入視訊播放頁,點選最近的熱片《戰

iOS逆向工程-工具篇

對於初開始學習iOS逆向工程的人來說,實現一個tweak可以算是入門逆向工程了。當然了,可能你現在還不知道tweak是什麼。簡單來說,你可以把一個tweak當作某一個app的一個外掛(類似於瀏覽器廣告遮蔽外掛)。在app執行的時候,tweak會hook住某個函式,然後在hoo

Theos的安裝和使用-iOS逆向工程

Theos的安裝和使用-iOS逆向工程 Theos就是一套越獄開發工具包 1. Theos的安裝 1.1 安裝homebrew https://brew.sh/ 1.2 安裝dpkg sudo brew install dpkg 1.3 安

Hopper Disassembler基礎使用-iOS逆向工程

Hopper Disassembler基礎使用-iOS逆向工程 1.選擇包 2.顯示包內容 3. 4.

iOS逆向工程之Hopper+LLDB除錯第三方App

LLDB是Low Level Debugger的簡稱,在iOS開發的除錯中LLDB是經常使用的,LLDB是Xcode內建的動態除錯工具。使用LLDB可以動態的除錯你的應用程式,如果你不做其他的額外處理,因為debugserver缺少task_for_pid許可權,所以你只

iOS逆向工程整理_0x01

原理 Objective-C 是一門動態語言,我們可以利用OC的Runtime動態的替換App原有的函式,來達到我們(不可告人)的目的。OC 中對某個物件的方法的呼叫並不像 C++ 一樣直接取得方法的實現的偏移值來呼叫,所以 C++ 方法與實現的關係在編譯時就

APK逆向靜態分析

0x00 APK包結構    0x01 APK反編譯-apktool    囉嗦一句,反編譯之前配置好java環境,具體JDK安裝過程,請參照之前的文章。下載最新版本的apktool.jar,並在當前目錄下編輯指令碼apktool.bat,內容如下:@echo off set

靜態分析:IDA逆向代碼段說明 text、idata、rdata、data

align PE size XP perm 都在 ada 全局常量 自己 靜態分析:IDA逆向代碼段說明 text、idata、rdata、data 通常IDA對一個PE文件逆向出來的代碼中, 存在四個最基本的段text、idata、rdata、data, 四個段為PE文件

Android逆向之旅---靜態分析技術來破解Apk

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

逆向工程】從原始碼分析網站反爬蟲措施

       從事網頁爬蟲工作有兩年了,從最開始的新聞,bbs論壇,論文網站,到現在的全國企業信用資訊公示系統,無論是PC網頁,到手機移動APP,還是現在的支付寶微信小程式一直採集別人家網站上的資料,也算得上也是身經百戰。如今,領導安排我注意收集整理歸納一下反

iOS工程內部建立一個靜態庫target

當你在開發專案的時候需要把公用的東西打包出來,其他專案方便使用的時候,打包成靜態庫是你的最優選擇,在工程內部開發的時候新建一個target進行靜態庫的開發可以使你的開發除錯更加方便而不是單獨新建一個工程用於靜態庫的開發; 一:新建一個測試專案: 二:新建一個target工程選擇靜態庫   三

Andorid逆向-3.IDA工具介紹-靜態分析

IDA安裝就不說了,簡單無腦下一步啪啪就好了( ̄▽ ̄) 1.個人理解:不明白地方,多點幾次就明白意思了 2.這個就是點了Go出現的介面 3.拖拽需要反編譯的檔案,我是小學生英文暫時都看不懂。然後直接點OK 4.簡單介紹下 5. 視窗簡單應用 如何檢視檔

iOS逆向分析微信導航欄實現

最近需要實現微信的毛玻璃導航欄效果,嘗試了各種方式後還是有點差別,這在追求完美的設計師眼裡是絕不能忍的,於是只好“看看”原作是怎麼實現的。在逆向分析了微信的實現後,發現微信的實現十分特殊,文末會告訴大家答案:) 環境準備 一臺越獄裝置 OpenSSH 外掛 Cycript 外