一、frida配置與使用
原理:通過(guò)注入js實(shí)現(xiàn)內(nèi)存dump,再由Python自動(dòng)拷貝到電腦生成ipa包。
創(chuàng)建dump文件夾,移動(dòng)到opt/dump目錄下,修改dump.py中的user、password、host、port如下:
User = 'root'
Password = 'alpine'
Host = 'localhost'
Port = 2222
二、越獄手機(jī)配置
1、打開(kāi)cydia添加源:源地址(http://build.frida.re) 并在搜索中下載安裝frida。
2、安裝完成后在Mac端執(zhí)行frida-ps -U查看是否可以工作。
三、Mac配置
1、安裝Python:
brew install python
2、安裝wget
brew install wget
3、安裝pip:
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
4、安裝frida
sudo pip install frida –upgrade –ignore-installed six
5、安裝腳本依賴環(huán)境
sudo pip install -r requirements.txt --upgrade
6、安裝usbmuxd與手機(jī)通信
brew install usbmuxd
7、設(shè)置別名,設(shè)置后可以在任意路徑下使用別名執(zhí)行
vim ~/.bash_profile
在尾部添加如下:
alias dump.py="/opt/dump/frida-ios-dump-master/dump.py"
執(zhí)行代碼使生效
source ~/.bash_profile
8、通過(guò)USB使用ssh連接設(shè)備,將22映射到電腦上的2222端口
iproxy 2222 22
9、另開(kāi)終端加入連接 密碼為設(shè)備的登錄密碼alpine,需要保持連接
ssh -p 2222 root@127.0.0.1
或 ssh root@127.0.0.1 -p 2222
10、再開(kāi)終端開(kāi)始砸殼微信,命令如下:
dump.py 微信
腳本會(huì)將破殼后的ipa包獲取到當(dāng)前路徑,在哪個(gè)路徑執(zhí)行將會(huì)獲取到哪個(gè)路徑。
端口映射:
連接設(shè)備:
開(kāi)始砸殼:
其他命令:
frida-ps -U -a //獲取手機(jī)所有啟動(dòng)的應(yīng)用
dump.py -l //獲取手機(jī)所有安裝的應(yīng)用
dump.py xxx //對(duì)xxx應(yīng)用砸殼
四、開(kāi)發(fā)中遇到的問(wèn)題
1、報(bào)錯(cuò)信息
Caught exception: <class 'paramiko.ssh_exception.SSHException'>: Error reading SSH protocol banner[Errno 54] Connection reset by peer
打開(kāi)微信或重新插入U(xiǎn)SB接口,在執(zhí)行以上命令即可。
2、報(bào)錯(cuò)信息
ERROR: frida-tools 7.2.0 has requirement prompt-toolkit<4.0.0,>=3.0.3, but you'll have prompt-toolkit 2.0.10 which is incompatible
解決:
cd /opt/dump/frida-ios-dump
sudo pip uninstall prompt-toolkit
sudo pip install prompt-toolkit==1.0.6, //重新安裝其他版本
再執(zhí)行
sudo pip install -r requirements.txt --ignore-installed six
frida-ps -U
修改完成。
3、dump.py 微信 執(zhí)行報(bào)錯(cuò)
need gadget to attach; its default location is: /Users/hibo/.cache/frida/gadget-ios.dylib
解決:
在越獄手機(jī)Cydia應(yīng)用中選擇相應(yīng)的Frida安裝包,如:iPhone6s(11.4.1)選擇Frida for pre-A12 devices
4、iproxy 2222 22 執(zhí)行報(bào)錯(cuò)
dyld: Library not loaded: /usr/local/opt/libplist/lib/libplist.3.dylib
Referenced from: /usr/local/bin/iproxy
Reason: image not found
注意更新插:
執(zhí)行:brew install usbmuxd
提示:libusbmuxd 2.0.1 is already installed To upgrade to 2.0.2, runbrew upgrade libusbmuxd`
執(zhí)行:brew upgrade libusbmuxd即可解決
5、缺少庫(kù)
如:ModuleNotFoundError: No module named 'paramiko'、ModuleNotFoundError: No module named 'scp'
解決:
重新安裝:pip install paramiko、pip install scp,缺少什么安裝即可
6、TypeError: can't concat str to bytes
不能將字節(jié)類型值賦值給str類型的變量,需要將字節(jié)逆編碼后再賦值。
解決: /opt/dump/frida-ios-dump-master/dump.py文件中將if IS_PY2修改為if IS_PY2 or isinstance(baseName, bytes),判斷baseName是否為字節(jié)類型(進(jìn)行逆編碼)
def progress(filename, size, sent):
baseName = os.path.basename(filename)
# 修改處
# if IS_PY2:
if IS_PY2 or isinstance(baseName, bytes):
t.desc = baseName.decode("utf-8")
else:
t.desc = baseName
t.total = size
t.update(sent - last_sent[0])
last_sent[0] = 0 if size == sent else sent
7、unable to attach to the specified process
手機(jī)iPhone6s,14.4。dump報(bào)錯(cuò)如下:
desktop dump.py 微信
Start the target app 微信
unable to attach to the specified process
解決:
打開(kāi)Cydia應(yīng)用,搜索Frida選擇Frida for 32-bit devices安裝后,重新dump即可。
8、dump.py xxx砸殼無(wú)反應(yīng)
解決過(guò)程:首先查看手機(jī)所有進(jìn)程frida-ps -U或所有應(yīng)用frida-ps -Ua,發(fā)現(xiàn)查詢失敗報(bào)錯(cuò)如下:
? ? HB yahibo frida-ps -U -a
Traceback (most recent call last):
File "/usr/local/bin/frida-ps", line 5, in <module>
from frida_tools.ps import main
ModuleNotFoundError: No module named 'frida_tools'
缺少frida_tools模塊,使用pip安裝:
sudo pip install frida_tools
安裝成功后問(wèn)題便解決,使用dump.py xxx進(jìn)行砸殼即可。
其他:
系統(tǒng)應(yīng)用 /var/mobile/Library .app: /System/Library/CoreServices