過去にRD-XS53で地上アナログ放送を録画したダビング可能なものが、HDDやDVDドライブのエラーでコピーワンス(「コピー×」マークが付く)になってしまい、泣く泣くDVD-RやDVD-RAMにムーブ(移動)したものを救出するため、CPRMディスクをコピーする方法を参考にしてCPRMの解除をやってみた。
必要なツールのダウンロードと解凍
まずはBlu-ray CPRM Ripping Masterから、lernel32.dll、c2dec、cprmgetkey041を、AutoUnCPRM (略称:AUC)から、AutoUnCPRM037.cabを、あとはここからcprmauto001.zipを、最後にバイナリエディタ Bzをダウンロードし、Noah等を使って全て解凍する。
c2decは解凍する際にパスワードを聞かれるので「sage」と入力する。
cprmgetkey041の書き換え
cprmgetkey041は2007年7月までしか使えないので、lernel32.dllを使って期限解除できるように書き換える。
Bz.exeを起動して、Ctrl+O(Ctrlキーを押しながらOキーを押す)で「cprmgetkey.exe」を開き、Ctrl+Fで「KERNEL32.DLL」と入力してEnterキーを押し、Ctrl+Wの後に「L」と入力してCtrl+Sで上書き保存して終了する。
判らなければ、地デジ録画DVDをrelCPRMでリッピングを参考に。
必要なファイルの準備
適当なフォルダに、これまでに解凍した中からlernel32.dll、cprmgetkey.exe、c2dec.exe、ifocopy.exe(AutoUnCPRM037.cabに含まれている)、dvdread.bat(cprmauto001.zipに含まれている)、dvdwrite.bat(cprmauto001.zipに含まれている)を用意して、dvdread.batとdvdwrite.batのショートカットを作成する。
DVD-R/RW/RAMのCPRM解除
dvdread.batをダブルクリック等して実行するか、マイコンピュータにあるDVDドライブのアイコン(もしくはDVDドライブ内の適当なファイルかフォルダ)をdvdread.batのショートカットにドラッグ&ドロップすれば、コピーワンス解除されたものが(dvdread.batと同じフォルダにある)DVDVRフォルダの中に作られる。ただし、ファイナライズしていないDVD-RやDVD-RWはB's CLiP等を入れていない読めないと思われるので注意。(2010/04/13更新)
DVDフォルダのDVD_RTAVフォルダにあるVR_MOVIE.VROは、ただのMPEG-2データなので動画再生ソフト(Media Player Classic Homecinema等)で開けば再生できるハズ。
CPRM解除したものをDVD-RAMに保存
DVDドライブにDVDレコーダーで初期化したDVD-RAMを入れ、dvdwrite.batをダブルクリック等して実行するか、先ほどと同様にDVDドライブのアイコンをdvdwrite.batのショートカットにドラッグ&ドロップすれば、コピーワンス解除されたものがDVD-RAMに保存される。
このDVD-RAMはDVDレコーダーで再生やHDDへのダビング等が出来るし、HDDにダビングしたものからDVD-Videoを作成することも出来るハズ。
DVD-RAMに書き込みが出来ない場合
Windows XPはDVD-RAMを認識するが、FAT32フォーマットでなければ書き込みが出来ないので、DVDレコーダーで初期化したUDF2.0フォーマットに書き込むにはDVD-RAMのドライバが必要になる。
DVDドライブに添付されていない場合は、東芝ダイレクトの海外サイトで配布しているDVD RAM Driver Software for Windows XP/2000をインストールしておけばいい。Unzipして解凍した後は日本語なので安心。
バッチファイルdvdread.batの内容
バッチファイル「dvdread.bat」は以下の内容をメモ帳などで保存して作成できる。(2010/04/13更新)
@ECHO OFF SETLOCAL FOR %%I IN (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z: %~d1) DO IF EXIST %%I\DVD_RTAV\VR_MOVIE.VRO SET DVD=%%I IF "%DVD%"=="" ECHO DVD が見つかりません&&PAUSE&&EXIT /B ECHO ドライブ %DVD% の DVD を使用します FOR /F "usebackq tokens=1-3" %%I IN (`"%~dp0cprmgetkey.exe" %DVD%`) DO IF "%%I %%J"=="ContentsKey Base64:" SET KEY=%%K IF "%KEY%"=="" ECHO ContentsKey が読み取れません&&PAUSE&&EXIT /B ECHO ContentsKey は %KEY% です ECHO VR フォルダを作成します IF EXIST "%~dp0VR" RMDIR /S /Q "%~dp0VR" FOR /R %DVD%\ %%I IN (.) DO IF NOT EXIST "%~dp0VR%%~pnxI" MKDIR "%~dp0VR%%~pnxI" ECHO VRO ファイルの暗号化を解除しています "%~dp0c2dec.exe" -R %KEY% %DVD%\DVD_RTAV\VR_MOVIE.VRO "%~dp0VR\DVD_RTAV\VR_MOVIE.VRO" IF ERRORLEVEL 1 ECHO VRO ファイルの暗号化解除に失敗しました&&PAUSE&&EXIT /B ECHO IFO ファイルの暗号化を解除しています "%~dp0ifocopy.exe" %DVD%\DVD_RTAV\VR_MANGR.IFO "%~dp0VR\DVD_RTAV\VR_MANGR.IFO" IF ERRORLEVEL 1 ECHO IFO ファイルの暗号化解除に失敗しました&&PAUSE&&EXIT /B ECHO その他のファイル群をコピーしています FOR /R %DVD%\ %%I IN (*.*) DO IF NOT EXIST "%~dp0VR%%~pnxI" COPY %%I "%~dp0VR%%~pnxI" ECHO VR フォルダに暗号化解除した DVD が出来ました PAUSE ENDLOCAL EXIT /B
@ECHO OFF SET DVD=%1 SET DVD=%DVD:~0,1% "%~dp0cprmgetkey.exe" %DVD%: > "%~dp0CPRMKEY.TXT" FOR /F "eol=- delims=" %%I IN ('FIND "ContentsKey Base64: " "%~dp0CPRMKEY.TXT"') DO SET KEY=%%I SET KEY=%KEY:~20% RMDIR /S /Q "%~dp0DVD" XCOPY /S /E /I /G /H /K %DVD%:\*.* "%~dp0DVD\" MOVE /Y "%~dp0DVD\DVD_RTAV\VR_MOVIE.VRO" "%~dp0" "%~dp0c2dec.exe" -R %KEY% "%~dp0VR_MOVIE.VRO" "%~dp0DVD\DVD_RTAV\VR_MOVIE.VRO" MOVE /Y "%~dp0DVD\DVD_RTAV\VR_MANGR.IFO" "%~dp0" "%~dp0ifocopy.exe" "%~dp0VR_MANGR.IFO" "%~dp0DVD\DVD_RTAV\VR_MANGR.IFO" SET DVD= SET KEY=
- 1行目は実行中のコマンドを表示しない
- 2行目はドラッグ&ドロップされたパス名、もしくはコマンドプロンプトから実行した際の1つ目のオプションを環境変数DVDに格納
- 3行目はcprmgetkey.exeでDVDドライブを指定して、入っているCPRM対応DVD-R/RW/RAMとDVD_RTAVフォルダのVR_MANGR.IFOからCPRM解除キーを調べ、CPRMKEY.TXTに保存
- 4行目はFINDコマンドでCPRMKEY.TXTから「ContentsKey Base64: 」が含まれる行だけを抽出して、FORコマンドで「-」で始まるファイル名を無視(eol=-)、区切り文字なし(delims=)を指定し、環境変数KEYに「ContentsKey Base64: 」が含まれる行を格納
- 5行目は環境変数KEYの先頭20文字分(ContentsKey Base64: )より後を環境変数KEYに格納し直す
- 6行目はDVDフォルダがあったら削除
- 7行目はDVDドライブから全てのフォルダとファイルをDVDフォルダを作成してその中にコピー
- 8行目はDVDフォルダのDVD_RTAVフォルダからVR_MOVIE.VROをc2dec.exeと同じフォルダに移動
- 9行目はc2decで-Rオプションを指定(RDI PackのCGMS/APSTB/EPNを削除)してVR_MOVIE.VROのCPRMを解除したものをDVDフォルダのDVD_RTAVフォルダにVR_MOVIE.VROとして保存
- 10行目はDVDフォルダのDVD_RTAVフォルダからVR_MANGR.IFOをifocopy.exeと同じフォルダに移動
- 11行目はifocopyでVR_MANGR.IFOのコピーフラグなどを解除したものをDVDフォルダのDVD_RTAVフォルダにVR_MANGR.IFOとして保存
- 12行目、13行目は環境変数DVDとKEYを使い終わったので解放
バッチファイルdvdwrite.batの内容
バッチファイル「dvdwrite.bat」は以下の内容をメモ帳などで保存して作成できる。(2010/04/13更新)
@ECHO OFF SETLOCAL FOR %%I IN (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z: %~d1) DO IF EXIST %%I\DVD_RTAV\VR_MOVIE.VRO SET DVD=%%I IF "%DVD%"=="" ECHO DVD が見つかりません&&PAUSE&&EXIT /B ECHO ドライブ %DVD% の DVD に書き込みます RMDIR /S /Q %DVD%\ XCOPY /S /E /G /H /K "%~dp0VR\*.*" %DVD%\ ECHO 終了しました PAUSE ENDLOCAL EXIT /B
@ECHO OFF SET DVD=%1 SET DVD=%DVD:~0,1% RMDIR /S /Q %DVD%:\ XCOPY /S /E /G /H /K "%~dp0DVD\*.*" %DVD%:\ SET DVD=
動作確認したDVDドライブ
今回使用した環境はThinkPad X40(2371-GDJ)のWindows XP Professional SP3で、DVDドライブはPanasonicのUSB接続ポータブルDVDマルチドライブ LF-P967Cを使用。他にもいくつか確認したcprmgetkey041対応のDVDドライブを以下に列挙。
- Panasonic LF-P967C (MATSHITA DVD-RAM LF-P967 USB Device)
- Panasonic LF-P767C (MATSHITA DVD-RAM LF-P767 USB Device)
- Panasonic UJ-812B (MATSHITA DVD-RAM UJ-812) IBM FRU P/N:92P6110 ASM P/N:92P6109
- TOSHIBA SD-R2412 (TOSHIBA DVD-ROM SD-R2412)
一応、参考までに対応だった時のログなんぞも。(表示されてる値はそのまま出すとナンなので適当に書き換えてる)
C:\>cprmgetkey e: CPRM ContentsKey Get Ver 0.41 by taku MKB_TBL_I: 0 MediaKey: 53 91 48 46 f5 cf 5a titleKey: 74 f1 bb 49 31 b2 a0 1b disk_Id: 69 03 b3 6e 10 00 d0 12 ContentsKey: 83 84 9e 4f 93 a4 85 ContentsKey Base64: AUxJOEjp7F= C:\>
逆にcprmgetkey041非対応(もしくはCPRM非対応かDVD-RAM非対応)だったDVDドライブも以下に列挙。
- Panasonic UJDA745 (MATSHITA UJDA745 DVD/CDRW) IBM FRU P/N:08K9865 ASM P/N:08K9862
- Hitachi-LG Data Storage GCC-4242N (HL-DT-ST RW/DVD GCC-4242N) IBM FRU P/N:13N6769 ASM P/N:13N6768
- Microsoft Xbox 360 HD DVD プレーヤー (TOSHIBA DVD/HD X807616 USB Device)
一応、参考までに非対応だった時のログなんぞも。
C:\>cprmgetkey e: CPRM ContentsKey Get Ver 0.41 by taku Error code: 52400 Error code: 52400 Error code: 52400 Error code: 52400 Error code: 52400 MATSHITAUJDA745 DVD/CDRW1.02302170KME14130133061 msg: 21 C:\>cprmgetkey e: CPRM ContentsKey Get Ver 0.41 by taku Error code: 35700 TOSHIBA DVD/HD X807616 MC0810/03/06 msg: 1 C:\cprmauto>cprmgetkey d: CPRM ContentsKey Get Ver 0.41 by taku Error code: 52400 Error code: 52400 Error code: 52400 Error code: 52400 Error code: 52400 HL-DT-STRW/DVD GCC-4242N02010BIBA 03/12/18 msg: 21 C:\>