記事非公開のお話 & DJmainのHDDパスワードのお話

日常

+2

純正じゃない疑惑が強くなりまして

購入した5thMIXのROM&HDDのコピー&復号化済の疑惑が生じました。



さすがにそれは正当な吸出しなのか?
(特にHDD)と疑問符が付いちゃうので
記事を2つほど(HDDイメージ吸出しと動作確認)を非公開にしました
ほんとうに申し訳ないです。

アーケード界隈だと、メーカー保守終了後の
ユーザー修理ではよくある事なんでしょうけども
やっぱり購入前には最低でも外見とICのチェックが必要でした(深く反省

正規のイメージ化の手順
4thMIX以後は基板でゲームを起動することでHDDの暗号化を解除
HDDへの電源供給を維持しつつ、基板からHDDを取り外し
OS起動を一時的に止めておいたPCにHDDを接続
OS起動後にWINHEXでイメージ化するという手法となっています。(参照

※パスワードが現状全て判明してるので
後述するhdparmでlinux上から直接暗号化の解除が可能かもしれません(未検証)
以下、実機でのHDD交換の情報として掲載します。

5鍵ビートマニアの HDDパスワードについて(実機用・未検証

CF化は海外サイトだと、うまく動かなかったという話を見ましたが
どうも4thMIX以後の製品は、HDDのマスターおよびユーザーに
パスワードがかかってるようです(MAMEソース最下段ちょい上を参照

先に記載したツイートから、復号化済イメージでそのまま動作する場合もあるようですが
パスワードをかけないとエラーで止まる事例もあるようです。(基板のバージョン次第?)
恐らく自分が手にしたものは、前者のような環境で利用されたものだったのかなと。

/*************************************
 *
 *  Driver-specific init
 *
 *************************************/

static DRIVER_INIT( beatmania )
{
	UINT8 *region;

	region = new_memory_region(machine, REGION_SOUND1, 0x80000 * 32, 0);

	/* spin up the hard disk */
	ide_controller_init(0, &ide_intf);
}

static const UINT8 beatmania_master_password[2 + 32] =
{
	0x01, 0x00,
	0x4d, 0x47, 0x43, 0x28, 0x4b, 0x29, 0x4e, 0x4f,
	0x4d, 0x41, 0x20, 0x49, 0x4c, 0x41, 0x20, 0x4c,
	0x49, 0x52, 0x48, 0x47, 0x53, 0x54, 0x52, 0x20,
	0x53, 0x45, 0x52, 0x45, 0x45, 0x56, 0x2e, 0x44
};

(略)

static DRIVER_INIT( bm5thmix )
{
	static const UINT8 bm5thmix_user_password[2 + 32] =
	{
		0x00, 0x00,
		0x44, 0x42, 0x56, 0x4b, 0x37, 0x35, 0x4a, 0x23,
		0x5a, 0x52, 0x0c, 0x3e, 0x60, 0x04, 0x6c, 0x78,
		0x77, 0x7e, 0x74, 0x16, 0x6c, 0x7d, 0x00, 0x16,
		0x6b, 0x1a, 0x1e, 0x06, 0x04, 0x01, 0x7d, 0x1f
	};

	driver_init_beatmania(machine);

	ide_set_master_password(0, beatmania_master_password);
	ide_set_user_password(0, bm5thmix_user_password);
}
(略)
static DRIVER_INIT( bmfinal )
{
	static const UINT8 bmfinal_user_password[2 + 32] =
	{
		0x00, 0x00,
		0x44, 0x42, 0x56, 0x4b, 0x3f, 0x4f, 0x4a, 0x23,
		0x5a, 0x52, 0x0c, 0x3e, 0x07, 0x04, 0x63, 0x7f,
		0x76, 0x74, 0x6a, 0x64, 0x7e, 0x68, 0x0c, 0x0c,
		0x0c, 0x06, 0x71, 0x6e, 0x77, 0x79, 0x7d, 0x7a
	};

	driver_init_beatmania(machine);

	ide_set_master_password(0, beatmania_master_password);
	ide_set_user_password(0, bmfinal_user_password);
}
#endif

マスターパスワードは共通で使われていますが
ユーザーパスワードは各タイトルごと個別になっているようです。

ちなみに3rdMIXまではパスワードはかかっていないので
単純コピーで動作すると思われます。

HDDへのパスワード設定(実機起動用・動作未確認&未検証)

Mameコードに記載の最初の00 00または01 00は
(おそらく)フラグなので無視しましょう。
他のバージョンは先に記載のMAMEソースに記載があるので、各自確認してください。

Master Password
ASCII
MGC(K)NOMA ILA LIRHGSTR SEREEV.D
HEX
4d4743284b294e4f4d4120494c41204c49524847535452205345524545562e44

5thMix UserPassword
ASCII
DBVK75J#ZR>`lxw~tl}�k}
HEX
4442564b37354a235a520c3e60046c78777e74166c7d00166b1a1e0604017d1f

Beatmania Final UserPassword
ASCII
DBVK?OJ#ZR>cvtjd~hqnwy}z
HEX
4442564b3f4f4a235a520c3e0704637f76746a647e680c0c0c06716e77797d7a

ユーザーパスワードは制御文字が含まれているので
linuxでhdparm version 9.46 以後を使い、HEXでパスワードを入力しないとダメだと思います。

類似のXBOXの事例ですが、更新された答えにあるコマンドをパクって
HEXでユーザーパスワードとマスターパスワードを変更すれば起動する可能性が高いです。
ただし1000円以下の安いUSB変換機経由では、うまくいかないかもしれません。

ユーザーパスワードの設定方法

hdparm --user-master u --security-set-pass hex:(パスワードをhexで記述) /dev/(対象HDD)

–user-master mにするとマスターパスワードが設定可能だとの話です(未確認)。
マスターから入れたほうがいいかもしれません。
DJMAIN基板でHDDの交換に悩まれている方で、この方法が解決につながれば幸いです。

+2

日常

Posted by Richard Roe