上一篇文章地址: iOS逆向工具之class-dump(MacOS)介紹python
今天是2019年12月31號,2019年最後一天了,祝你們2020跨年快樂. 明天就是2020年1月1日了,一樣祝你們元旦快樂!ios
本篇文章主要介紹砸殼工具的使用.git
若是你有更好的想法,請留言或者聯繫我.github
咱們經過打包本身的應用,這個應用未上架AppStore,至關於從未加密的問題,直接使用class-dump就能夠進行dump
當咱們從AppStore下載以後,咱們須要把這個殼子去掉,也就是咱們本篇提到的砸殼,砸了殼子才能獲取到裏面的果實.我以前寫的文章: 彙編逆向工具集(二) 介紹了dumpdecrypted的使用,本篇文章一樣會介紹,你也能夠看下彙編逆向工具集(二)文章中提到的dumpdecrypted.vim
dumpdecrypted的產生 因爲AppStore下載的App是被蘋果加密過的,可執行文件被套上一層保護殼 class-dump沒法做用於加密過的App 想要獲取頭文件,須要先解密App的可執行文件,也叫砸殼 dumpdecrypted就是由越獄社區的知名人士 Stefan Esser 出品的一款砸殼工具,被越獄社區普遍運用在iOS逆向工程研究中.安全
dumpdecrypted下載 github地址: dumpdecryptedbash
你能夠經過git clone ,也能夠直接下載,下載過程再也不詳細介紹.app
我已經下載好了,咱們看下文件內容 ssh
咱們對它進行編譯,終端執行make命令函數
咱們看到生成了dumpdeycrypted.dylib
注意
估計你看到這些,就會很頭疼了,到底哪一個是呢?
咱們藉助強大的Cycript,讓App告訴咱們它在哪裏,直接找到它的的根目錄
鎖定該目錄 065B70ED-FCD1-4874-B4A3-86F1B765945F
scp /Users/popo/Desktop/dump/dumpdecrypted/dumpdecrypted.dyli root@192.168.3.15:var/mobile/Containers/Data/Application/065B70ED-FCD1-4874-B4A3-86F1B765945F/Documents/dumpdecrypted.dylib
複製代碼
第二種:
以上兩種方式,只須要拷貝成功就行,選擇那種,根據我的喜愛.
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/9AF4167F-D4AA-4DBB-A67D-A956CCDBDEF9/WeChat.app/WeChat mach-o decryption dumper
複製代碼
砸殼失敗了,分析一下緣由: required code signature missing for 'dumpdecrypted.dylib
因爲沒有對dumpdecrypted.dylib簽名,致使咱們沒有砸殼成功.
codesign --force --verify --verbose --sign "iPhone Developer: `(開發這信息)`" dumpdecrypted.dylib
複製代碼
而後在上傳到手機
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/9AF4167F-D4AA-4DBB-A67D-A956CCDBDEF9/WeChat.app/WeChat mach-o decryption dumper
複製代碼
在當前目錄下會生成WeChat.decrypted文件
砸殼完成,而後你就能夠拿着砸殼文件就行class-dump,靜態分析彙編代碼了.
問題
:dumpdecrypted爲何拷貝到Documents目錄下操做?
AppStore對沙盒之外的絕大數目錄沒有寫權限. Documents目錄下使用dumpdecrypted.dylib時,保證它能在當前目錄下寫一個decrypted文件.
2.Clutch
除了dumpdecrypted,咱們還能夠經過Clutch來解密.
Clutch砸殼的原理? Clutch是生成一個新的進程,而後暫停進程並dump內存.
咱們下載Clutch並編譯
1
經過iFunBox拷貝目錄/usr/bin目錄下
2
經過SCP拷貝
scp Clutch/clutch root@設備ip:/usr/bin/
複製代碼
Clutch [OPTIONS]
-b --binary-dump Only dump binary files from specified bundleID
-d --dump Dump specified bundleID into .ipa file
-i --print-installed Print installed application
--clean Clean /var/tmp/clutch directory
--version Display version and exit
-? --help Display this help and exit
複製代碼
通過對參數的翻譯:
1.clutch -b 砸殼後的文件是二進制文件
2.clutch -d 砸殼後的文件是ipa文件
3.clutch -i 查看安裝的應用
4.clutch --clean /var/tmp/clutch 目錄清理
5.clutch --version 顯示版本並退出
6.clutch -? --help 顯示幫助並退出
複製代碼
1.上圖:咱們能夠看到經過執行 sh sshLogin.sh,咱們不須要輸入密碼直接能夠鏈接到越獄機,同事執行clutch -i 命令
2.從終端顯示,執行的clutch -i 並無執行成功
3.權限不夠,加權來湊.咱們須要對/usr/bin目錄下的clutch進行加權
4.加權,你能夠chmod 777 /user/bin/clutch
5.一樣加權,你也能夠經過chmod +x /user/bin/clutch
6. (1)中提交的sh 執行腳本,我會在文章
iOS逆向工具之Cydia(iOS)介紹中介紹如何使用
1.咱們能夠看到應用的再越獄中運行的序列號爲1
2.咱們還能夠看到應用的bundle id
1.經過執行命令 clutch -d app序列號
2.經過執行命令 clutch -d app包名
# Zipping WeChat.app
# Swapping architectures..
# DONE: /private/var/mobile/Documents/Dumped/hk.itools.appe-iOS7.0-(Clutch-2.0.4).ipa
複製代碼
這就是Clutch砸殼,很容易使用
注意
雖然咱們介紹了兩款砸殼工具,並不表明,你想砸殼的應用,使用上面兩種方式都很順利.我曾經嘗試砸殼某應用,使用兩種方式,我並無砸殼成功.
分析
1.有可能這款應用作了防禦 2.咱們的砸殼應用已經不使用某應用了,砸殼方式須要改變
咱們接下來繼續介紹第三方砸殼方式
3.frida-ios-dump 一條命令完成iOS應用砸殼
Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers.
面向開發人員、逆向工程師和安全研究人員的動態工具工具包。
Frida地址
: Frida
Frida的使用場景 1.
hook特定函數並更改返回值 2.
分析特定協議,同時其動態嗅探,解密 3.
應用調試 4.
在iOS應用上dump類和方法信息
iOS在Cydia安裝Frida,咱們該怎樣安裝呢?
注意
若是你第一次打開Cydia,搜索Frida是搜索不到的,咱們須要在軟件源中添加,紅線畫的是frida軟件源地址,你能夠添加一下.
咱們搜索frida,而後安裝便可.
打開咱們的終端,輸入 sudo pip install frida
咱們經過終端已完成安裝
注意
若是出現下面的錯誤
Uninstalling a distutils installed project (six) has been deprecated and will be
removed in a future version. This is due to the fact that uninstalling a distutils
project will only partially uninstall the project.
複製代碼
咱們如何解決這個問題呢? 緣由:Apple預安裝的這個six庫出於安全緣由被設置爲sudo也不能夠執行操做,因此須要依賴於高版本的庫就須要更新six.
終端執行命令
sudo pip install frida –upgrade –ignore-installed six
複製代碼
問題解決後,你能夠在嘗試安裝
咱們配置frida-ios-dump,並配置frida firda-ios-dump下載地址
我已經下載好了,咱們打開文件看看
咱們能夠看到js,python,sh腳本等文件
sudo pip install -r /opt/frida-ios-dump/requirements.txt --upgrade
命令配置環境下載了不少文件,須要等待一會,就會配置好
1.
你能夠直接打開文件 2.
你也能夠經過命令打開文件vim /opt/dump/frida-ios-dump/dump.py
,進行編輯後保存 3.
若是沒有修改密碼,這裏了不須要進行修改;若是修改密碼,請修改你的密碼 4.
到這裏frida環境配置完成
端口轉發
ssh鏈接越獄機
沒有殼的應用,cyrptid 爲0
4.總結 咱們本篇文章主要講解了砸殼三劍客.
文章介紹到這裏,想必你應該會使用三款軟件了. 下篇文章繼續介紹iOS逆向工具. 請持續關注,留言給我或者加羣聯繫我.