首先肯定不是獲取自己的ipa包。
為什么要獲取ipa包呢?比如,在仿寫(xiě)一些程序時(shí),避免不了獲取它的圖片素材等等,那么最快也是最有效的方式就是獲取原程序的ipa包。更或者,你想要逆向分析某一款A(yù)PP時(shí),那么只有獲取了ipa后才能進(jìn)行class-dump,ida等等后續(xù)工作。
一、通過(guò)越獄設(shè)備
如果有越獄手機(jī),那么就變得很簡(jiǎn)單,只需要從AppStore下載到越獄手機(jī),然后用iTools/PP助手等工具將ipa包備份到電腦即可,下圖是使用PP助手:

如果只是為了獲取圖片素材,那么獲取到ipa包解壓后,顯示包內(nèi)容即可。但是如果想進(jìn)一步進(jìn)行逆向分析,還需要使用Clutch等工具進(jìn)行砸殼,因?yàn)閺腁ppStore下載的程序都是加過(guò)密的,至于砸殼不再詳述。
二、使用未越獄的手機(jī)
在iOS8之前使用iTools等可以直接導(dǎo)出ipa包,但是iOS9之后就不能。(我用的是MAC系統(tǒng),如果大家可以的,還煩請(qǐng)告訴我一聲,在次謝謝)。
三、使用電腦
此方法只是用來(lái)獲取企業(yè)賬號(hào)發(fā)布的APP。在一些情況下,公司可能發(fā)布一款違背蘋(píng)果審核規(guī)則的APP,不能上架AppStore,那么可以使用企業(yè)賬號(hào)發(fā)布在自己的網(wǎng)站上,然后通過(guò)微信、微博或者掃二維碼的方式分發(fā)推廣應(yīng)用。
1 我們就可以直接將他們推廣的網(wǎng)址輸進(jìn)電腦瀏覽器,這是會(huì)獲得plist文件,或者瀏覽器提示無(wú)法打開(kāi)并給出itms-services:///?action=download-manifest&url=...一大串提醒。
如果是plist文件,那么用Xcode打開(kāi)plist文件,將下圖中紅色框住的部分即是ipa的下載路徑,復(fù)制后直接用瀏覽器打開(kāi)即可。

如果是一串itms-services:///?action=download-manifest&url=...這樣的提醒,那么“url=“后面的鏈接直接就是plist文件的下載地址,同樣是復(fù)制用瀏覽器打開(kāi)即可,后續(xù)操作和上面一樣。
2 現(xiàn)在程序的保護(hù)意識(shí)都加強(qiáng)了,可能服務(wù)器會(huì)判斷你的設(shè)備如果不是手機(jī)則拒絕下載,直接返回失敗,那么這種情況,可以將MAC下的瀏覽器通過(guò)修改userAgent偽裝成手機(jī)的Safari瀏覽器。下面以火狐瀏覽器為例:
A)首先打開(kāi)Firefox在地址欄輸入:about:config,這時(shí)會(huì)有提醒,直接點(diǎn)擊I PRomise!即可

B)在搜索里面搜索:general.useragent.override,第一次是搜索不到的,然后再空白區(qū)域右擊->New->String

C)在彈出的框里面輸入general.useragent.override->OK

D)再在彈出的框中輸入具體的值,比如:iPhone6,iPhone5s,iPhone4s(目前我只有這三款手機(jī),歡迎添加,獲取方法見(jiàn)下面代碼)。
iPhone6,iOS9.0.2:Mozilla/5.0 (iPhone; CPU iPhone OS 9_0_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13A452
iPhone5s,iOS9.0.2:Mozilla/5.0 (iPhone; CPU iPhone OS 9_0_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13A452
iPhone4s,iOS7.1.1:Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D201
如果上面三款不符合你的要求,下面貼上獲取手機(jī)userAgent的代碼,可以根據(jù)需要來(lái)獲取自己需要的手機(jī)型號(hào),注意:要真機(jī)調(diào)試:
- (void)viewDidLoad { [super viewDidLoad]; UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero]; NSString *userAgent = [webView stringByEvaluatingjavaScriptFromString:@"navigator.userAgent"]; NSLog(@"--%@--",userAgent);}

最后,關(guān)閉瀏覽器再次打開(kāi)進(jìn)行1的操作。企業(yè)賬號(hào)發(fā)布的應(yīng)用都是沒(méi)有加密的,直接使用class-dump,ida/Hopper Disassembler分析即可,當(dāng)然圖片素材也是可以獲得的。
綜上,通過(guò)越獄手機(jī)不僅可以獲得AppStore上的APP,更可以獲得企業(yè)賬號(hào)發(fā)布的APP,如果是AppStore上的APP且想進(jìn)行逆向分析,還需要使用clutch工具進(jìn)行砸殼。如果沒(méi)有越獄手機(jī),可以通過(guò)瀏覽器獲取企業(yè)賬號(hào)發(fā)布的APP,有可能需要偽裝成手機(jī)瀏覽器,其實(shí)如果對(duì)方服務(wù)器添加了簽名驗(yàn)證,那么即便是偽裝成手機(jī)瀏覽器也不能獲取了,所以,如果自己在發(fā)布企業(yè)app時(shí),如果不想被破解,最后使用簽名驗(yàn)證的方式。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注