iOS IPA滲透,對(duì)MAC進(jìn)行配置,這里記錄一下,希望可以幫助有需要的人。
環(huán)境
Mac Air 64
iphone 5s 版本10.2(可越獄)
配置目錄
0、homebrew
1、java
2、node.js
3、iphone越獄
4、iphone安裝frida
5、passionfruit
6、ida7.0
7、ipa重簽名
8、ipa砸殼
9、class-dump
10、安裝cyrun (12.0以上系統(tǒng))
快捷鍵
切換輸入法(中英文切換) --- control+space [空格]
搜索 ---------- command+space
打開多個(gè)終端 ------ 移動(dòng)到終端內(nèi)command+N
安裝
0、homebrew安裝
Homebrew是“MacOS缺失的軟件包管理器”,用于安裝軟件。打開終端
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
查看是否安裝成功brew -v

1、java安裝
(1)直接安裝 brew install java [沒有成功]
(2)手動(dòng)下載安裝,Mac java8下載,下載jdk,安裝 .dmg
2、node.js安裝
(1)打開終端安裝brew install node
(2)查看是否安裝成功node -v
這里node包含npm。
3、iphone越獄
參考
4、iphone安裝frida
在cydia應(yīng)用添加frida軟件源,如下:


5、passionfruit安裝
(1)依賴java,node,frida(參考)
(2)執(zhí)行安裝passionfruitsudo npm install -g --unsafe-perm passionfruit
(3)執(zhí)行passionfruit
(4)連接iphone手機(jī),打開網(wǎng)頁http://localhost:31337

注意 如果frida(指手機(jī)上的)版本過高(如12.8.0),passinfruit還不能兼容,就會(huì)出現(xiàn)Uncaught RPC Error: invalid size
passionfruit
listening on [http://localhost:31337](http://localhost:31337)
<-- GET /
<-- GET /static/0.build.js
<-- GET /static/logo.svg?abda96cf81a18b28052a52d16b35d4e1
<-- GET /static/MaterialIcons-Regular.woff2?570eb83859dc23dd0eec423a49e147fe
<-- GET /static/build.js
--> GET / 200 13ms 338b
--> GET /static/MaterialIcons-Regular.woff2?570eb83859dc23dd0eec423a49e147fe 200 21ms 43.26kb
--> GET /static/logo.svg?abda96cf81a18b28052a52d16b35d4e1 200 24ms 16.33kb
--> GET /static/0.build.js 200 29ms 55.2kb
--> GET /static/build.js 200 46ms 865.29kb
<-- GET /static/logo.svg?abda96cf81a18b28052a52d16b35d4e1
--> GET /static/logo.svg?abda96cf81a18b28052a52d16b35d4e1 200 4ms 16.33kb
nc localhost 51421
Uncaught RPC Error: invalid size
at Object.checksec (/script1.js:107:26)
at handleRpcMessage (frida/runtime/message-dispatcher.js:43:1)
這時(shí),去下載一個(gè)低版本的frida-server,這里我選擇12.6.11的,解壓出來將其修改為frida-server,替換iphone手機(jī)目錄/var/sbin/frida-server(6s以上在 /usr/sbin/frida-server)。再次訪問:如下

6、ida7.0安裝
下載ida7.0
7、ipa重簽名
參考
8、ipa砸殼
參考
9、class-dump
class-dump是一個(gè)mac端的命令行工具,用來導(dǎo)出Mach-O頭文件的。class-dump是可以把Objective-C運(yùn)行時(shí)的聲明的信息導(dǎo)出來的工具。實(shí)質(zhì)就是可以導(dǎo)出.h文件。用class-dump可以把未經(jīng)加密的app的頭文件導(dǎo)出來。
下載地址:http://stevenygard.com/projects/class-dump/。打開鏈接后,選擇class-dump-3.5.dmg,進(jìn)行下載。下載完成之后,將dmg文件中的class-dump復(fù)制到/usr/bin目錄,并在終端執(zhí)行如下執(zhí)行進(jìn)行賦權(quán)

這里提供一個(gè)windows版的 Mac_Linux_Win_class-dump-z.zip (這個(gè)只支持32位的,64位的dump不出來,需要mac版)。
10、安裝cyrun
通過Cydia安裝New Curses,readline,adv-cmds
通過Cydia安裝wget,主要為了在iPhone上可以下載deb文件
以root用戶登錄到iPhone上,安裝wget
apt install wget
分別下載
wget http://apt.saurik.com/debs/cycript_0.9.594_iphoneos-arm.deb
wget http://www.tateu.net/repo/files/net.tateu.cycriptlistenertweak_1.0.0_iphoneos-arm.deb
wget http://www.tateu.net/repo/files/net.tateu.cyrun_1.0.5_iphoneos-arm.deb
以root用戶在iPhone上安裝下載的deb
dpkg -i cycript_0.9.594_iphoneos-arm.deb
dpkg -i net.tateu.cycriptlistenertweak_1.0.0_iphoneos-arm.deb net.tateu.cyrun_1.0.5_iphoneos-arm.deb
方式一、
動(dòng)態(tài)注入注入
cyrun -n Bundle -e -d -f
cyrun -b appName -e -d -f(中文)
代碼注入實(shí)例
var alertView = [[[UIAlertView alloc] initWithTitle:@"inject" message:@"success" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil] show]
如果出現(xiàn)下面情況,可以考慮方式二
Waiting for Cycript to become active...
ERROR - could not connect to Cycript
方式二
ps aux | grep xxx
cycript -p xxx
var alertView = [[[UIAlertView alloc] initWithTitle:@"inject" message:@"success" delegate:nil cancelButtonTitle:@"ok" otherButton itles:nil] show]
例如
