如何去反編譯一個(gè)ipa包

<h3>1.前言</h3>
上傳到appStore的ipa蘋果會(huì)自動(dòng)加一層防護(hù)殼翼悴,如果想要反編譯從appStore下載的ipa包缚够,必須要先要進(jìn)行一次脫殼操作。直接使用Xcode打出的企業(yè)包可以直接進(jìn)行反編譯抄瓦。
<h3>2.工具</h3>
1.有一部已經(jīng)越獄的手機(jī)
2.dumpdecrypted
<h3>3.步驟總結(jié)</h3>
0.連接你已經(jīng)越獄的手機(jī)
1.設(shè)備中打開需要砸殼的APP
2.SSH鏈接到手機(jī)潮瓶,找到ipa包的位置并記錄下來
3.Cycript附加到進(jìn)行,找到App的Documents文件夾位置并記錄下來
4.拷貝dumpdecrypted.dylib 到App的Documents 的目錄钙姊。
5.執(zhí)行砸殼后,并拷貝出砸殼后的文件埂伦,然后完成煞额。

<h5>0.連接你已經(jīng)越獄的手機(jī)</h5>
一、在WiFi的情況下
yalu2 beta 8 此次越獄工具默認(rèn)安裝了 SSH沾谜,所以越獄后就要去更改 root 密碼膊毁,更改方法打開 Cydia 首頁就有,切記不需要再安裝 openssh 插件了基跑。
越獄開發(fā)者作者為了增強(qiáng)越獄后的 ssh 安全防護(hù)性婚温,采用了 Dropbear 取代 Openssh,這會(huì)導(dǎo)致我們無法直接通過 ssh 連上 iOS10 設(shè)備媳否,需要手動(dòng)修改調(diào)整 dropbear.plist栅螟。
通過 filza 或者 ifile,或者在電腦上用 iTools 等工具篱竭,找到 yalu102 的程序目錄力图,路徑在 /private/var/containers/Bundle/Application/
下,找到對(duì)應(yīng)的沙盒目錄掺逼,然后到 yalu102.app 目錄中修改 dropbear.plist吃媒。
其中 ProgramArguments 項(xiàng)展開,把 Item 4 中原來的內(nèi)容 127.0.0.1:22直接改為22吕喘,保存然后重啟設(shè)備即可通過 ssh 連上 iPhone赘那。
重啟設(shè)備后終端連接手機(jī),保證 iPhone 和 Mac 在同個(gè)網(wǎng)絡(luò)下氯质,直接 ssh 連接 iPhone 所在的 IP募舟,默認(rèn)密碼是alpine
,第一次連接會(huì)有個(gè)警告病梢,敲 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
首先吩蔑,同樣手機(jī)要越獄,越獄胡要安裝openssh工具填抬。
第二烛芬,通過USB訪問,有沒有WiFi無所謂了飒责,但是你得在pc安裝usbmuxd服務(wù)赘娄,沒有的大家可以去http://cgit.sukimashita.com/usbmuxd.git/ 下載1.0.8版本。解壓進(jìn)入 Python-client目錄后宏蛉,執(zhí)行命令:python tcprelay.py –t 22:2222,這樣就開通了一個(gè)從本機(jī)2222端口通往目標(biāo)主機(jī)22號(hào)端口的通道遣臼,執(zhí)行完后會(huì)出現(xiàn)Forwarding local port 2222 to remote port 22
第三, 另起終端拾并,執(zhí)行命令ssh root@localhost –p 2222,然后提示輸入密碼揍堰,這是手機(jī)的密碼,默認(rèn)為alpine嗅义。
最后屏歹,此時(shí),同樣可以達(dá)到ssh訪問手機(jī)的效果之碗,而且比WiFi更快更穩(wěn)定

<h5>1.設(shè)備中打開需要砸殼的APP</h5>

通過ssh root@192.168.8.132登錄到越獄手機(jī)之后蝙眶,在電腦終端執(zhí)行 ps -e查看所有正在運(yùn)行的進(jìn)程

Snip20170720_1.png

通過上面的截圖,可以看見我們要脫殼的app的進(jìn)程號(hào)是885
然后執(zhí)行 cycript -p 885(附加進(jìn)程) 當(dāng)你執(zhí)行這個(gè)指令褪那,一定要保證你的app是處于打開狀態(tài)的幽纷。不能是處于后臺(tái)。
Snip20170720_3.png

要想使用cycript需要在越獄手機(jī)上使用Cydia搜索cycript安裝才可以

然后通過執(zhí)行[[NSFileManager defaultManager]URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]查看Doumnets的位置武通。

Snip20170720_3.png

<h5>2.拷貝dumpdecrypted.dylib 到App的Documents的目錄:</h5>
重新打開一個(gè)終端執(zhí)行
scp ~/dumpdecrypted.dylib root@192.168.8.179:/var/mobile/Containers/Data/Application/221A0662-311C-4659-9BE5-5F952BDF5D30/Documents/
當(dāng)我們直接執(zhí)行這個(gè)指令的時(shí)候會(huì)報(bào)錯(cuò):
Snip20170720_4.png

這個(gè)問題在Cydia上安裝OpenSSH就可以了霹崎,注意安裝了不要重啟,重啟之后就無法通過WIFI進(jìn)行SSH連接了冶忱。
Snip20170720_5.png

<h5>3.執(zhí)行砸殼</h5>
進(jìn)入到 Documents 目錄下尾菇,然后進(jìn)行砸殼:
需要用到的命令:

DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/5F606BDF-DAFF-4F02-B34E-BF1FDB5FF432/yidian-x.app/yidian-x 

執(zhí)行上面的指令時(shí)會(huì)報(bào)一下錯(cuò)誤


Snip20170720_6.png

解決方法:

## 列出可簽名證書
security find-identity -v -p codesigning
## 為dumpecrypted.dylib簽名
codesign --force --verify --verbose --sign "iPhone Developer: xxx xxxx (xxxxxxxxxx)" dumpdecrypted.dylib

用簽過名的dumpdecrypted.dylib,再次砸殼即可。

Snip20170720_10.png

查看當(dāng)前文件夾就生成了一個(gè).decrypted的文件,這個(gè)問價(jià)就是砸殼之后生成的文件
另外開啟一個(gè)終端囚枪,使用scp root@192.168.8.179:/var/mobile/Containers/Data/Application/221A0662-311C-4659-9BE5-5F952BDF5D30/Documents/yidian-x.decrypted ~/Desktop/將生成的文件拷貝到電腦桌面

可以安裝一個(gè)Hopper(https://www.hopperapp.com/download.html) ,然后將砸殼后的文件派诬,去掉后綴名,拖進(jìn)Hopper里面就可以看見反編譯的偽代碼了

參考文檔:
iOS逆向之IPA脫殼
使用ssh 訪問越獄iPhone的兩種方式

iOS10.2 SSH連接越獄設(shè)備

iOS10.2下的ipa砸殼

iOS開發(fā)利器Reveal查看任意app 的界面

iOS逆向工程(簡單利用"dumpdecrypted"給ipa砸殼)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末链沼,一起剝皮案震驚了整個(gè)濱河市默赂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌括勺,老刑警劉巖缆八,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件曲掰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡奈辰,警方通過查閱死者的電腦和手機(jī)栏妖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奖恰,“玉大人吊趾,你說我怎么就攤上這事∩校” “怎么了论泛?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蛹屿。 經(jīng)常有香客問我屁奏,道長,這世上最難降的妖魔是什么错负? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任了袁,我火速辦了婚禮,結(jié)果婚禮上湿颅,老公的妹妹穿的比我還像新娘。我一直安慰自己粥诫,他們只是感情好油航,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著怀浆,像睡著了一般谊囚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上执赡,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天镰踏,我揣著相機(jī)與錄音,去河邊找鬼沙合。 笑死奠伪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的首懈。 我是一名探鬼主播绊率,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼究履!你這毒婦竟也來了滤否?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤最仑,失蹤者是張志新(化名)和其女友劉穎藐俺,沒想到半個(gè)月后炊甲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡欲芹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年卿啡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耀石。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡牵囤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出滞伟,到底是詐尸還是另有隱情揭鳞,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布梆奈,位于F島的核電站野崇,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏亩钟。R本人自食惡果不足惜乓梨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望清酥。 院中可真熱鬧扶镀,春花似錦、人聲如沸焰轻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辱志。三九已至蝠筑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間揩懒,已是汗流浹背什乙。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留已球,地道東北人臣镣。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像和悦,于是被迫代替她去往敵國和親退疫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)發(fā)自 2016-07-07何兆林騰訊Bugly 如果您有耐心看完這篇文章鸽素,您將懂得如何著手進(jìn)行app的分析褒繁、追蹤...
    樹懶啊樹懶閱讀 10,648評(píng)論 5 63
  • 砸殼 class-dump 搭建越獄開發(fā)環(huán)境 Theos 配置越獄開發(fā)調(diào)試的 iOS 設(shè)備 Theos 環(huán)境 動(dòng)態(tài)...
    ampire_dan閱讀 5,546評(píng)論 0 7
  • 1.砸殼前的準(zhǔn)備 一臺(tái)越獄iphone??,根據(jù)以往經(jīng)驗(yàn)馍忽,測(cè)試用的手機(jī)永遠(yuǎn)不要緊跟潮流升級(jí)系統(tǒng)棒坏,在越獄手機(jī)中打開Cy...
    I_m趙昊閱讀 1,264評(píng)論 4 10
  • 破破舊舊的纜車開始緩緩向上燕差,像一頭老黃牛慢吞吞地爬過山坡。我和女人坐在里面坝冕,前面是層層疊疊的山巒徒探,再前面是等待回家...
    樟樹閱讀 493評(píng)論 0 0
  • iOS開發(fā)中测暗,如果不進(jìn)行適當(dāng)?shù)姆庋b,使用協(xié)議或者繼承類來進(jìn)行開發(fā)磨澡,你就會(huì)遇到傳說中的ViewController(...
    李卓立閱讀 934評(píng)論 0 4