iOS 實(shí)現(xiàn)非越獄搶紅包, 修改微信步數(shù), 消息防撤回

原文鏈接

一步一步實(shí)現(xiàn)iOS微信自動(dòng)搶紅包(非越獄)

iOS微信自動(dòng)搶紅包-入門教程(非越獄)

非越獄iOS應(yīng)用逆向-更改微信步數(shù)

需要的工具/文件

解密微信可執(zhí)行文件(沒越獄的往下翻, 可忽略這一步)

1.確保已越獄的iPhone和Mac處于同一局域網(wǎng)洲守,打開Mac OS的終端命令行工具

2.輸入ssh root@192.168.1.121遠(yuǎn)程登錄已越獄的iPhone召边,root密碼默認(rèn)為alpine(其中192.168.1.121是iPhone的局域網(wǎng)IP地址)

ssh.jpg

3.在iPhone上運(yùn)行一下微信象泵,之后執(zhí)行ps -e | grep WeChat(ps -e)查找WeChat可執(zhí)行文件的路徑,并記錄為:可執(zhí)行文件路徑

微信bundle id.jpg

4.通過(guò)Cycript查找到WeChat的Documents路徑思灰,輸入cycript -p WeChat,進(jìn)入cycript命令行狀態(tài)

cycript.jpg

5.輸入NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)[0],就可以獲取到WeChat的Documents路徑了,并記錄為:Documents路徑

記錄下剛才的兩個(gè)路徑,接下來(lái)需要將砸殼工具dumpdecrypted拷貝到WeChat的Documents目錄下用于砸殼

確保我們從Github上下載了最新的dumpdecrypted源碼疫衩,進(jìn)入dumpdecrypted源碼的目錄壮莹,編譯dumpdecrypted.dylib翅帜,命令make

dumpdecrypted.dylib .jpg

6.將命令行切換回Mac OS X

輸入scp dumpdecrypted.dylib root@192.168.1.121:Documents路徑

scp.jpg

7.重新遠(yuǎn)程登錄到iPhone,使用dumpdecrypted.dylib砸殼命满,具體用法:

DYLD_INSERT_LIBRARIES=/Documents路徑/dumpdecrypted.dylib 可執(zhí)行文件路徑

dumpdecrypted.jpg

出現(xiàn)了如截圖頁(yè)面則表示砸殼成功涝滴,會(huì)在命令行執(zhí)行的當(dāng)前路徑下生成WeChat.decrypted文件

7.1 dumpdecrypted對(duì)系統(tǒng)ios9.3.2以上的版本砸殼失敗, 先遠(yuǎn)程自己的設(shè)備:ssh root@設(shè)備IP ; 執(zhí)行命令:su mobile->cd; 接著砸殼;砸殼文件所在目錄:/var/mobile/

8.將生成的WeChat.decrypted使用scp命令拷貝到Mac電腦上,和之前從Mac電腦拷貝dumpdecrypted.dylib到手機(jī)上類似的語(yǔ)法胶台。(下圖中的黑色覆蓋部分替換為你的Mac登陸用戶名)

拷貝解密文件到Mac.jpg

9.為保險(xiǎn)起見歼疮,可以對(duì)WeChat.decrypted文件檢查一下,查看砸殼是否成功

如截圖第一個(gè)cryptid 0表示armv7架構(gòu)已成功诈唬,第二個(gè)cryptid 1表示arm64未成功

理論上只要把最老的架構(gòu)解密就可以了韩脏,因?yàn)樾碌腸pu會(huì)兼容老的架構(gòu);所以這里arm64未成功不影響

查看砸殼情況.jpg

10.再次遠(yuǎn)程連接iPhone铸磅,拷貝出WeChat.app待用(注意使用scp -r)

拷貝WeChat.app到Mac電腦.jpg

解密微信可執(zhí)行文件->利用PP助手(推薦)

在已越獄的iPhone上安裝PP助手后赡矢,從PP助手中下載微信客戶端

PP助手上面的App的可執(zhí)行文件都是經(jīng)過(guò)了砸殼的,所以可以省去自己砸殼的步驟

我們可以按照自己砸殼的步驟杭朱,導(dǎo)出PP助手的微信可執(zhí)行文件,利用otool查看砸殼情況

PP助手中WeChat砸殼情況.jpg

這表示armv7和arm64均已解密

同樣再次遠(yuǎn)程連接iPhone吹散,拷貝出WeChat.app待用

生成并注入dylib

1.下載并安裝iOSOpenDev

安裝iOSOpenDev.jpg

Xcode 8弧械,直接安裝iOSOpenDev會(huì)失敗。

安裝iOSOpenDev失敗.jpg

如果你們也遇到類似的問(wèn)題送浊,可以嘗試下載iOSOpenDev_Patches梦谜,然后按照如下步驟:

1、把Specifications1文件夾重命名為Specifications放到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/

2袭景、把Specifications2文件夾重命名為Specifications放到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/

3唁桩、把usr3重命名為usr放到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/

4、安裝iOSOpenDev

2.創(chuàng)建dylib工程并生成dylib

安裝完iOSOpenDev后耸棒,在Xcode中選擇Cocoa Touch Library荒澡。

創(chuàng)建Cocoa Touch Library工程.jpg

點(diǎn)擊Next開始新建工程,將product name命名為autoGetRedEnv与殃;

刪除autoGetRedEnv.h文件单山,修改autoGetRedEnv.m為autoGetRedEnv.mm,然后在項(xiàng)目中加入CaptainHook.h幅疼;

從github中下載autoGetRedEnv工程源碼中的CaptainHook.h和autoGetRedEnv.mm拷貝源碼米奸,復(fù)制到工程中對(duì)應(yīng)文件中,完成后進(jìn)行(真機(jī))編譯爽篷,即可得到libautoGetRedEnv.dylib文件

hook微信的AsyncOnAddMsg: MsgWrap:方法悴晰,實(shí)現(xiàn)方法如下:

//聲明CMessageMgr類
CHDeclareClass(CMessageMgr);
CHMethod(2, void, CMessageMgr, AsyncOnAddMsg, id, arg1, MsgWrap, id, arg2)
{
  //調(diào)用原來(lái)的AsyncOnAddMsg:MsgWrap:方法
  CHSuper(2, CMessageMgr, AsyncOnAddMsg, arg1, MsgWrap, arg2);
  //具體搶紅包邏輯
  //...
  //調(diào)用原生的打開紅包的方法
  //注意這里必須為給objc_msgSend的第三個(gè)參數(shù)聲明為NSMutableDictionary,不然調(diào)用objc_msgSend時(shí),不會(huì)觸發(fā)打開紅包的方法
  ((void (*)(id, SEL, NSMutableDictionary*))objc_msgSend)(logicMgr, @selector(OpenRedEnvelopesRequest:), params);
}
__attribute__((constructor)) static void entry()
{
  //加載CMessageMgr類
  CHLoadLateClass(CMessageMgr);
  //hook AsyncOnAddMsg:MsgWrap:方法
  CHClassHook(2, CMessageMgr, AsyncOnAddMsg, MsgWrap);
}

2.1 添加微信步數(shù)修改


CHOptimizedMethod(0, self, unsigned long, WCDeviceStepObject, m7StepCount) {
    return 66666;
}

CHOptimizedMethod(0, self, unsigned long, WCDeviceStepObject, hkStepCount) {
    return 66666;
}

__attribute__((constructor)) static void entry()
{
    //加載CMessageMgr類
    CHLoadLateClass(CMessageMgr);
    //hook AsyncOnAddMsg:MsgWrap:方法
    CHClassHook(2, CMessageMgr, AsyncOnAddMsg, MsgWrap);
    
    // 微信步數(shù)  CHLoadLateClass(WCDeviceStepObject);
    CHHook(0, WCDeviceStepObject, m7StepCount);
    CHHook(0, WCDeviceStepObject, hkStepCount);
}

2.2 添加微信防撤回

CHDeclareClass(CMessageMgr);

CHOptimizedMethod(1, self, void, CMessageMgr, onRevokeMsg, id, value1) {

}


__attribute__((constructor)) static void entry()
{
    //加載CMessageMgr類
    CHLoadLateClass(CMessageMgr);
    //hook AsyncOnAddMsg:MsgWrap:方法
    CHClassHook(2, CMessageMgr, AsyncOnAddMsg, MsgWrap);
    
    // 微信步數(shù)  CHLoadLateClass(WCDeviceStepObject);
    CHHook(0, WCDeviceStepObject, m7StepCount);
    CHHook(0, WCDeviceStepObject, hkStepCount);
    // 消息防撤回
    CHHook(1, CMessageMgr, onRevokeMsg); 
}


3.注入dylib

通過(guò)yoyolibWeChat注入dylib (相當(dāng)于告知WeChat有這么個(gè)東西了逐工,到時(shí)候程序可以加載這個(gè)dylib)

./yololib 目標(biāo)可執(zhí)行文件 需注入的dylib

目標(biāo)可執(zhí)行文件:即铡溪,WeChat.app/WeChat解密后得到的文件;如果是自己砸殼時(shí)泪喊,對(duì)應(yīng)的則是之前導(dǎo)出的WeChat.decrypted文件(建議將WeChat.decrypted文件做好備份以便之后使用棕硫,同時(shí)把WeChat.decrypted重命名為WeChat);如果是利

注入dylib.jpg

上圖效果則代表注入成功了

3.重新簽名并安裝ipa

  • 新建Entitlements.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>application-identifier</key>
  <string>123456.com.autogetredenv.demo</string>
  <key>com.apple.developer.team-identifier</key>
  <string>123456</string>
  <key>get-task-allow</key>
  <true/>
  <key>keychain-access-groups</key>
  <array>
      <string>123456.com.autogetredenv.demo</string>
  </array>
</dict>
</plist>

獲取證書Teamid及其他信息使用以下命令

/opt/iOSOpenDev/bin/ldid -e ./Demo.app/Demo
將四個(gè)文件袒啼,放入到之前備份好的WeChat.app文件夾中:
  • 1.embedded.mobileprovision
  • 2.libautoGetRedEnv.dylib
  • 3.注入libautoGetRedEnv.dylib后的WeChat文件
  • 4.Entitlements.plist

embedded.mobileprovision文件就是蘋果開發(fā)者網(wǎng)站中的Provisioning Profiles文件,如果之前創(chuàng)建好了直接下載重命名為embedded.mobileprovision即可哈扮。

Provisioning Profiles文件.png

給微信重新簽名

重新簽名命令格式:codesign -f -s 證書名字 目標(biāo)文件

證書名字可以在鑰匙串中找到

分別用codesign命令來(lái)為微信中的相關(guān)文件簽名,具體實(shí)現(xiàn)如下:

codesign -f -s "iPhone Developer: Hao liu (475KU64APH)" WeChat.app/libautoGetRedEnv.dylib

codesign -f -s "iPhone Developer: Hao liu (475KU64APH)" WeChat.app/Watch/WeChatWatchNative.app/PlugIns/WeChatWatchNativeExtension.appex

codesign -f -s "iPhone Developer: Hao liu (475KU64APH)" WeChat.app/Watch/WeChatWatchNative.app

codesign -f -s "iPhone Developer: Hao liu (475KU64APH)" WeChat.app/PlugIns/WeChatShareExtensionNew.appex

codesign -f -s "iPhone Developer: Hao liu (475KU64APH)" --entitlements Entitlements.plist WeChat.app

打包成ipa
給微信重新簽名后,我們就可以用xcrun來(lái)生成ipa了瘤泪,具體實(shí)現(xiàn)如下:
xcrun -sdk iphoneos PackageApplication -v WeChat.app  -o ~/WeChat.ipa
重新簽名.png

安裝擁多種功能的微信

只要手機(jī)id加入了開發(fā)者證書中都是可以安裝的

iTools.png
微信步數(shù).jpg
微信紅包.jpg
微信紅包2.png
系統(tǒng)版本.jpg

哈哈哈哈哈哈, 大家玩的開心!!!!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末灶泵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子对途,更是在濱河造成了極大的恐慌赦邻,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件实檀,死亡現(xiàn)場(chǎng)離奇詭異惶洲,居然都是意外死亡按声,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門恬吕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)签则,“玉大人,你說(shuō)我怎么就攤上這事铐料〗チ眩” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵钠惩,是天一觀的道長(zhǎng)柒凉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)篓跛,這世上最難降的妖魔是什么膝捞? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮愧沟,結(jié)果婚禮上蔬咬,老公的妹妹穿的比我還像新娘。我一直安慰自己沐寺,他們只是感情好林艘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著混坞,像睡著了一般北启。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拔第,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音场钉,去河邊找鬼蚊俺。 笑死,一個(gè)胖子當(dāng)著我的面吹牛逛万,可吹牛的內(nèi)容都是我干的泳猬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼宇植,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼得封!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起指郁,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤忙上,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后闲坎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疫粥,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茬斧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了梗逮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片项秉。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖慷彤,靈堂內(nèi)的尸體忽然破棺而出娄蔼,到底是詐尸還是另有隱情,我是刑警寧澤底哗,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布岁诉,位于F島的核電站,受9級(jí)特大地震影響艘虎,放射性物質(zhì)發(fā)生泄漏唉侄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一野建、第九天 我趴在偏房一處隱蔽的房頂上張望属划。 院中可真熱鬧,春花似錦候生、人聲如沸同眯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)须蜗。三九已至,卻和暖如春目溉,著一層夾襖步出監(jiān)牢的瞬間明肮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工缭付, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留柿估,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓陷猫,卻偏偏與公主長(zhǎng)得像秫舌,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绣檬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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