Envelop-AppStore Hook

越獄可以使用 Tweak,是因?yàn)樵姜z后默認(rèn)有mobilesubstrate 這個(gè)庫,它主要是能在程序運(yùn)行時(shí)能動(dòng)態(tài)加載我們自己的動(dòng)態(tài)庫。但非越獄機(jī)沒有這個(gè)庫,所以需要直接將這個(gè)庫打包進(jìn) ipa中來使用這個(gè)庫的一些API實(shí)現(xiàn)注入過程。雖然是可以安裝在非越獄機(jī)器上,但制作過程需要有越獄手機(jī)。

獲取砸殼應(yīng)用

自己砸
工具: dumpdecrypted 或者 clutch工具 本文需要砸殼之后的ipa文件所以只能用clutch
環(huán)境:只有越獄才能砸殼

dumpdecrypted砸(原理是讓app預(yù)先加載一個(gè)解密的dumpdecrypted.dylib,然后在程序運(yùn)行后,將代碼動(dòng)態(tài)解密,最后在內(nèi)存中dump出來整個(gè)程序。通過dumpdecrypted得到的可執(zhí)行文件其實(shí)不是完全解密過的,機(jī)器是arm64的話就只能解密arm64那部分。可嘗試命令 lipo -thin arm64 .decrypted -o -arm64.decrypted可獲得純凈的可執(zhí)行文件。)
1. 越獄的iPhone 
2. 進(jìn)入Cydia,搜索并安裝OpenSSH、Cycript、iFile(調(diào)試程序時(shí)可以方便地查看日志文件)這三款軟件
3. 電腦上用iTunes上下載一個(gè)最新的微信,連上iPhone,用iTunes裝上剛剛下載的微信應(yīng)用
4. Mac終端,用ssh進(jìn)入連上的iPhone(確保iPhone和Mac在同一個(gè)網(wǎng)段,筆者iPhone的IP地址為192.168.8.54)。OpenSSH的root密碼默認(rèn)為alpine。 如: ssh root@172.17.10.83
5. 手機(jī)打開iFile 后在終端一步步找到WeChat所在位置并保持微信打開(也可以用 ps -e 來查看當(dāng)前進(jìn)程進(jìn)行查找):cd /var/mobile/Containers/Bundle/Application/5A3F8B13-FF94-43A8-B02D-1580E38D63D0/WeChat.app/
6. 之后 cycript -p WeChat (cycript -p 查看附加進(jìn)程的)等待出現(xiàn) cy# 后在之后輸入 NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0] 則可以獲取到輸出地址保留好 如:@"/var/mobile/Containers/Data/Application/C599E377-2B62-41B6-87A7-FBC6F19ECDD6/Documents"
7. 下載dumpdecrypted源碼,再:cd /Users/ucsapp/Downloads/dumpdecrypted-master 中后再使用 make 命令在該目錄下生成一個(gè) dumpdecrypted.dylib文件
8. 拷貝該動(dòng)態(tài)庫到iPhone對(duì)應(yīng)的WeChat的Documents目錄下 scp拷貝時(shí)并輸入ssh的密碼alpine(命令scp 源文件路徑 目標(biāo)文件路徑)如:scp ./dumpdecrypted.dylib root@172.17.10.83:/var/mobile/Containers/Data/Application/C599E377-2B62-41B6-87A7-FBC6F19ECDD6/Documents
9. 開始對(duì)AppStore下載的微信應(yīng)用進(jìn)行砸殼,注意檢查下當(dāng)前Mac是否連接到了手機(jī),先ssh到WeChat的dumpdecrypted.dylib所在的document目錄:/var/mobile/Containers/Data/Application/xxxxxxx/Documents下,再 (命令格式:DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 需砸殼文件WeChat.app/WeChat路徑)如:DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/5A3F8B13-FF94-43A8-B02D-1580E38D63D0/WeChat.app/WeChat 之后會(huì)生成一個(gè)WeChat.decrypted文件在dumpdecrypted.dylib的同級(jí)目錄下這就是砸殼的應(yīng)用。
10. 電腦新建一個(gè)terminal,從手機(jī)拷貝該砸殼文件到電腦桌面 scp root@172.17.10.83:/var/mobile/Containers/Data/Application/3D3BD063-A779-4FAD-B4C4-6E674B8F2135/Documents/WeChat.decrypted /Users/yourcomputer/Desktop/
11. 注意:classdump出頭文件--- class-dump -H WeChat.decrypted --arch armv7  -o /Users/xxx/Desktop/xxx/Headers
Clutch砸 編譯Clutch后將執(zhí)行文件拷貝到越獄手機(jī)中,再ssh進(jìn)入手機(jī),列出當(dāng)前安裝應(yīng)用,并選擇比如騰訊的某個(gè)應(yīng)用對(duì)應(yīng)的包名砸殼。
clutch 會(huì)將砸過的 ipa 文件放到了 /private/var/mobile/Documents/Dumped/ 目錄下,接下來可以將其改簡(jiǎn)單名,再拷回電腦
1. 下載最新的Clutch https://github.com/KJCracks/Clutch/releases
2. cd Clutch
3. xcodebuild -project Clutch.xcodeproj -configuration Release ARCHS="armv7 armv7s arm64" build
4. scp Clutch/clutch root@<your.device.ip>:/usr/bin/
5. ssh root@<your.device.ip>
6. clutch -i
7. clutch -d com.tencent.xin(注意:可能因?yàn)樵姜ziOS9.1的4S上的微信130MB有點(diǎn)大而不成功,嘗試用clutch -b com.tencent.xin也不行 猜測(cè)可能是clutch對(duì)armv7的32bit的處理有誤導(dǎo)致失敗,官Git上也出現(xiàn)類似問題但未找到相應(yīng)解決 6Plus越獄64位機(jī)沒問題)
8. mv /private/var/mobile/Documents/Dumped/com.tencent.xin-iOS7.0-\(Clutch-2.0.4\).ipa /private/var/mobile/Documents/Dumped/wechat.ipa
9. scp root@<your.device.ip>:/private/var/mobile/Documents/Dumped/wechat.ipa ~/Desktop

別人砸
請(qǐng)繞道去PP助手等下載吧

動(dòng)態(tài)庫

參考:Envelope 動(dòng)態(tài)庫

下載動(dòng)態(tài)庫后需要編譯,但直接編譯會(huì)報(bào)錯(cuò)提示找不到theos環(huán)境等,需要先安裝好這些環(huán)境。
make編譯后會(huì)生成一個(gè)隱藏的.theos目錄,在其下找到該源碼的編譯動(dòng)態(tài)庫文件并拷貝到和上面的砸殼應(yīng)用同目錄下。
使用系統(tǒng)otool工具檢測(cè)該動(dòng)態(tài)庫需要依賴的各個(gè)庫是否都已存在,看到有兩個(gè)是屬于需要自身動(dòng)態(tài)庫要包含進(jìn)Library的,
除了第一個(gè)外第二個(gè)(因?yàn)樵搸旆窃姜z環(huán)境下是沒有的需要從越獄手機(jī)下提取出來以備打包用,
路徑為:/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate。)
需要通過install_name_tool來修改這個(gè)動(dòng)態(tài)庫的依賴路徑并再次查看發(fā)現(xiàn)已經(jīng)改為從該動(dòng)態(tài)庫讀取這個(gè)依賴庫了而非非越獄下的手機(jī)環(huán)境了,
并用optool工具(下載要recursive因?yàn)樵撛创a中又包含了其它源碼,后需要編譯如果xcodebuild命令提示錯(cuò)誤,嘗試換一個(gè)https://github.com/yuchuanfeng/optool作者的optool后還報(bào)錯(cuò)直接用xcode來build不用終端)將缺失庫與動(dòng)態(tài)庫一起打進(jìn)該動(dòng)態(tài)庫包里。
之后將砸殼過的 ipa 文件解壓,然后將 libsubstrate.dylib 與 WeChatRedEnvelop.dylib 拷貝到解壓后的 WeChat.app 目錄下以便下一步install這個(gè)WeChatRedEnvelop.dylib。

1. git clone https://github.com/buginux/WeChatRedEnvelop.git
2. cd WeChatRedEnvelop
3. make
4. cp .theos/obj/debug/WeChatRedEnvelop.dylib ~/Desktop
5. otool -L WeChatRedEnvelop.dylib
6. install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib /Users/ucsapp/Desktop/AutoEnvelopUnJail/WeChatRedEnvelop.dylib
7. otool -L WeChatRedEnvelop.dylib
8. git clone --recursive https://github.com/alexzielenski/optool.git(搜索最新release版本或換其他作者的)
9. cd optool
10. xcodebuild -project optool.xcodeproj -configuration Release ARCHS="i386 x86_64" build (optool是源碼編譯后將同名product拷到AAAAA待用)
11. unzip wechat.ipa -d wechat(注意:解壓砸殼過的wechat.ipa, 解壓后得到一個(gè)包含Payload文件的文件夾,將optool和兩個(gè)動(dòng)態(tài)庫及解壓后的WeChat.app這三個(gè)文件放在同一個(gè)文件夾AAAAA中)
12. cd ~/AAAAA
13. cp /AAAAA/libsubstrate.dylib /AAAAA/WeChatRedEnvelop.dylib /AAAAA/WeChat.app
14. /AAAAA/optool install -c load -p "@executable_path/WeChatRedEnvelop.dylib" -t WeChat.app/WeChat (會(huì)輸出表示成功:
Found thin header...
Inserting a LC_LOAD_DYLIB command for architecture: arm64
Successfully inserted a LC_LOAD_DYLIB command for arm64
Writing executable to WeChat.app/WeChat...)
依賴庫

打包重簽名

1. 刪除注入了動(dòng)態(tài)庫的.app中的包文件里的Watch目錄,將含有iWatch工程先刪除不簽名
2. 將目標(biāo)設(shè)備的UUID加到即將要簽名的證書中并更新配置文件下載安裝到Mac
3. 下載應(yīng)用重簽工具并運(yùn)行該Mac程序 https://github.com/DanTheMan827/ios-app-signer
4. 選擇重簽的證書和配置文件及保存路徑后點(diǎn)擊開始
5. 用工具將ipa裝入設(shè)備檢測(cè)是否有了動(dòng)態(tài)庫的相關(guān)改動(dòng)

可能會(huì)有報(bào)錯(cuò)無法是被object格式等錯(cuò)誤 檢測(cè)好動(dòng)態(tài)庫注入cp 和 optool install路徑 盡量放在同一文件夾下操作 暫時(shí)應(yīng)該就無其它錯(cuò)誤了

應(yīng)用重簽工具

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評(píng)論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,559評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,581評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,922評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,096評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,639評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,374評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,591評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,789評(píng)論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評(píng)論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,322評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,554評(píng)論 2 379

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

  • 轉(zhuǎn)發(fā)自 2016-07-07何兆林騰訊Bugly 如果您有耐心看完這篇文章,您將懂得如何著手進(jìn)行app的分析、追蹤...
    樹懶啊樹懶閱讀 10,674評(píng)論 5 63
  • 逆向工程的目的 1)分析競(jìng)品的最新研究或者產(chǎn)品原型(包括所用的技術(shù),所使用的框架) 2)學(xué)術(shù)/學(xué)習(xí)目的。 3)破解...
    零度_不結(jié)冰閱讀 721評(píng)論 0 2
  • [TOC] iOS 逆向 -微信 helloWorld 一、 前言 本篇主要制作微信的 tweak,實(shí)現(xiàn)在非越獄版...
    TKkk閱讀 12,711評(píng)論 21 42
  • 野有死麇,白茅包之。有女懷春,吉士誘之。林有樸樕,野有死麇;白茅純束,有女如玉。 舒而脫脫兮,無感我悅兮,無使尨也吠。
    samsong1234閱讀 491評(píng)論 0 0
  • 突然間朋友告訴我她的姐姐離婚了,這個(gè)消息使我的大腦有一瞬間的空白!她結(jié)婚還不到三個(gè)月吧,當(dāng)初結(jié)婚時(shí)朋友作為我的上鋪...
    辣辣_5387閱讀 190評(píng)論 0 0