簡(jiǎn)介
本文是針對(duì)于閱讀過(guò)相關(guān)逆向朋友圈小視頻的人腊尚,如果沒(méi)有看過(guò)的話(huà)鹿蜀,閱讀本文應(yīng)該會(huì)一臉懵逼,所以建議大家可以搜一篇研究一下剪勿。
在逆向的過(guò)程中贸诚,大家拿微信練手占絕大一部分,一般實(shí)現(xiàn)的功能有將朋友圈小視頻保存到本地(現(xiàn)在的微信原生版已經(jīng)有了這個(gè)功能)或者轉(zhuǎn)發(fā)朋友圈等功能厕吉。一步一步的怎么逆向我也不啰嗦了酱固,一搜的話(huà)肯定也一大堆資料。那本文到底說(shuō)的是什么呢头朱?
網(wǎng)上千篇一律其實(shí)本質(zhì)都教你怎么一步一步的拿到WCDataItem
,進(jìn)而拿到小視頻的地址运悲。這里說(shuō)的就是以另外一種非常簡(jiǎn)單的方法去獲取。
獲取小視頻視圖名字
我這里首先是通過(guò)Xcode的Debug View Hierarchy得到到小視頻視圖名字WCTLContentItemTemplateVideo
,(有的教程是WCContentItemViewTemplateNewSigh
,我這里的微信版本是6.5.21比較新项钮,所以舊的版本有可能是這個(gè)名字)
定位小視頻長(zhǎng)按事件
WCTLContentItemTemplateVideo
通過(guò)class-dump處理的.h文件中可以找到幾個(gè)長(zhǎng)按方法班眯,一個(gè)一個(gè)斷點(diǎn)測(cè)試可以知道- (void)onLongTouch
就是長(zhǎng)按事件希停。
打斷點(diǎn)驗(yàn)證:
br s -a 0x000000000259c000+0x000000010261092c
0x000000000259c000
通過(guò)image list -o -f WeChat
獲取
0x000000010261092c
通過(guò)Hopper獲取到
做到這里與網(wǎng)上的基本類(lèi)似。只是試圖不一樣而已署隘。接下來(lái)就是重點(diǎn)了宠能。
找到WCDataItem
既然WCTLContentItemTemplateVideo
這個(gè)視圖就是顯示小視頻的,所以肯定會(huì)有數(shù)據(jù)源的磁餐。查看這個(gè)視圖看了一下沒(méi)有什么有價(jià)值的類(lèi)违崇。不過(guò)再去觀看的時(shí)候會(huì)發(fā)現(xiàn)它是繼承于WCContentItemBaseView
,到這個(gè)類(lèi)觀察一下诊霹。
看到這個(gè)大家則會(huì)豁然開(kāi)朗了羞延。
po [[[[[$x0 oDataItem]contentObj]mediaList]lastObject]dataUrl
通過(guò)如上命令可以驗(yàn)證出這個(gè)就是我們要找的小視頻的地址
接來(lái)怎么做相信大家肯定知道了吧。哈哈哈
我的博客地址