extdrm

package module
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2024 License: MIT Imports: 15 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 extdrm encrypted filesystem
  help        Help about any command
  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 PRESET.

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

Presets

This repository includes several preset files responsible for controlling the decryption process. These preset files can be found under the presets directory.

List of included preset files and their respective games:

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ReadFS

func ReadFS(config DrmConfig, root string) (chan DrmFile, 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"`
}

type DrmFile

type DrmFile struct {
	io.Reader
	io.Closer
	Path string
}

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