Android逆向之旅--微信封了抖音分享功能,而我要把短視訊成功分享到朋友圈!...

編碼美麗發表於2018-07-30
一、前言

本文寫的目的很簡單,因為微信封了抖音短視訊分享功能,但是這個對於使用者來說都是不好的體驗,當初3Q大戰,損害的是使用者利益,現在也是使用者最後都是最受傷的一個。而這兩次都和企鵝有關。先看看企鵝為了微視封了的應用:

640?wx_fmt=png

看到這是被封的名單,可以看到企鵝這一次是動真格的了,而且看到企鵝**的一面,本文不討論企鵝和頭條的任何其他關係,我們看到抖音是如何做這種提示:

640?wx_fmt=png

這種舉措其實對於使用者來說體驗很差,當使用者點選去上傳其實只是開啟微信而已,但是對於使用者來說就是想分享一下這個視訊而已,所以從這裡看到損壞的還是使用者的利益。那麼說了這麼多,我們現在要做的就是不要彈出這個框,並且直接跳轉到微信分享頁面即可。


二、逆向分析

這裡我們在之前的一篇文章已經介紹了:抖音短視訊去除水印問題分析;我們知道抖音會把當前視訊下載到本地,然後在彈出這個分享對話方塊,讓使用者選擇本地視訊進行下載的流程。那麼我們的思路其實很簡單,只要攔截到他分享下載視訊完成之後的時機,然後直接把本地視訊啟動微信分享即可。而對於微信直接分享本地視訊這個之前已經介紹很多次了,微信分享本地短視訊的頁面可以用 adb shell dumpsys activity top 命令獲取:

640?wx_fmt=png

然後我們可以攔截這個頁面啟動,把這個頁面的需要的Intent中的引數全部列印出來:

640?wx_fmt=png

執行之後看看列印的結果:

640?wx_fmt=png

這裡有幾個重要的引數:

  • Ksnsupload_type=14:固定值表示分享的是短視訊型別

  • sight_md5:短視訊檔案的MD5值

  • KSightPath:短視訊本地路徑

  • KSightThumbPath:短視訊的封面圖

從這裡看到,如果我們有了短視訊地址,那麼可以自己寫程式碼生成封面圖,計算MD5值的,這樣需要的引數就都有了,那麼接下來我們先看看如何獲取抖音分享下載的視訊地址,這個很簡單,通過UI分析工具獲取對話方塊彈出的位置:

640?wx_fmt=png

然後去反編譯之後的public.xml中進行查詢這個id值:

640?wx_fmt=png

轉化成整型值然後去Jadx中進行搜尋:

640?wx_fmt=png

通過逐一分析發現是這個地方,點選進入檢視:

640?wx_fmt=png

繼續點選進入檢視:

640?wx_fmt=png

看到這裡的確是一個對話方塊,但是因為抖音已經分包了,所以多個dex中開啟查詢這個類呼叫地方太麻煩,之前說過一個簡單的辦法就是hook方法然後列印堆疊資訊跟蹤會更快:

640?wx_fmt=png

然後執行展示對話方塊看看列印日誌:

640?wx_fmt=png

通過堆疊資訊找到最頂端的方法:

640?wx_fmt=png

然後我們就在這個類中發現了這些資訊:

640?wx_fmt=png

的確是這個目錄,但是這裡的檔名卻不固定,所以我們要想得到這個視訊的具體全路徑,需要獲取到檔案的名字,繼續看上面那個類程式碼:

640?wx_fmt=png

這裡有一個方法可以獲取mp4前面的檔名資訊,我們hook這個方法看看列印值:

640?wx_fmt=png

執行看看日誌:

640?wx_fmt=png

這個方法可能執行多次,我們只需要儲存最後一條資訊:

640?wx_fmt=png

這個檔名的確是這個,所以我們有了檔名和固定路徑,這樣本地視訊的全路徑就有了,接下來就需要得到抖音展示對話方塊位置,而且需要把對話方塊幹掉不展示了,這個直接用Xposed的替換方法程式碼即可:

640?wx_fmt=png

把當前儲存的短視訊路徑通過Intent傳遞給微信,這裡不要用static變數來儲存,因為這裡是從抖音程式中到微信程式,變數是不能跨程式訪問的,最方便的就是通過Intent進行傳遞最好,這裡為什麼要啟動微信首頁而不是分享頁面呢?因為微信為了安全把分享頁面SnsUploadUI設定成export=false了,外界應用無法直接啟動。所以需要通過首頁啟動來中轉即可:

640?wx_fmt=png

然後在攔截微信的啟動頁面,判斷是否有抖音短視訊路徑值,如果有就獲取判斷檔案是否存在,獲取視訊的封面圖等,最後直接在微信中啟動分享頁面即可:

640?wx_fmt=png

為了更好的體驗,微信分享介面的文字框中可以自動填充我們想要的內容資訊,可以用反射修改分享頁面:

640?wx_fmt=png

這個所有的工作都做完了,我們就可以走一遍了:

640?wx_fmt=gif

看到了,這裡從抖音點選分享按鈕之後一氣呵成,直接到微信朋友圈,其實最好一點是都不用微信使用者自己點選發表,而是自動發表,這個留給感興趣的同學自己操作吧。到這裡我們就把抖音短視訊不能分享到朋友圈的問題解決了,這樣使用就會方便多了,而且抖音視訊有水印其實,不過這個結合之前的文章可以把水印去掉的。這樣就一步到位,發表視訊到朋友圈裝逼啦。


嚴重說明

本文的目的只有一個就是學習逆向分析技巧,如果有人利用本文技術進行非法操作帶來的後果都是操作者自己承擔,和本文以及本文作者沒有任何關係,本文涉及到的程式碼專案可以去編碼美麗小密圈自取,長按下方二維碼加入小密圈一起學習探討技術

640?wx_fmt=png


三、總結

本文其實沒有什麼新的知識點,都是以往的跟蹤程式碼技術,以及微信和抖音的逆向技巧,只是這一次把抖音和微信一起搞了,方便自己使用,不過從微信分享封閉策略來看,的確和以往相比抖音的導量受到一定影響,但是從封閉開始,抖音的資料不降反而上升,其實可以看到抖音不在依賴微信這一個傳播路徑了,或者說之前抖音的導量渠道中微信獲取沒起到很大作用,但是不管怎麼樣,不要損害使用者的利用。


手機檢視文章不方便,可以網頁看

http://www.520monkey.com


《Android應用安全防護和逆向分析》 

 點選檢視圖書詳情

640?wx_fmt=jpeg

長按下面

相關文章