iOS逆向筆記(微信自動搶紅包)

前戲

  1. 越獄手機;
  2. Cydia 安裝 ssh(用于電腦ssh連接);
  3. Cydia 安裝 adv-cmds(用于 ps -e 查看進程方便查找目標 App 位置);
  4. Cydia 安裝 cycript (查看App 的 Documents 路徑);

正題

1. ssh 連接iPhone
ssh root@iphone_ip

然后輸入密碼 默認情況下是: alpine

2. 獲取微信的路徑

a). 首先找到微信的可執(zhí)行文件的具體路徑;
iPhone啟動微信,通過以下命令獲取

ps -e | grep WeChat

/var/mobile/Applications/4FB2F319-3ECA-4EE9-B17E-22632471F409/WeChat.app/WeChat

b). 通過 Cycript找出微信的Documents的路徑;(ps:這一步不要鎖屏)

cycript -p WeChat
cy# NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]

/var/mobile/Applications/4FB2F319-3ECA-4EE9-B17E-22632471F409/Documents

3. 編譯dumpdecrypted

Github上下載最新的 dumpdecrypted 源碼;
進入下載的文件目錄執(zhí)行 make 編譯獲得 dumpdecrypted.dylib 文件
拷貝dumpdecrypted.dylib到iPhone上

scp dumpdecrypted.dylib root@10.8.182.11:/var/mobile/Applications/4FB2F319-3ECA-4EE9-B17E-22632471F409/Documents

獲取微信頭文件

砸殼

其實這一步可以略過,直接從第三方市場下載已經(jīng)砸殼的ipa解壓即可,當本身就是為了學習來的,就順便學習下砸殼的方法。

執(zhí)行以下代碼

DYLD_INSERT_LIBRARIES=/var/mobile/Applications/4FB2F319-3ECA-4EE9-B17E-22632471F409/Documents/dumpdecrypted.dylib /var/mobile/Applications/4FB2F319-3ECA-4EE9-B17E-22632471F409/WeChat.app/WeChat

看到這樣的圖就砸殼成功了!

拷貝砸殼生成的文件WeChat.decrypted文件到電腦上

dump 微信的可執(zhí)行文件
class-dump --arch armv7 hello.decrypted -H -o ./heads

注意:當砸殼完畢后,使用 class-dump 仍然只導(dǎo)出 CDStructures.h 一個文件,則可能架構(gòu)選擇錯誤;因為 dumpdecrypted 只會砸你手機處理器對應(yīng)的那個殼,fat binary 的其它部分仍然是有殼的,而 class-dump 的默認目標又不是被砸殼的那個部分,因此很有可能就會報錯。解決辦法:--arch 指定cpu架構(gòu)


砸殼后獲取的部分頭文件

干些羞羞的事

好不容易搞到了 WeChat 的頭文件,就這么算了也太沒勁了??傄泓c見不得人的事。

搶個紅包

好像之前看到過一個教程。嗯那咋也搞搞看。
其實這里主要是通過創(chuàng)建動態(tài)庫的方式 HOOK 微信中的兩個方法

  • CMessageMgr.h 中的 - (void)AsyncOnAddMsg:(id)arg1 MsgWrap:(id)arg2;
  • WCRedEnvelopesLogicMgr.h 中的- (void)OpenRedEnvelopesRequest:(id)arg1;
利其器
安裝失敗

解決方法(安裝those):

  1. 下載MacPorts并安裝(耐心等這一步有點慢)
    更新一下
    sudo port -v selfupdate
  1. 安裝dpkg(用于打包.deb文件)

    sudo port -f install dpkg
    
  2. 安裝those

    export THEOS=/opt/theos
    sudo git clone -b stableversion https://github.com/haorenqq/theos/ $THEOS
    
  3. 安裝iOSOpenDev
    什么?還是安裝失???請繼續(xù)。
    進入系統(tǒng)根目錄的opt文件夾會發(fā)現(xiàn)一個iOSOpenDevSetup文件,

    cd /opt/iOSOpenDevSetup/bin
    sudo ./iod-setup base
    sudo ./iod-setup sdk -sdk iphoneos
    

驗證:
查看 /Users/taizi/library/developer/xcode/ 路徑下是否有
Templates/iOSOpenDev
或者執(zhí)行

```
cat ~/.bash_profile 
```
查看輸出是否包含
> export iOSOpenDevPath=/opt/iOSOpenDev
> export iOSOpenDevDevice=
> export PATH=/opt/iOSOpenDev/bin:$PATH
Xcode iOSOpenDev
善其事

先把之前保存的 WeChat.decrypted 重命名為 WeChat 用 yololib 注入

./yololib WeChat libAutoRedEnvelopesGet.dylib
14696002963960.png
  • 生成Entitlements.plist文件
Enitilements.plist
重簽名

把生成的dylib、
剛剛注入dylib的WeChat、
以及embedded.mobileprovision文件(就是你自己打包的provision文件,在之前打包過的App也中能找到)
拷貝到WeChat.app(可以通過iTunes下載解壓得到)中

分別用codesign命令來為微信中的相關(guān)文件簽名

codesign -f -s 證書名字 目標文件

codesign -f -s "iPhone Distribution: xxx" WeChat.app/libAutoRedEnvelopesGet.dylib

codesign -f -s "iPhone Distribution: Hangzhou Ouer Technology Co., Ltd" WeChat.app/Watch/WeChatWatchNative.app

codesign -f -s "iPhone Distribution: xxx" WeChat.app/PlugIns/WeChatShareExtensionNew.appex

codesign -f -s "iPhone Distribution: xxx" WeChat.app/Watch/WeChatWatchNative.app/PlugIns/WeChatWatchNativeExtension.appex

codesign -f -s "iPhone Distribution: xxx" --entitlements Entitlements.plist WeChat.app

codesign -f -s "iPhone Distribution: Hangzhou Ouer Technology Co., Ltd" --entitlements Entitlements.plist WeChat.app/Watch/WeChatWatchNative.app

最后打包

xcrun -sdk iphoneos PackageApplication -v WeChat.app  -o ~/Desktop/WeChat.ipa

小編用上面的方法試了簽名成功但是一直安裝失敗, 上網(wǎng)找了半天也沒解決,最后在GitHub上搞了一個重簽名工具 ( https://github.com/DanTheMan827/ios-app-signer ) 重新簽名后在越獄手機上安裝成功,但自己的iPhone6上還是安裝失?。ㄔ覛さ墨@取cpu指令集不同)。
最后直接從PP助手上下載一個已砸殼的應(yīng)用注入重簽名就可以了。
用AppResign重簽名

./AppResign WeChat.app WeChat.ipa

事后一根煙

雖然前輩有很多經(jīng)驗可以參考,但是自己實際操作中間還是走了很多坑,最后成功安裝不crash還是蠻興奮的。
附上一些參考文章
http://www.itdecent.cn/p/189afbe3b429
http://www.itdecent.cn/p/844ae6180ed7
http://iosre.com/t/topic/2966

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容