最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 破解視頻App去除廣告功能詳解及解決辦法總結(jié)

 更新時間:2016年12月09日 09:41:50   作者:尼古拉斯_趙四  
這篇文章主要介紹了Android 破解視頻App去除廣告功能詳解及解決辦法總結(jié)的相關(guān)資料,這里對視頻播放原理及破解去除廣告幾種方法進行了總結(jié),需要的朋友可以參考下

Android 破解視頻App去除廣告功能

作為一個屌絲程序猿也有追劇的時候,但是當打開視頻app的時候,那些超長的廣告已經(jīng)讓我這個屌絲無法忍受了,作為一個程序猿看視頻還要出現(xiàn)廣告那就是打我臉,但是我有沒有錢買會員,只能靠著畢生技能去耍耍去除廣告了。下面就來介紹一下如何進行視頻廣告的去除。

一、視頻廣告播放原理

首先我們需要了解的一個基本知識點那就是廣告其實也是一段視頻,那么他肯定有請求地址和播放地址。那么我們的思路就來了,如果能夠得到這些地址的話,我們就可以去除廣告了,為什么呢?因為我們知道所有的網(wǎng)絡(luò)請求最終會走系統(tǒng)的hosts文件,在這個文件中記錄了很多ip地址和域名的映射關(guān)系,系統(tǒng)的每一次網(wǎng)絡(luò)請求都會先去查找系統(tǒng)的hosts文件,如果發(fā)現(xiàn)請求的域名在這里有,就是用域名對應的ip地址進行訪問了,所以可以看到hosts文件其實相當于本地的一個簡單的DNS功能文件。如果我們有了視頻廣告請求地址,那么就可以修改hosts文件,將廣告請求地址的域名映射成本機地址127.0.0.1,那么這樣就肯定會出現(xiàn)廣告請求錯誤,本地播放廣告錯誤,就會直接跳過廣告了。當然具體的方式有三種:

第一種方式:設(shè)備root之后,修改設(shè)備的hosts文件

缺點:設(shè)備需要root

優(yōu)點:一次修改,終身受用,一機在手,天下我有!

第二種方式:設(shè)備無root,可以設(shè)置電腦作為代理,修改電腦的hosts文件

缺點:設(shè)備播放視頻必須依賴于電腦代理,不方便

優(yōu)點:無需進行設(shè)備root

第三種方式:修改路由器過濾規(guī)則,添加地址屏蔽規(guī)則

缺點:設(shè)備播放視頻必須依賴于路由器的局域網(wǎng)內(nèi),不方便

優(yōu)點:無需進行設(shè)備root

但是這種方式可以受益多人使用,一般這種方式用于家庭的局域網(wǎng)內(nèi),這樣一家人看視頻都沒有廣告了。

二、破解app獲取廣告域名

上面分析了技術(shù)原理,那么下面就要來開始破解了,因為看到上面的原理之后發(fā)現(xiàn)最關(guān)鍵的就是如何得到視頻廣告的地址?在我所知道的就這么幾種方式:

第一種:使用抓包工具進行抓包

這種方式難度在于要分析每個地址的請求信息

第二種:破解具體視頻app

這種方式成本過大,耗時很久

第三種:從市場中找一個可以過濾廣告的app進行破解

這種方式是最方便的,也是最靠譜的。

下面咋們?nèi)ナ袌鏊岩幌乱曨l廣告過濾的app,結(jié)果搜到了一個app名為:凈網(wǎng)大師


下面在來分析一下,這個app的去除廣告原理:

當有了視頻廣告的播放地址,方式還是很多的,一種是設(shè)備root之后修改hosts文件或者是攔截網(wǎng)絡(luò)請求進行過濾,一種是非root設(shè)備采用VPNService功能進行網(wǎng)絡(luò)請求攔截。

從他的界面看來他是用了第二種方式,而對于Android中VPN開發(fā)不熟的同學可以自己去網(wǎng)上搜一些資料,就是注冊一個VPNService,然后獲取到系統(tǒng)的VPN權(quán)限,然后設(shè)備的網(wǎng)絡(luò)請求都會通過這個Service,只要在這個Service中做處理就可以了。那么這個app中肯定有一個過濾庫用來存放市面上所有視頻播放的廣告地址,這也是我們破解的入口。那么下面就來進行破解操作了。

首先還是使用apktool工具進行反編譯,幸運的是他沒有做應用加固,反編譯很順利。不過這里最好使用一個jadx工具,他是一個可視化反編譯工具,比較方便,查看他的AndroidManifest.xml文件,找到VPNService聲明:


然后去查看VPNRouterService類實現(xiàn):


然后可以全局搜一下Builder這個名稱,因為構(gòu)建VPN必須使用到這個類:


這段代碼就是開始構(gòu)建VPNService了。下面繼續(xù)深入跟進,最終到了run方法中:


然后在看一下startTunnel方法:


好了,這是一個native方法,下面繼續(xù)來分析so文件了:


使用IDA工具打開,查看這個so文件內(nèi)容:


發(fā)現(xiàn)這個方法中做了一些初始化工作,那么猜想視頻廣告地址應該是保存在一個加密的文件中,而且最有可能是一個數(shù)據(jù)庫文件,同時這個過濾地址可以支持服務端更新,因為現(xiàn)在視頻廣告地址發(fā)生了改變了,這個app也是需要感知的。可以看到的確有一個入口可以更新過濾規(guī)則:


通過上面的代碼可以分析到過濾規(guī)則文件加密了,那么可以進入這個加密方法中看看,這里使用IDA的F5功能鍵得到匯編對應的C代碼:


這里就可以清晰的看到了,在這個應用的沙盒中有一個txt文件,這個文件中保存了數(shù)據(jù)庫文件的路徑:


然后我們把這個文件導出來,記得他為了掩人耳目,把db后綴名刪了,我們需要手動的加上后綴名:v_0.0.32.db文件,可惜的是打開文件之后發(fā)現(xiàn)報錯:


因為這個數(shù)據(jù)庫文件是加密的,加密算法是AES:


看到這里,我們可能想到了,需要動態(tài)調(diào)試so得到這個加密的密碼了,但是這里不這么干,因為我很懶,動態(tài)調(diào)試感覺老費勁了,所以就發(fā)現(xiàn)了一個捷徑,我的思路是這樣的:

前面分析了這個app過濾廣告的原理是借助于VPN進行攔截請求,那么攔截到請求得到指定域名肯定是去和過濾規(guī)則進行比較判斷的,因為這些規(guī)則是放在數(shù)據(jù)庫中的,所以不可能每次都是去查詢數(shù)據(jù)庫中的記錄進行比較,這樣效率會很低下的,所以這里在想他為了提高效率,應該做了一個緩存池用來存放命中的域名地址。那么就好辦了,如果做了緩存池的話,域名地址就是一些字符串值了,從另一方面在本地他應該也有默認的一些字符串地址,防止更新過濾規(guī)則失敗作為備用的,從這兩方面可以知道應該本地有一些廣告域名字符串內(nèi)容。

在IDA中我們可以使用Shift+F12查看一個so文件中的字符串值:


我們可以看到這里有很多字符串的值,可以往下查看,我們關(guān)注的內(nèi)容是域名字符串,那么域名字符串的值有一個特點就是以.com結(jié)尾的,所以我們可以這么干,把這些內(nèi)容復制出來放到一個txt文件中:


然后寫一個簡單的程序進行過了即可,忘記了Python腳本了,只能靠著老本行的Java語言寫了:


代碼很簡單的,就是讀取每一行內(nèi)容,然后進行字符串過濾,得到域名,因為后面我們得到這個域名之后也是要添加到hosts文件中,所以就直接在這里構(gòu)造一個ip地址和域名的映射關(guān)系了。運行程序之后,生成的文件內(nèi)容如下:


感覺有點像是各家視頻廣告請求的域名地址了。

三、修改hosts文件進行驗證

那么到這里我們就通過靜態(tài)方式破解了凈網(wǎng)大師得到了市面上視頻app播放廣告的域名地址了,下面就趕緊操作一下看看效果,這里為了方便,手上正好有一個root的手機,所以直接把上面生成的規(guī)則加到設(shè)備的hosts文件中,Android中的hosts文件存放的目錄是在根目錄下的  /etc/hosts


然后咋們添加成功之后,就立馬來體驗一下,這里選擇了愛奇藝和騰訊視頻作為案例操作一下:

首先來看一下愛奇藝的廣告過濾效果:


看到了,這里點了兩個熱門視頻都是沒有廣告的,再來看一下騰訊視頻:


看到啦,也是沒有廣告了,看來是成功了,還有其他視頻app,感情去的同學可以自己去嘗試了。這里就不在演示了。

說明:

有的同學會好奇,既然這個app可以做到過濾廣告,那還破解干嘛,直接用就可以了呀,其實這么想就是對程序猿的侮辱,其次是這個app使用了vpn功能,怎么說了,個人對這個功能和app并不怎么放心,感覺設(shè)備的所有網(wǎng)絡(luò)請求都能被他攔截到是件多么恐怖的事,最重要的一點是,本文使用了root設(shè)備之后修改hosts文件實現(xiàn)的,如果哪天想通過修改路由器中添加規(guī)則,電腦掛代理方式操作那不就扯淡了,你都沒有域名怎么辦,所以不管怎么樣都得破解這個app得到最終的域名,這樣才保險,后續(xù)自己想怎么搞就怎么搞!

四、知識總結(jié)和回顧

到這里我們就完美的過濾了市面上所有視頻app的廣告邏輯了,在整個過程中我們可以看到有大部分的猜想,有了猜想然后才去進行實踐邏輯的,所以說在逆向領(lǐng)域有時候需要豐富的經(jīng)驗,有時候也要敢大膽的猜想。下面來總結(jié)一下我們的操作流程:

第一步:了解現(xiàn)階段視頻廣告播放的原理

現(xiàn)在移動端app的廣告播放原理都是將廣告短片和視頻內(nèi)容分開的,那么廣告短片應該也是在線請求一個播放地址,如果要是能夠得到這個播放地址就可以完成剔除工作。

第二步:有了廣告域名如何進行廣告過濾

這個需要了解系統(tǒng)在請求網(wǎng)絡(luò)的時候的原理,其實是先去找本機的hosts文件,看看請求的域名有沒有對應的ip地址,如果有就直接使用ip地址作為請求地址了,那么這里的思路就是可以修改hosts文件來做到廣告域名請求的攔截工作,也就是在hosts文件中添加廣告請求域名的映射關(guān)系,把域名指向本地ip地址:127.0.0.1即可

第三步:如何獲取視頻廣告的請求域名

其實這里有多種方式:一種是進行網(wǎng)絡(luò)抓包,一種是通過破解視頻app,一種是借助其他家app。而本文中就是借助了第三方app叫做凈網(wǎng)大師來獲取到的域名,這時候就需要進行破解凈網(wǎng)大師app了,而這個就是本文的一個重點。在破解的過程中我們一部分借助的是逆向經(jīng)驗一部分是借助的大膽猜想,比如猜想他域名肯定會在本地有一個字符串池保存,這個是本次破解的關(guān)鍵步驟。

第四步:有了域名如何進行過濾廣告

這里因為前面了解了系統(tǒng)請求的原理,那么就可以有三種方式:一種是修改設(shè)備的hosts文件,前提是設(shè)備需要進行root;一種是通過掛代理,修改代理機器的hosts文件;一種是修改路由器的過濾規(guī)則;這三種方式各有優(yōu)缺點。

嚴重聲明:本文介紹的知識點完全是從一個技術(shù)分享角度出發(fā),絕非用于任何商業(yè)活動和用途,如果涉及到任何法律問題將由操作者本人負責。本文作者將不負責任何法律責任!也請各位同學秉著技術(shù)角度出發(fā)的原則,切勿用于商業(yè)中!

視頻App如何規(guī)避這種操作:作為視頻App廣告是其生存之本,所以對于這種操作的用戶,因為自己也要做一些防護策略,可以本地啟動一個后臺服務,通過ping命令來檢測當前廣告域名對應的ip地址,如果發(fā)現(xiàn)不是自己域名對應的ip地址,那么就不讓其看視頻內(nèi)容,但是這種方式是不是可行還有待驗證!

六、總結(jié)

本文主要介紹的內(nèi)容還是破解相關(guān)的知識點,而本文在破解的過程中用到了大量的猜想,然后通過實踐去證明猜想,有時候多一些猜想也會讓破解過程變得更加便捷,同時通過本文之后,小編以后看視頻在也不用看廣告了。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Android 輸入框被擋問題完美解決方案

    Android 輸入框被擋問題完美解決方案

    這篇文章主要為大家介紹了Android 輸入框被擋問題完美解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • 淺談Android輕量級的數(shù)據(jù)緩存框架RxCache

    淺談Android輕量級的數(shù)據(jù)緩存框架RxCache

    本篇文章主要介紹了淺談Android輕量級的數(shù)據(jù)緩存框架RxCache,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • WebView的介紹與簡單實現(xiàn)Android和H5互調(diào)的方法

    WebView的介紹與簡單實現(xiàn)Android和H5互調(diào)的方法

    這篇文章主要給大家介紹了關(guān)于WebView與簡單實現(xiàn)Android和H5互調(diào)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-05-05
  • Android10 啟動之SystemServer源碼分析

    Android10 啟動之SystemServer源碼分析

    這篇文章主要為大家介紹了Android10 啟動之SystemServer源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Android中Spinner控件之鍵值對用法實例分析

    Android中Spinner控件之鍵值對用法實例分析

    這篇文章主要介紹了Android中Spinner控件之鍵值對用法,實例分析了Spinner控件控件的鍵值對實用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • Android使用Canvas?2D實現(xiàn)循環(huán)菜單效果

    Android使用Canvas?2D實現(xiàn)循環(huán)菜單效果

    循環(huán)菜單有很多種自定義方式,我們可以利用ViewPager或者RecyclerView?+?CarouselLayoutManager?或者RecyclerView?+?PageSnapHelper來實現(xiàn)這種效果,今天我們使用Canvas?2D來實現(xiàn)這種效果,感興趣的朋友可以參考下
    2024-01-01
  • ListView的Adapter使用 之 初學ArrayAdapter String

    ListView的Adapter使用 之 初學ArrayAdapter String

    ListView是Android中經(jīng)常會使用的東西,綁定數(shù)據(jù)對于初學者來說,尤其是剛接觸編程的人來說,往往會覺得很難理解,我上大二的時候?qū)W的java,但是基本上相當于沒有學,什么都沒寫過,真正接觸編程就是開始上手學android,把這些記錄下來,自己可以回頭看下,也可以讓新手更好的理解
    2013-06-06
  • Android中將一個圖片切割成多個圖片的實現(xiàn)方法

    Android中將一個圖片切割成多個圖片的實現(xiàn)方法

    有種場景,我們想將一個圖片切割成多個圖片。比如我們在開發(fā)一個拼圖的游戲,就首先要對圖片進行切割
    2013-05-05
  • Android開發(fā)之TabHost選項卡及相關(guān)疑難解決方法

    Android開發(fā)之TabHost選項卡及相關(guān)疑難解決方法

    這篇文章主要介紹了Android開發(fā)之TabHost選項卡及相關(guān)疑難解決方法,結(jié)合實例形式較為詳細的分析了Android開發(fā)中TabHost選項卡的常見用法以及相關(guān)疑難問題解決方法,需要的朋友可以參考下
    2019-03-03
  • Android開發(fā)實現(xiàn)模仿360二維碼掃描功能實例詳解

    Android開發(fā)實現(xiàn)模仿360二維碼掃描功能實例詳解

    這篇文章主要介紹了Android開發(fā)實現(xiàn)模仿360二維碼掃描功能,結(jié)合實例形式詳細分析了Android開發(fā)二維碼掃描功能所涉及的zxing開源項目文件使用方法及具體掃碼功能相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-10-10

最新評論

崇明县| 宿松县| 宜丰县| 苗栗县| 清水县| 千阳县| 阆中市| 长葛市| 平罗县| 玉田县| 会东县| 垦利县| 台南县| 兰西县| 天柱县| 大丰市| 新疆| 定边县| 云梦县| 双鸭山市| 张北县| 扶余县| 清新县| 灵寿县| 六枝特区| 嫩江县| 庆安县| 化德县| 涿州市| 阿坝| 南宁市| 平塘县| 四子王旗| 株洲县| 阳原县| 永胜县| 闻喜县| 招远市| 贵德县| 洛川县| 荥经县|