最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS逆向工程使用dumpdecrypted工具給App脫殼

 更新時間:2016年09月23日 10:45:22   作者:青玉伏案  
這篇文章主要介紹了iOS逆向工程使用dumpdecrypted工具給App脫殼的相關(guān)資料,本文圖文并茂給大家介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下

本篇以微信為例,給微信脫殼。"砸殼"在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連接到你的越獄設(shè)備,然后在越獄設(shè)備中打開你要砸殼的App, 此處我們以微信為例。從AippStore中下載安裝的應(yīng)用都會位于/var/mobile/Applications中,下方的截圖就是我手機上從AppStore中下載的應(yīng)用的安裝路徑。當然,下方是使用iExplore工具進行查看的,下方內(nèi)容中,文件的拷貝我們都會用到iExplorer,當然你也可以使用之前提到過的iFunBox。

從上方的截圖中要找出微信所在的目錄是非常困難的,應(yīng)用少的話你可以點開一個個的看。向上面這種應(yīng)用比較多的情況的話,一個個文件夾點開是不太現(xiàn)實的,所以我們得通過另一種方式來定位“微信”App所在的目錄。

這種快捷定位“微信”所在目錄的方式就是“查看應(yīng)用進程”的方式,首先你需要打開微信,然后運行下方的命令,來查看文件目錄/var/mobile/目錄下的所有正在運行的App進行,具體要用到的命令如下所示:

ps -e | grep /var/mobile

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

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

1.使用Cycript注入目標進程中

cycript -p WeChat

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

2.獲取該進程的Document目錄

[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomans:NSUserDomainMask][0]

輸入上述內(nèi)容,然后點擊回車,就會輸出WeChat進程的Document目錄,輸出結(jié)果如下所示。下方的紅色部分就是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上,以備使用。

四、導(dǎo)出脫殼App的頭文件

將上面生成的WeChat.decrypted脫殼文件拷貝的我們的Mac上,接下來就是我們class-dump出廠的時刻了。接下來我們要使用class-dump導(dǎo)出該脫殼文件的所有頭文件。具體步驟如下所示。

1.前奏

WeChat.decrypted文件后,我執(zhí)行了下方的命令來導(dǎo)出其頭文件,下方的命令在沒有加殼的app中是好使的,直接就可以導(dǎo)出相應(yīng)App的頭文件,如下所示:

class-dump -S -s -H WeChat.decrypted -o ./Headers

執(zhí)行上述命令結(jié)束后是下方這個結(jié)果, 并沒有導(dǎo)出想要的頭文件,Google了一下,是ARM的架構(gòu)不對,所以就沒導(dǎo)出成功。

2.開始導(dǎo)出頭文件

從上述截圖中我們可看到,Headers文件夾中并沒有生成相應(yīng)的頭文件。是我們解密的文件有問題嗎?于是乎,我使用了Hopper打開了解密后的文件,是可以正常打開的,于是乎又Google一下,原來是我們在導(dǎo)出頭文件時指定的ARM架構(gòu)不正確,于是乎使用class-dump的--arch配置項來指定了armv7的架構(gòu),這樣的話,頭文件就導(dǎo)出成功了。

class-dump --arch armv7 -S -s -H WeChat.decrypted -o ./Headers

操作步驟和結(jié)果如下圖所示, 導(dǎo)出成功,你可以慢慢的分析了。

五、Hopper

上面使用了class-dump來操作我們脫殼的文件,木有問題。那么接下來來看一下在Hopper上的效果如何,下方就是使用Hopper打開“脫殼”文件的效果。當然,你也可以使用IDA Pro來查看,當然此處我們使用的是Hopper。從下方的截圖來看,結(jié)果是Perfect的。

以上所述是小編給大家介紹的iOS逆向工程使用dumpdecrypted工具給App脫殼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Objective-C中編程中一些推薦的書寫規(guī)范小結(jié)

    Objective-C中編程中一些推薦的書寫規(guī)范小結(jié)

    這篇文章主要介紹了Objective-C的一些編程書寫規(guī)范小結(jié),包括類與方法等面向?qū)ο缶幊滔嚓P(guān)的代碼編寫風(fēng)格,需要的朋友可以參考下
    2016-04-04
  • 干貨分享!iOS10 SiriKit QQ適配詳解

    干貨分享!iOS10 SiriKit QQ適配詳解

    干貨分享!主要為大家詳細介紹了!iOS10 SiriKit QQ適配,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • iOS中的實時遠程配置全紀錄

    iOS中的實時遠程配置全紀錄

    這篇文章主要給大家介紹了關(guān)于iOS中實時遠程配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • iOS開發(fā)UICollectionView實現(xiàn)拖拽效果

    iOS開發(fā)UICollectionView實現(xiàn)拖拽效果

    這篇文章主要為大家詳細介紹了iOS開發(fā)UICollectionView實現(xiàn)拖拽效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • IOS 基礎(chǔ)之nil,NULL,NSNULL區(qū)別詳解

    IOS 基礎(chǔ)之nil,NULL,NSNULL區(qū)別詳解

    這篇文章主要介紹了IOS 基礎(chǔ)之nil,NULL,NSNULL區(qū)別詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • iOS如何利用一句話完成轉(zhuǎn)場動畫

    iOS如何利用一句話完成轉(zhuǎn)場動畫

    這篇文章主要給大家介紹了關(guān)于iOS如何利用一句話完成轉(zhuǎn)場動畫的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • 詳解iOS多線程GCD問題

    詳解iOS多線程GCD問題

    本篇文章主要介紹了iOS多線程GCD問題,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • iOS中的通知機制

    iOS中的通知機制

    網(wǎng)上經(jīng)常說iOS的通知機制是使用了觀察者模式,里面有兩個角色,其一是poster(發(fā)送者),另一個是observer(接受信息的訂閱者)。接下來通過本文給大家介紹iOS中的通知機制,感興趣的朋友一起學(xué)習(xí)吧
    2016-04-04
  • iOS定時器的選擇CADisplayLink NSTimer和GCD使用

    iOS定時器的選擇CADisplayLink NSTimer和GCD使用

    這篇文章主要為大家介紹了iOS定時器的選擇CADisplayLink NSTimer和GCD使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • iOS開發(fā)中使用CoreLocation框架處理地理編碼的方法

    iOS開發(fā)中使用CoreLocation框架處理地理編碼的方法

    這篇文章主要介紹了iOS開發(fā)中使用CoreLocation框架處理地理編碼的方法,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-12-12

最新評論

平南县| 长岭县| 岳阳市| 汾阳市| 广水市| 湘潭县| 静安区| 启东市| 望谟县| 怀宁县| 大洼县| 台安县| 文化| 鹰潭市| 都安| 留坝县| 荣昌县| 皋兰县| 闽侯县| 体育| 大洼县| 辽宁省| 那坡县| 达州市| 凌源市| 望都县| 瑞金市| 彭泽县| 岚皋县| 镇安县| 定边县| 武隆县| 安庆市| 简阳市| 米泉市| 胶南市| 彩票| 祁连县| 凤庆县| 叶城县| 浦北县|