<h3>1.前言</h3>
上傳到appStore的ipa蘋果會自動加一層防護殼,如果想要反編譯從appStore下載的ipa包,必須要先要進行一次脫殼操作。直接使用Xcode打出的企業(yè)包可以直接進行反編譯。
<h3>2.工具</h3>
1.有一部已經(jīng)越獄的手機
2.dumpdecrypted
<h3>3.步驟總結(jié)</h3>
0.連接你已經(jīng)越獄的手機
1.設(shè)備中打開需要砸殼的APP
2.SSH鏈接到手機,找到ipa包的位置并記錄下來
3.Cycript附加到進行,找到App的Documents文件夾位置并記錄下來
4.拷貝dumpdecrypted.dylib 到App的Documents 的目錄。
5.執(zhí)行砸殼后,并拷貝出砸殼后的文件,然后完成。
<h5>0.連接你已經(jīng)越獄的手機</h5>
一、在WiFi的情況下
yalu2 beta 8 此次越獄工具默認安裝了 SSH,所以越獄后就要去更改 root 密碼,更改方法打開 Cydia 首頁就有,切記不需要再安裝 openssh 插件了。
越獄開發(fā)者作者為了增強越獄后的 ssh 安全防護性,采用了 Dropbear 取代 Openssh,這會導(dǎo)致我們無法直接通過 ssh 連上 iOS10 設(shè)備,需要手動修改調(diào)整 dropbear.plist。
通過 filza 或者 ifile,或者在電腦上用 iTools 等工具,找到 yalu102 的程序目錄,路徑在 /private/var/containers/Bundle/Application/
下,找到對應(yīng)的沙盒目錄,然后到 yalu102.app 目錄中修改 dropbear.plist。
其中 ProgramArguments 項展開,把 Item 4 中原來的內(nèi)容 127.0.0.1:22直接改為22,保存然后重啟設(shè)備即可通過 ssh 連上 iPhone。
重啟設(shè)備后終端連接手機,保證 iPhone 和 Mac 在同個網(wǎng)絡(luò)下,直接 ssh 連接 iPhone 所在的 IP,默認密碼是alpine
,第一次連接會有個警告,敲 yes 即可。
Bingos-MacBook-Pro:~ bingo$ ssh root@192.168.1.22
ssh: connect to host 192.168.1.22 port 22: Connection refused
Bingos-MacBook-Pro:~ bingo$ ssh root@192.168.1.22
The authenticity of host '192.168.1.22 (192.168.1.22)' can't be established.
ECDSA key fingerprint is SHA256:pPdllw8r6fWz1InP8OpZbmyqieH1OarSdkjcQ98jvXI.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.22' (ECDSA) to the list of known hosts.
root@192.168.1.22's password:
Dankal-Device-5s:~ root#
這樣就連上 iPhone 設(shè)備了,接下來就可以終端命令行玩轉(zhuǎn) Unix 系統(tǒng)了。
二、通過USB
首先,同樣手機要越獄,越獄胡要安裝openssh工具。
第二,通過USB訪問,有沒有WiFi無所謂了,但是你得在pc安裝usbmuxd服務(wù),沒有的大家可以去http://cgit.sukimashita.com/usbmuxd.git/ 下載1.0.8版本。解壓進入 Python-client目錄后,執(zhí)行命令:python tcprelay.py –t 22:2222
,這樣就開通了一個從本機2222端口通往目標主機22號端口的通道,執(zhí)行完后會出現(xiàn)Forwarding local port 2222 to remote port 22
第三, 另起終端,執(zhí)行命令ssh root@localhost –p 2222
,然后提示輸入密碼,這是手機的密碼,默認為alpine。
最后,此時,同樣可以達到ssh訪問手機的效果,而且比WiFi更快更穩(wěn)定
<h5>1.設(shè)備中打開需要砸殼的APP</h5>
通過ssh root@192.168.8.132
登錄到越獄手機之后,在電腦終端執(zhí)行 ps -e
查看所有正在運行的進程
通過上面的截圖,可以看見我們要脫殼的app的進程號是885
然后執(zhí)行
cycript -p 885(附加進程)
當你執(zhí)行這個指令,一定要保證你的app是處于打開狀態(tài)的。不能是處于后臺。要想使用cycript需要在越獄手機上使用Cydia搜索cycript安裝才可以
然后通過執(zhí)行[[NSFileManager defaultManager]URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
查看Doumnets的位置。
<h5>2.拷貝dumpdecrypted.dylib 到App的Documents的目錄:</h5>
重新打開一個終端執(zhí)行
scp ~/dumpdecrypted.dylib root@192.168.8.179:/var/mobile/Containers/Data/Application/221A0662-311C-4659-9BE5-5F952BDF5D30/Documents/
當我們直接執(zhí)行這個指令的時候會報錯:
這個問題在Cydia上安裝OpenSSH就可以了,注意安裝了不要重啟,重啟之后就無法通過WIFI進行SSH連接了。
<h5>3.執(zhí)行砸殼</h5>
進入到 Documents 目錄下,然后進行砸殼:
需要用到的命令:
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/5F606BDF-DAFF-4F02-B34E-BF1FDB5FF432/yidian-x.app/yidian-x
執(zhí)行上面的指令時會報一下錯誤
解決方法:
## 列出可簽名證書
security find-identity -v -p codesigning
## 為dumpecrypted.dylib簽名
codesign --force --verify --verbose --sign "iPhone Developer: xxx xxxx (xxxxxxxxxx)" dumpdecrypted.dylib
用簽過名的dumpdecrypted.dylib,再次砸殼即可。
查看當前文件夾就生成了一個.decrypted的文件,這個問價就是砸殼之后生成的文件
另外開啟一個終端,使用
scp root@192.168.8.179:/var/mobile/Containers/Data/Application/221A0662-311C-4659-9BE5-5F952BDF5D30/Documents/yidian-x.decrypted ~/Desktop/
將生成的文件拷貝到電腦桌面
可以安裝一個Hopper(https://www.hopperapp.com/download.html) ,然后將砸殼后的文件,去掉后綴名,拖進Hopper里面就可以看見反編譯的偽代碼了