淘新聞

實例 | 移動視頻盜鏈倡狂,我們下載了最火的那款盜鏈 App 然後破解了它

幾個月前,安全公司娜迦 CTO 閻文斌的觀念還是“小富即安”,經過五年發展,娜迦在創業叢林裡,一路披荊斬棘,作為一家創業公司成功活了下來。

“只要平穩發展就好。”

不料,公司最近談成了一筆大生意。國內某著名視頻生態企業 L 一直苦惱於視頻被盜鏈,屢和盜鏈組織打官司,官司雖然勝利,盜鏈卻依然猖獗。

尤其是那種“什麼資源都有”的全聚合視頻軟體,簡直是盜鏈行業的戰鬥機,讓視頻商愁壞了。

正規視頻商哭暈在地上

作為一窮二白的追劇群眾,用免費的 App 能看到那些“要收錢”的劇,還能看直播,想想應該是一件很開心的事情。但是,像 L 這種公司可能會哭暈在地上。

盜鏈行為,是指破解技術措施的深度連結,也是目前視頻聚合平臺侵權盜版的主要形式。深度連結分為一般深度連結和破解技術措施的深度連結兩種形式。兩者在播放時均未進行跳轉呈現出被鏈網站頁面,最終均未實現被鏈網站上的廣告利益並佔用被鏈網站的寬頻資源。

這意味著,

像 L 這種公司,一旦被盜鏈嚴重,你以為突然湧進來許多“流量”,看上去自家網站很受歡迎的樣子。實則,是盜鏈 App盜取了 L 視頻資源的直接下載連結,繞過了 L,盜鏈 App 在前方幾乎不用投入什麼資源,就可以獲得流量、視頻和使用者,但 L 卻要加伺服器、頻寬,這都要花出去白花花的銀子。

本來 L 等視頻廠商需要花很多錢買視頻,這些“收費”視頻被聚合類盜鏈 App 一挪,成了讓別人免費看,L 投的錢可能回不來。視頻被盜鏈後,還會引起用戶量流失,用戶量是互聯網企業的生命,用戶量因此流失比剜一刀還疼。

所以,這不是在挖視頻商的牆角,而是成堆“白蟻”在啃咬視頻商“基柱”的內部,假以時日,大廈或可因此傾塌。

在伺服器端搞防盜鏈技術好說,視頻商可以投入大量的精力自己搞。但是,來到了移動互聯網時代,在“移動端”為王的時代,面對紛繁複雜的各類安卓機、電視盒子等,要花大價錢,還要面對技術的高門檻,視頻商自己來做移動端防盜鏈,有心無力。

娜迦的項目經理馬宏亮說,這也是為什麼 L 會找上門的原因。

從無到有:逆向排名第一的盜鏈App

娜迦公司是一家以做“軟體保護殼”起家的安全公司,在對移動端的切入上,比較符合視頻商的訴求。不過,雷鋒網瞭解到,在與 L 的項目前,娜迦並沒有專門針對視頻防盜鏈的產品或技術推出。

但是,對方是一家著名的視頻公司,如果能結結實實地把這個項目做成案例,成立五年的娜迦不僅能在這個項目上賺到錢,移動視頻防盜鏈的廣闊市場也將對它敞開。

這是一筆好買賣。

以前沒有做過,不是難題。此前,閻文斌對雷鋒網宅客頻道(微信ID:letshome)曾表示,娜迦的創始人團隊都是一些做技術出身的人,“做安全產品的人不好自吹自擂說自己的防守能力怎麼樣,但是論‘打架’,我們說第一,應該沒有人說第二”。

他指的“打架”,就是攻擊破解能力。

馬宏亮所在的項目組在自家的攻防實驗室圍成了一個小圓桌——這是他們慣有的討論方式,每個人談談自己的思路。想了半天,大家一致認為,要想做成視頻防盜鏈,怎麼也得瞭解盜鏈機制對不對?

於是,他們梳理了市場上所有的聚合類視頻 App,直接下載了排名第一的 App ,著手開始破解和解析。

防盜鏈:穿上五層保護戰袍

攻防之間,雖然正邪不兩立,但有時也會感歎對手的“霹靂手段”。

馬宏亮說,這個 App 還真不可小覷:聚合所有熱門視頻播放機的全部資源,幾乎所有電視頻道的直播無障礙,還能緩存所有頻道 7 小時的資源……而且,這個 App 可以在所有安卓盒子使用,包括手機、電視等。

他們覺得這個 App 很厲害,然後逆向破解了它,搞清楚了它的盜鏈原理。

在 PC 機時代,一般視頻軟體用 VC++ 語言實現,為什麼用這種語言?因為在 window系統下,用 VC++做視頻,效率會很高。到了安卓移動端時代,一些原來寫視頻軟體的程式師思路還是按照之前的做法,而且安卓也正好支援這種語言,他們會把視頻軟體裡面寫的東西也移植到安卓端,形成了一個壓縮檔。

這個檔就是動態共用庫檔(

SO 檔)。

大概 70%、80% 的視頻 APP 都是用 java 寫的,再加一個 SO 檔,這個檔會和伺服器交互。也就是說,所有視頻連結請求都會通過 SO 檔和伺服器交互,伺服器再返回視頻流,因此APP 就可以獲取視頻流。

盜鏈 App 會從正規視頻商的 APP 裡的 APK 把 SO 檔拆出來,放到自己的 App 中,這就意味著它拿到了正規視頻商的“鑰匙”。

既然如此,為什麼不對至關重要的 SO 檔加密,讓盜鏈 App 拿到了也沒法用?

原來,

一旦對 SO 檔加密,運行起來就會再次遇到機器適配性的問題,整個 App 的運行速度都會變慢,這條路看上去行不通。

視頻商也不傻,因此想出來在 SO 檔與伺服器通訊時進行一次驗證,證明這就是“我的那片原版鑰匙” 。

“嘿,這是自己的SO ,不是別家的 SO”,好,驗證通過。

但是,這個驗證過程中擔當重任的是一個簽名檔,簽名檔和 SO 在匹配確認時,盜鏈 App 卻直接跳出來,把 SO 檔逆向破解,把簽名檔直接抹掉了。

這意味著,這種驗證方法根本不起作用,這條路又走不通了。

為了保護 SO 檔,張宏亮想出了一個辦法。

他們給 SO 檔穿上了一層保護殼,讓 SO 檔只能在正版視頻商的

 App 上跑,盜鏈 App 就算拿到了它,也無能為力。

因為 SO檔是 ELF格式,這種格式安卓可以識別,而我把它換了,換成我們創建的一個私有格式,所以安卓不能識別,只能靠我們做出來的連結器做識別。

原來,馬宏亮換了一把特殊的鑰匙和鎖。

為了再次核驗,他們還琢磨了另一層保護。

廠商之前會驗證是不是自己的 App,我們現在也在做。還是在這個思路下,把驗證代碼再放到殼體裡面,再做一次校驗,

原來視頻請求連結的時候,會有一款參數,我們在源參數碼上再加一個私有參數標識,這個私有參數標識還會即時發生變化。相當於在通訊時,加了一個驗證碼。

但是,在這三層驗證的保護手段下,馬宏亮和同事發現,不對?怎麼盜鏈還是很頻繁?哪裡失效了嗎?

原來,一個 App 在

安卓手機裡跑,要和安卓系統發生通訊。如果盜鏈者劫持了安卓系統通訊的關鍵函數,那麼前面的工作都等於白做。

於是,馬宏亮想到,要對安卓環境再進行一次檢測,預防被劫持。

在這四層手段下,馬宏亮覺得還不夠,萬一盜鏈者花大力氣把私有檔、私有參數標識庫都給破了怎麼辦?

於是,他們提出了第五層保護措施——每隔一段時間,

加密函數或者是解謎函數,私有的標識什麼的全部都換一遍。

“一些廠商要麼沒有針對 SO 檔來進行加固,要麼就是保護做得不好。力氣沒有用到點子上,這就是為什麼保護措施失效的原因。”張宏亮說。

“盤子”有多大

之前提到,由於技術門檻高,投入精力和資源多,視頻商要在移動端自己做防盜鏈,顯得有心無力。

但是,這個“盤子”到底有多大?還是僅僅是一個很小的細分市場?

馬宏亮沒有給具體資料,他說:“我是一個搞技術的,不懂市場,但是在我看來,現在移動視頻市場興起,大家搞直播什麼也很起勁,大家看視頻的習慣都逐漸往移動端遷移。”

據雷鋒網瞭解,目前進入移動視頻軟體安全加固領域的,除了BAT,還有梆梆(洋浦偉業)、愛加密、娜迦和一些新興廠家,總體而言,還處於新興階段。

“你說這個市場值不值得搞?”他反問。

不過,雷鋒網瞭解到,目前娜迦和 L 的項目正在推進中,L 正在對娜迦上交的技術進行核驗。如果“盤子”真的不負所望,那麼技術真的足夠成熟,可以拿出手了嗎?

“這個東西可能現在看很成熟,但要明年反過來看的話,肯定有一些不太成熟的地方。隨著時間往後走,這個方案肯定會越來越成熟,沒有說完全成熟的東西。”

馬宏亮對雷鋒網表示,下階段他們將對私有化解析技術發力,力求做到“一家一個格式”,這也是他們的核心競爭力。“不過,

這個得需要完成不同格式的解析器,還有不同的平臺都得往上做,比較麻煩。”他強調。