亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

一、視頻廣告播放原理

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

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

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

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

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

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

優(yōu)點(diǎn):無需進(jìn)行設(shè)備root

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

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

優(yōu)點(diǎn):無需進(jìn)行設(shè)備root

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

二、破解app獲取廣告域名

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

第一種:使用抓包工具進(jìn)行抓包

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

第二種:破解具體視頻app

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

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

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

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


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

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

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

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


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


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


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


然后在看一下startTunnel方法:


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


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


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


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


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


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


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


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

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

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


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


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


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


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

三、修改hosts文件進(jìn)行驗證

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


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

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


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


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

說明:

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

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

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

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

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

第二步:有了廣告域名如何進(jìn)行廣告過濾

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

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

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

第四步:有了域名如何進(jìn)行過濾廣告

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

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

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

六、總結(jié)

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

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

相關(guān)文章

最新評論