------------------------------------------------------------------------------ drmdbgはwmp用デバッガです。 カーネルにメモリパッチができない為 NT,2000,XP用です。9x系は使えません。 (NT未確認) ------------------------------------------------------------------------------ [wmp] exe=WMPがある所(wmplayer.exeもいる) ieCache=IEの大元のキャッシュフォルダ先(最後\付けない) 無い時は無視します stop=ブレークポイントで停止 0=しない(終了時停止する) 1=する drmclien=ブレークポイント 0=しない 1=する blackbox= indivbox= drmv2clt= wmvcore= [*.dll] 内容を変えることで多数のDLLに対応できます。(ブレーク対応DLLはiniにあるのだけ) crcxxは0-0x400のcrc32(表示します) adrxxはベースから引いたアドレス regxxはレジスタ(push xx) addxxはregxx レジスタのアドレスに追加する数値(0場合いらない) (今現在入れてるのは2000で確認したwmp9のDLL) *数値は全部16進 *crcxxにないのは自分で調べる必要あり *DLLは同じVerでもWindows Updataと拾ってきて入れたのは違うみたい その他エンコーダ等入れると違うみたい *crc表示がうざい時はcrcxxを書いてあとは適当にすればok(regxxが一致しないように) ------------------------------------------------------------------------------ 表示例 -----drm1----- drmdbg Ver 0.31 by taku CreateProcess: C:\Program Files\Windows Media Player\wmplayer.exe 010010C0 プログラム エントリー ポイント IsDebuggerPresent: memwriteret=1 callret=0 mms://wms4.navi.flets/gsd-area1/sd_12_w_1000.wmv crc: AC782817 c:\winnt\system32\drmclien.dll setbp 091B527C 50 crc: 2850B98C c:\winnt\system32\drmv2clt.dll setbp 09252BCC 50 crc: 0A3A07B3 c:\documents and settings\all users\drm\indivbox.key setbp 02E17C56 56 eax 01B268A5 pPvoLdjownRBq4QIWzgts4UWVvM= [mms://wms4.navi.flets/gsd-area1/sd_12_w_1000.wmv] CloseProces Enter key run -----drm1----- -----drm2----- drmdbg Ver 0.31 by taku CreateProcess: C:\Program Files\Windows Media Player\wmplayer.exe 010010C0 プログラム エントリー ポイント IsDebuggerPresent: memwriteret=1 callret=0 mms://stream3.highq.flets/hellopro/pv/p022/puchi_albu51_1.wmv crc: 2850B98C c:\winnt\system32\drmv2clt.dll setbp 09252BCC 50 crc: AC782817 c:\winnt\system32\drmclien.dll setbp 091B527C 50 crc: 0A3A07B3 c:\documents and settings\all users\drm\indivbox.key setbp 02EF7C56 56 esi 01B75F10 C:\Documents and Settings\*\Local Settings\Temporary Internet Files\Content.IE5\CLIRSPAB\puchi_albu51_1[1].dat cXooHU11fUqOqh5cCZ9zag== 3oPOB7roTQUU5DcJx9MTFna+cOM= [mms://stream3.highq.flets/hellopro/pv/p022/puchi_albu51_1.wmv] CloseProces Enter key run -----drm2----- *IsDebuggerPresentはmemwriteret=1 callret=0にならないと正常再生できません *Enter key runの所で一時止まります *ブレークポイントは1回止まると次は止まりません (DLLがアンロードして再ロードすれば止まります) *KIDはwmvから拾うかdrm2wmvから拾って下さい ------------------------------------------------------------------------------ ID/PAS確認について ID/PAS確認があるDRMはまず普通に承認させて下さい。 承認後再生せずdrmdbgで再生すればok。 なお、html起動標準がもじらしか試してません。IEの場合できないかも。 *indivbox.keyによっては独自の窓がでる ------------------------------------------------------------------------------ blackbox.dllについて blackboxは部分暗号化されています。該当を実行する前に復号するみたい。 なのでDLLロード時にブレーク設定ができません。 ブレークポイントが変わるのを調べてからブレーク設定をするので ミスる時がありますが何回かやればok。 ------------------------------------------------------------------------------ indivbox.keyについて C:\Documents and Settings\All Users\DRM\(標準) 内のファイルを消せばblackbox.dllに戻ります。 *indivbox.keyは拾う度に違う物に変わるような気がする ------------------------------------------------------------------------------ drmclien.dllについて drm1の時Decryptで変換処理するのでここからpushする所を探し出して下さい。 win2000+wmp9の場合 add xxx,6d push xxx があたり。この後のcallでrc4keyの処理。 ------------------------------------------------------------------------------ drmv2clt.dllについて drmv2cltはblackbox.dllやindivbox.keyのラッパーなので C00D2723を探してblackbox.dllやindivbox.keyをcallしている所を探し出して下さい。 ------------------------------------------------------------------------------ Win XPについて indivbox.keyにブレークポイントすると強制終了する場合 drmv2clt.dllの方をやってみる。 ------------------------------------------------------------------------------ IEのキャッシュについて リアルタイムで見る時IEのキャッシュフォルダに 一時保存(ライセンスによっては残る)するので探し出してkidを見つけます。 *DRM1はたぶんキャッシュしない模様なのでkidが取得できない。 *ローカルファイルは今の所表示しません ------------------------------------------------------------------------------