Research performed on SPADA (iidx21) legitimate hardware unless mentioned otherwise.
The USB security keys are attached to the back of the machine via a two-port USB hub. They are iKey 2032 Two-Factor USB Authentication Tokens. One appears to be used for decrypting game data and executable files ("LICENSE KEY"), while the other appears to be used for verifying e-AMUSEMENT participation with Konami servers ("ACCOUNT KEY").
The security keys are protected with a passphrase that is presumably hard-coded in the game executable or operating system config files. The iKey driver will lock out access to the security key if too many failed attempts at the passphrase are detected.
LICENSE KEY
Utility can access KONAMI root CA and public signing key. Utility output can be viewed here.
The hard disk used is a WD 320GB 2.5" drive with the following label on it: LDJ-JA beatmania IIDX20
. Presumably the drive that I have was included in a Tricoro (iidx20) kit, and at some point the contents were upgraded to SPADA without replacing the original HDD.
The drive contains a mixture of encrypted and unencrypted data. All of the game data, shared libraries, and executable files are encrypted.
The directory structure of the LDJ
directory (where game content is stored) differs between the stock installation and the one distributed by programmedworld.
programmedworld LDJ Directory Structure
C:\
000ROM.txt
boot.ini
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Embedded" /fastdetect /bootlogo /noguiboot
NTDETECT.COM
ntldr
WERUNTIME.INI
D:\
LDJ
contents
and path.lst
path.lst
contents
dev
, modules
, prop
, allfiles.lst
allfiles.lst
path.lst
dev
modules
prop
trustcerts.p7s
trustfiles.p7s
P7S file usually contains DER encoded CMS (Cryptographic Message Syntax) structure of SignedData type which is defined in RFC5652. You can use ASN.1 Editor to conveniently examine exact structure and contents of your file.
factory
systemLDJ.exe
wave
C.wav
, D.wav
, E.wav
, F.wav
)d3dx9_24.dll
D3DX9_41.dll
existd
factory.bat
factory
infodisp.exe
select.bat
Full contents of this script (converted from ShiftJIS to unicode) can be accessed here
Runs update.exe
nul
)
bootstrap.exe
with the following arguments
prop\bootstrap.xml
bm2dx_drm
prop\trustcerts.p7s
prop\trustfiles.p7s
bootstrap
bootstrap
returns a code of 0, the machine shuts downupdate.exe
bootstrap
E:\
UP
JAA2013100200
contents
(same dir structure as LDJ\contents
), LDJ131008.bsv.bak
, and path.lst
.bsv
file is probably a signature file for verifying contentsexiste
existd
F:\
existf