extdrm

package module
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 25, 2025 License: MIT Imports: 17 Imported by: 0

README

extdrm

A tool for decrypting extdrm encrypted filesystems

Usage

extdrm utility

Usage:
  extdrm [command]

Available Commands:
  dump        Decrypt the contents of an encrypted extdrm filesystem
  help        Help about any command
  presets     List built-in presets
  verify      Verify the integrity of a filesystem dump

Flags:
  -h, --help   help for extdrm

Use "extdrm [command] --help" for more information about a command.

To dump the contents of an encrypted filesystem, simply run extdrm dump SOURCE DESTINATION.

After a successful dump, you may perform a file check by running extdrm verify DESTINATION.

Presets

Presets are responsible for controlling the decryption process. The dumper comes included with several built-in presets.
The dumper will try to automatically determine the correct preset to use, so most users won't have to worry about manually specifying one.

List of built-in presets and their respective games:

Arcade
  • drs: DANCERUSH STARDOM
  • iidx: beatmania IIDX 30 RESIDENT ~ current
  • sdvx: SOUND VOLTEX VIVID WAVE ~ current
  • dance_around: DANCE aROUND
  • polaris: Polaris Chord
コナステ/Konasute:
  • eac/bonga: Bombergirl
  • eac/ddr: DanceDanceRevolution GRAND PRIX
  • eac/gitadora: GITADORA
  • eac/infinitas_2020: beatmania IIDX INFINITAS 2020
  • eac/infinitas_2020_cache: beatmania IIDX INFINITAS 2020 (cache)
  • eac/infinitas_2024: beatmania IIDX INFINITAS 2024
  • eac/infinitas_2024_cache: beatmania IIDX INFINITAS 2024 (cache)
  • eac/nost: NOSTALGIA
  • eac/popn: pop'n music Lively
  • eac/sdvx: SOUND VOLTEX EXCEED GEAR

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuiltinPresetNames added in v0.3.0

func BuiltinPresetNames() []string

func ReadFS

func ReadFS(root string, config *DrmConfig) (chan fsdump.File, error)

Types

type DrmConfig

type DrmConfig struct {
	KeySalt       []byte        `json:"key_salt"`
	PathSalt      []byte        `json:"path_salt"`
	Magic         *big.Int      `json:"magic"`
	DisableCRC    bool          `json:"disable_crc"`
	SaltGenerator SaltGenerator `json:"salt_generator"`
}

func LookupBuiltinPreset added in v0.3.0

func LookupBuiltinPreset(name string) *DrmConfig

type Metadata

type Metadata struct {
	Files []MetadataEntry `json:"files"`
}

type MetadataEntry

type MetadataEntry struct {
	DPath string
	SPath string
	SSha1 string
}

func (*MetadataEntry) UnmarshalJSON

func (entry *MetadataEntry) UnmarshalJSON(b []byte) error

type SaltGenerator

type SaltGenerator int
const (
	SV6CloudGenerator SaltGenerator = iota + 1
)

func (SaltGenerator) KeySalt

func (sg SaltGenerator) KeySalt(salt []byte, path string) []byte

func (SaltGenerator) PathSalt

func (sg SaltGenerator) PathSalt(salt []byte, path string) []byte

type VerifyResult

type VerifyResult struct {
	Time time.Time `json:"time"`

	Broken       []string `json:"broken"`
	Missing      []string `json:"missing"`
	TotalBroken  int      `json:"total_broken"`
	TotalMissing int      `json:"total_missing"`
	TotalFiles   int      `json:"total_files"`
}

func VerifyFS

func VerifyFS(root string, metadata *Metadata) (*VerifyResult, error)

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL