ガイド DRMコンテンツの入手ガイド。(作成中)

yannic0

ROM専
登録日
2022年1月18日
投稿
305
リアクションスコア
0
これはDRMコンテンツの取得を簡単にするためのガイドです。
そう、すでにいくつかガイドはある。でも技術に詳しくない人でも理解できて、ついていけて、見つけられるものを作りたいんだ。
このガイドではDRM保護されたコンテンツを取得するために必要なpythonとツールのインストール手順を説明します
ガイドは複数のパートに分かれます。
Mac OSユーザーはこちらのガイドへ: https://simpcityopen.com/threads/81957/
Python、PIP、Fridaのインストール
まず最初に。
Python をこのサイトからダウンロードして: https://www.python.org/downloads/、最新バージョン*を入手してください。(プレリリース版はNG)

* 執筆時点での最新バージョンは3.11.4
インストーラーを開いて、必ず「Add python to PATH」にチェックを入れてください

そのオプションを選んだらインストールを押して終わるまで待ってください。
ちゃんとインストールされたか確認するために、Terminal (Windows 11)かPowershell (Windows 10/11)を開いて入力:
以下のような結果になるはずです*

* バージョンは時期によって変わることがあります。
Pythonのインストールにはpipパッケージも一緒に入ります。インストールされてるか確認するにはTerminalかPowershellで入力:
これも以下のような結果になるはずです*

* こちらもバージョンは時期によって変わります。
もし何らかの理由でPIPがまだインストールされてなかったら、TerminalかPowershellを開いて入力:
fridaをインストールするにはTerminalかPowershellに入って入力:
後で重要になるので、どのバージョンがインストールされたかどこかにメモしておいてください。*(バージョンは黄色でマークされてます)

* バージョンは人によって違うことがあるのでよく確認してください。
次にfrida-toolsが必要になります。これはTerminalかPowershellで入力してインストールできます:

Android Studioのインストールと最初の仮想スマホの作成
Android Studioをダウンロード https://developer.android.com/studio

そしてインストール手順を進めてください。
インストール後、Android Studioを開いてください。
設定のほとんどはデフォルトのままでOKです。ライセンスの部分に来たら、finishボタンがハイライトされるまで全部acceptを押してください。

インストール後Android Studioが開き、下の画像のように「新しいプロジェクトを作成」というオプションが出ます:

この段階でエラーが出た場合、デバイスの仮想化が有効になっているか確認する必要があります。
この投稿を読んでください:https://simpcityopen.com/threads/81957/
次に「phone and tablet」を「empty activity」で選んでnextをクリック、下の画像のように:

次に最小SDKをAndroid 9.0(Pie)以上に選択、下の画像のように:

新しいデバイスを作るにはdevice managerボタンを押して「create device」をクリック、下の画像のように:

Pixel 6を検索して選択し、nextを押してください。

まずOSをダウンロードする必要があるので、欲しいバージョン*の横のダウンロードアイコンを押してください。(*Android 9.0以降を選んでください。)

ダウンロードが終わったら再度バージョンを選択してnextを押し、新しいデバイスの設定を完了してください。
仮想スマホにFrida-serverをインストールする
次は仮想スマホにfridaをインストールします。ここからPCにfridaをダウンロード:https://github.com/frida/frida/releases、pipでfridaをインストールしたときに黄色でハイライトされてた正しいバージョンで「frida-server」を検索して、必ずandroid-x86バージョンを選んでください、下の画像のように:

ダウンロードしたファイルをデバイスの以下の場所に展開してください:
Winrarか7zipを使ってください。(もしくは似たようなもの。)
そしてこんな感じでそのまま置いておいてください:

--
2つの方法のどちらかを選んでください:
自動化された方法:https://simpcityopen.com/threads/81957/
ツールを展開したフォルダでTerminalかPowershellを開いてください。いくつかやり方があります。
  • (Windows 10/11) Shift + 右クリック > Terminal/Powershellで開く。(1枚目の画像)
  • (Windows 11) 右クリック + その他のオプションを表示 > Terminalで開く。(1枚目の画像)
  • (Windows 10/11) パスバーに「CMD」と入力してENTERを押す。(2枚目の画像)
オプション1と2

オプション3

TerminalかPowershellで入力:
代わりにこれを試してください:
(前に「.\」を付けてください。)
エミュレーターが見えるはずです。

Android Studio > Device Managerに行って仮想スマホのplayボタンを押して、仮想スマホをちゃんと起動しているか確認してください。
(playボタンがstopボタンに変わり、下にスマホが表示されるはずです。)
それでうまくいかない場合は以下のフォルダに行ってください:
TerminalかPowershellを開いて入力:
代わりにこれを試してください:
(前に「.\」を付けてください。)
仮想スマホの名前が見えるはずです。スマホを起動するには以下を入力:
例:

これで仮想スマホが動いています。
続けて以下のコマンドを入力してください。今どのバージョンを使うべきか必ず確認してください:

スマホに「挿入」されたら、以下のコマンドを入力してスマホにアクセスしてください(この部分が難しかったら例の画像を見てください):
例:

このTerminalかPowershellは開いたままにしておいてください!
Dumperスクリプトの設定
PC(仮想スマホではなく)で以下のgithubへ行ってhttps://github.com/wvdumper/dumper、緑の「Code 」ボタンを押して「Download zip」を押してください。
image4cd8d25dcc2e386a.png

zipファイルを好きな場所に展開してください。(自分はダウンロードフォルダに置いたままです)フォルダに入ってrequirements.txtファイルをメモ帳で開いてください。
image65b962c80078751b.png

以下の行をファイルに追加してください:
今こんな感じになってるはずです:
image920bcc60ebad9b1b.png


ファイルを保存して新しいTerminalかPowershellを開いてください。(前のを開いたままにして。)
ターミナルかpowershellは右クリックしてterminal/powershellを選ぶ(1)か、パスバーに「CMD」と入力する(2)ことで開けます。
オプション1

オプション2

2つ目のterminalかpowershellで入力:
必要なパッケージのインストールが終わったら以下を入力してください:
こちらのTerminalかPowershellも開いたままにしておいてください!
Dumperスクリプトでキーを取得する
最後に仮想スマホを使ってchromeで以下のサイトに移動してください:https://bitmovin.com/demos/drm
サイトが保護された動画を再生していいか聞いてきます。許可を押してください。
少し下にスクロールして動画が見えたらplayを押してください。
2つ目のterminalかpowershellで何かしらの動きが見えるはずです。それはうまくいったということです!🎉
それを確認するために、dumper-mainフォルダに入って「key_dumps」フォルダがあるか確認してください:

さらにフォルダの奥に入っていくと「private_keys」があるので、この2つのファイルが見えるまで進んでください:

これらのファイルを以下のようにリネームしてください:
元の名前新しい名前
client_id.bindevice_client_id_blob
private_key.pemdevice_private_key
拡張子も必ず変えてください、リネームすると自動でそうなるはずです。
ファイルの種類がBINやPEMファイルではなく単に「ファイル」になったか確認してください。*

*これは比較のためのものです、実際には2つのファイル(device_client_id_blobとdevice_private_key)だけになります
これでスクレイピングツール用にキーを使う準備ができました。
(下にいくつかのスクレイパーのガイドを作る予定です、こちらも理解しやすくついていきやすいものを目指します。)
その間、こちらの既存のガイドに従って自分で試してみることもできます:
https://simpcityopen.com/threads/2257/
 
ナイス、ありがとう :peepolove:
自分のOFガイドの関連投稿にリンク貼って、みんなをここに誘導しといたよ
 
ありがとう!keyの抽出に成功した後、Android StudioとかPythonとかをアンインストールしちゃダメな理由ってある?それともkeyって時間が経つと失効して再生成が必要になる感じ?
 
pythonは大体のスクレイパーで使うから常にインストールしといた方がいいよ。
Android Studioも入れっぱなしにしとくのがベスト、生成したkeyがしばらくすると使えなくなることがあるから。(そうすれば今後の手間が省ける)
 
手間を少し省けるバッチスクリプトを作ったよ、adb.exeに手動で入ったりしなくて済む。https://github.com/sim0n00ps/L3-Dumping どのパスがどこに行くかできるだけ説明したつもり。
あとTipsとして、Helpers/Scanner.pyの44行目のファイル名を"client_id.bin"から"device_client_id_blob"に、47行目を"private_key.pem"から"device_private_key"に変えるといい。後でファイル名変更したり拡張子消したりする手間が省ける。
 
めちゃくちゃうまく動く!ガイドに「自動」バージョンとして追加するわ
 
こんにちは、チュートリアルに沿って進めているんですが、うまくいかない部分があって少し助けをお願いしたいです。
具体的には、ステップバイステップの手順に沿って自動方式を選び、全ステップを終えたらデバイスを起動して'run.bat'を実行します。
確かに2つのコマンドラインが開きます。ただ、次のステップに進むと、コマンドラインの片方に何か動きがあるはずと書いてあるのですが、自分の場合は何も起こりません。また、'dumper-main'フォルダ内に新しいフォルダも出てきません。何度もやり直しましたが同じ問題が続いています。コマンドラインのスクショを添付します。誰かアドバイスいただければ幸いです。よろしくお願いします。
https://i.pixl.li/246574e7dad017050.png
https://i.pixl.li/1e172e8a70f4c7dd0.png
 
俺のミス。(requirementsスクリプトも実行しないといけないの言い忘れてた)ガイドに追加しとくよ!
 
どうも、自動方式で全部動くようになったのは、クライアントファイルの名前を変えてcdmフォルダに入れた後だけなんだ。ただ、OFのダウンローダーでblobファイルが見つからない。device keyは見つかって、リネームしたらfileタイプに変わった。blobファイルをリネームした時はbinファイルからfileタイプに変わらなかった、それが原因かな?
 
うん、たぶんそれ。拡張子が"file"に変わる必要がある。次の画像見て:
imageddca91dc6d8f83c8.png
 
binファイルがfileに変わる方法わかる?リネームしても変わらなかった。どうすればそうなる?
 
これを有効にしてみて:
imagee05d8dc9a426ec06.png

そうすればファイルにまだ拡張子が付いてるか確認できる。(付いてたら、名前を編集する時に.binや.pemの部分を消す必要がある。Windowsが拡張子を変えていいか聞いてくるから、許可するだけでOK。次の画像を見て:)
image58f3368fe0e4ae5d.png
 
ありがとう、それでもblobファイルが見つからないってメッセージが出る。何を間違えたのかわからないから、もう一回全部やり直してみる。private keyの方は認識されてるんだけど。
 
他は全部終わってて、keyの部分だけ詰まってる。最初にこのエラーが出る "Unable to start: Error binding to address 127.0.0.1:27042: Address already in use" で、再起動すると "'adb' is not recognized as an internal or external command" って出る
 
次のを試してみて。
adbコマンドをこう呼ぶ代わりに:
これを試して:
 
このエラー何だかわかる人いる?手動でも自動でも両方出る
 
前にもこれあった気がする、結局デバイスを削除してプロセスを最初からやり直した
 
それも試したけどダメだった
手動の方法で、requirementsは満たしてるのに、まだ ModuleNotFoundError: No module named 'frida' が出る
 
戻る
トップ