哈嚕~進(jìn)來(lái)看這篇文章的你,如果不是想增廣見(jiàn)聞、學(xué)習(xí)新知,就是想多了解一些好用來(lái)壞壞。
喔!對(duì)了!如果你一點(diǎn)功課都不願(yuàn)意做,也都不去了解,只是寄信來(lái)想著要從我這裡騙取金鑰,那不用費(fèi)心了,假借討論方法結(jié)果一問(wèn)三不知我會(huì)直接黑單謝謝不聯(lián)絡(luò)。
基於之前一篇「串流媒體 DASH mpd 解鎖測(cè)試網(wǎng)站的加密影片 — ( END )」下方的留言沒(méi)想到會(huì)有人來(lái)詢問(wèn)DMM的破解方式...很抱歉愛(ài)莫能助
上次使用去用DMM已經(jīng)是很久以前了,沒(méi)想到現(xiàn)在是用Clearkey來(lái)進(jìn)行保護(hù)。畢竟要用還要用VPN,
對(duì)我來(lái)說(shuō)實(shí)在是過(guò)於麻煩。
其實(shí)我對(duì)這個(gè)加密的了解基本上不多,我只知道他是一項(xiàng)免費(fèi)的服務(wù),以及他的解密金鑰是直接顯示在開(kāi)發(fā)者工具( DevTools)內(nèi)的。
目前我自己也遇到了使用Clearkey來(lái)保護(hù)的平臺(tái),最讓我煩惱的是...我無(wú)法解密音源...我能看畫(huà)面卻沒(méi)有聲音...如果對(duì)這方面有所了解的希望可以來(lái)幫幫我...
好的廢話太多~進(jìn)入正題!
這次我一樣找了一個(gè)範(fàn)例網(wǎng)站,有興趣者可以跟著本文章自己嘗試一下??!
你可以看到這個(gè)網(wǎng)站下方有放出程式碼,這裡面當(dāng)然也包含著金鑰,但我會(huì)當(dāng)沒(méi)看到,那我們開(kāi)始吧!
開(kāi)啟開(kāi)發(fā)者工具後,切換到網(wǎng)頁(yè)的標(biāo)籤,就可以看到「Manifest_1080p_ClearKey.mpd」出現(xiàn)在眼前,看到mpd那就可以確認(rèn)是DASH。
那麼我們切換到主控臺(tái)來(lái)尋找我們所需要的PSSH。
嗯?怎麼不是平常熟悉的格式?你問(wèn)我為什麼?我怎麼知道,我還希望有人來(lái)告訴我呢。
但不要急!不要慌!還記得我之前說(shuō)過(guò)PSSH都是使用Baese64編碼而成的嗎?不記得?現(xiàn)在給我記??!
那麼我們就把這段
eyJrZXlzIjpbeyJrdHkiOiJvY3QiLCJhbGciOiJBMTI4S1ciLCJraWQiOiJuclFGRGVSTFNBS1RMaWZYVUlQaVpnIiwiayI6IkZtWTB4bldDUENOYVNwUkctdFV1VFEifV19
丟去解碼吧!
好的!解碼後出現(xiàn)了這樣的一段明文
{"keys":[{"kty":"oct","alg":"A128KW","kid":"nrQFDeRLSAKTLifXUIPiZg","k":"FmY0xnWCPCNaSpRG-tUuTQ"}]}
你看不懂?沒(méi)關(guān)係,我也是。
但可以從裡面的一些東西推斷出一些東西,像是"A128KW"、"kid"和"k",那麼我想這三個(gè)詞大概分別是"AES-128"、"Key ID(KID)"和"Key"。
看到這邊有沒(méi)有發(fā)現(xiàn)什麼?對(duì)!我們要的金鑰出現(xiàn)了!接下來(lái)讓我們整理一下~
KID:nrQFDeRLSAKTLifXUIPiZg
Key:FmY0xnWCPCNaSpRG-tUuTQ
還記得金鑰的格式嗎?不記得?沒(méi)關(guān)係。我不會(huì)在這邊複習(xí)的,自己往前面翻。
那麼既然我們已經(jīng)得到了我們要的東西,但這並不是正確的格式,我們還必須把這些轉(zhuǎn)換成16進(jìn)制(Hex)
找一個(gè)網(wǎng)頁(yè)工具來(lái)轉(zhuǎn)換一下
啊勒?!為什麼?來(lái)讓我們查一下
由於二進(jìn)位資料是依照8位元一組進(jìn)行傳輸,因此Base64依照6位元一組切分的二進(jìn)位資料必須是24位元的倍數(shù)(6和8的最小公倍數(shù))。 24位元就是3個(gè)位元組,若原位元組序列資料長(zhǎng)度不是3的倍數(shù)時(shí)且剩下1個(gè)輸入數(shù)據(jù),則在編碼結(jié)果後加2個(gè)=;若剩下2個(gè)輸入數(shù)據(jù),則在編碼結(jié)果後加1個(gè)=。
原來(lái)呀~長(zhǎng)知識(shí)了!那麼事不宜遲!算一下總共幾個(gè)字...22個(gè)字!那麼要加上兩個(gè)==
成功拉!再來(lái)!繼續(xù)!我先算一下...一樣是22個(gè)字!那我再補(bǔ)上兩個(gè)==
為!什!麼!再來(lái)查查...
Base64編碼是使用64個(gè)可列印ASCII字元(A-Z、a-z、0-9、+、/)將任意位元組序列資料編碼成ASCII字串,另有「=」符號(hào)用作後綴用途。
我懂了!那麼我就把句子內(nèi)的 " - " 轉(zhuǎn)換成 " + "
成功拉!那麼接下來(lái)就是...
DO~RE~MI~SO~
KID 以及 KEY 進(jìn)行轉(zhuǎn)換後得到的就是
KID:9eb4050de44b4802932e27d75083e266
Key:166634c675823c235a4a9446fad52e4d
再稍微整理一下格式
--key 9eb4050de44b4802932e27d75083e266:166634c675823c235a4a9446fad52e4d
這就是我們所需要的金鑰拉!費(fèi)盡千辛萬(wàn)苦呢!那麼各位是不是學(xué)會(huì)拉~有學(xué)會(huì)~很棒~(yú)
我當(dāng)初也以為我有學(xué)會(huì)...直到我踢到鐵板...嗚嗚嗚嗚...
那麼有機(jī)會(huì)下次見(jiàn)~