Envelop-AppStore Hook

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

獲取砸殼應(yīng)用

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

dumpdecrypted砸(原理是讓app預(yù)先加載一個解密的dumpdecrypted.dylib泛源,然后在程序運(yùn)行后拔妥,將代碼動態(tài)解密,最后在內(nèi)存中dump出來整個程序达箍。通過dumpdecrypted得到的可執(zhí)行文件其實不是完全解密過的没龙,機(jī)器是arm64的話就只能解密arm64那部分。可嘗試命令 lipo -thin arm64 .decrypted -o -arm64.decrypted可獲得純凈的可執(zhí)行文件硬纤。)
1. 越獄的iPhone 
2. 進(jìn)入Cydia解滓,搜索并安裝OpenSSH、Cycript筝家、iFile(調(diào)試程序時可以方便地查看日志文件)這三款軟件
3. 電腦上用iTunes上下載一個最新的微信,連上iPhone洼裤,用iTunes裝上剛剛下載的微信應(yīng)用
4. Mac終端,用ssh進(jìn)入連上的iPhone(確保iPhone和Mac在同一個網(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 命令在該目錄下生成一個 dumpdecrypted.dylib文件
8. 拷貝該動態(tài)庫到iPhone對應(yīng)的WeChat的Documents目錄下 scp拷貝時并輸入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. 開始對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 之后會生成一個WeChat.decrypted文件在dumpdecrypted.dylib的同級目錄下這就是砸殼的應(yīng)用。
10. 電腦新建一個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)用,并選擇比如騰訊的某個應(yīng)用對應(yīng)的包名砸殼蜜徽。
clutch 會將砸過的 ipa 文件放到了 /private/var/mobile/Documents/Dumped/ 目錄下,接下來可以將其改簡單名祝懂,再拷回電腦
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(注意:可能因為越獄iOS9.1的4S上的微信130MB有點大而不成功,嘗試用clutch -b com.tencent.xin也不行 猜測可能是clutch對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

別人砸
請繞道去PP助手等下載吧

動態(tài)庫

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

下載動態(tài)庫后需要編譯嫂易,但直接編譯會報錯提示找不到theos環(huán)境等,需要先安裝好這些環(huán)境掐禁。
make編譯后會生成一個隱藏的.theos目錄,在其下找到該源碼的編譯動態(tài)庫文件并拷貝到和上面的砸殼應(yīng)用同目錄下颅和。
使用系統(tǒng)otool工具檢測該動態(tài)庫需要依賴的各個庫是否都已存在,看到有兩個是屬于需要自身動態(tài)庫要包含進(jìn)Library的傅事,
除了第一個外第二個(因為該庫非越獄環(huán)境下是沒有的需要從越獄手機(jī)下提取出來以備打包用,
路徑為:/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate峡扩。)
需要通過install_name_tool來修改這個動態(tài)庫的依賴路徑并再次查看發(fā)現(xiàn)已經(jīng)改為從該動態(tài)庫讀取這個依賴庫了而非非越獄下的手機(jī)環(huán)境了蹭越,
并用optool工具(下載要recursive因為該源碼中又包含了其它源碼,后需要編譯如果xcodebuild命令提示錯誤教届,嘗試換一個https://github.com/yuchuanfeng/optool作者的optool后還報錯直接用xcode來build不用終端)將缺失庫與動態(tài)庫一起打進(jìn)該動態(tài)庫包里响鹃。
之后將砸殼過的 ipa 文件解壓,然后將 libsubstrate.dylib 與 WeChatRedEnvelop.dylib 拷貝到解壓后的 WeChat.app 目錄下以便下一步install這個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, 解壓后得到一個包含Payload文件的文件夾买置,將optool和兩個動態(tài)庫及解壓后的WeChat.app這三個文件放在同一個文件夾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 (會輸出表示成功:
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. 刪除注入了動態(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. 選擇重簽的證書和配置文件及保存路徑后點擊開始
5. 用工具將ipa裝入設(shè)備檢測是否有了動態(tài)庫的相關(guān)改動

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

應(yīng)用重簽工具

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末强霎,一起剝皮案震驚了整個濱河市忿项,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖轩触,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寞酿,死亡現(xiàn)場離奇詭異,居然都是意外死亡脱柱,警方通過查閱死者的電腦和手機(jī)伐弹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來榨为,“玉大人惨好,你說我怎么就攤上這事∧眩” “怎么了昧狮?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長板壮。 經(jīng)常有香客問我逗鸣,道長,這世上最難降的妖魔是什么绰精? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任撒璧,我火速辦了婚禮,結(jié)果婚禮上笨使,老公的妹妹穿的比我還像新娘卿樱。我一直安慰自己,他們只是感情好硫椰,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布繁调。 她就那樣靜靜地躺著,像睡著了一般靶草。 火紅的嫁衣襯著肌膚如雪蹄胰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天奕翔,我揣著相機(jī)與錄音裕寨,去河邊找鬼。 笑死派继,一個胖子當(dāng)著我的面吹牛宾袜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播驾窟,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼庆猫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了绅络?” 一聲冷哼從身側(cè)響起阅悍,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤好渠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后节视,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拳锚,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年寻行,在試婚紗的時候發(fā)現(xiàn)自己被綠了霍掺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡拌蜘,死狀恐怖杆烁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情简卧,我是刑警寧澤兔魂,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站举娩,受9級特大地震影響析校,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜铜涉,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一智玻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧芙代,春花似錦吊奢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至铺呵,卻和暖如春逻谦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背陪蜻。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留贱鼻,地道東北人宴卖。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像邻悬,于是被迫代替她去往敵國和親症昏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359

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

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