Nine Point Mulligan

    netmd-exploits
    TypeScript icon, indicating that this package has built-in type declarations

    0.4.3 • Public • Published

    netmd-exploits

    What is it?

    netmd-exploits is a library aiming to store all the available exploits for Sony NetMD devices.

    What exploits are available?

    The exploits currently available are:

    Exploit name Firmware Versions* compatible JavaScript class name
    Firmware Dumping All versions supported FirmwareDumper
    USB Code Execution S1.600, S1.500, S1.400, S1.300, S1.200, S1.100, S1.000, R1.400, R1.300, R1.200, R1.100, R1.000 USBCodeExecution
    Tetris BLOCKED Tetris
    Force TOC Flushing S1.600, S1.500, S1.400, S1.300, S1.200, S1.100, S1.000, R1.400, R1.300, R1.200, R1.100, R1.000 ForcedTOCEdit
    Atrac USB Control Transfer S1.600, S1.500, S1.400, S1.300, S1.200, S1.100, S1.000, R1.400, R1.300, R1.200, R1.100, R1.000 CachedSectorControlDownload
    Atrac USB Bulk Transfer S1.600, S1.500, S1.400, S1.300, S1.200, S1.100, S1.000 CachedSectorBulkDownload
    SP Faster Upload S1.600 SPFasterUpload
    EEprom Write Lock S1.600, S1.500, S1.400, S1.300, S1.200, S1.100, S1.000, R1.400, R1.300, R1.200, R1.100, R1.000 KillEepromWrite
    Disc Spinning Notifier** S1.600, S1.500, S1.400, S1.300, S1.200, S1.100, S1.000, R* WaitForDiscToStopSpinning

    *The firmware versions listed here consist of the SOC type letter:

    • R - CXD2677 (Type R)
    • S - CXD2678 / CXD2680 (Type S)

    And the actual firmware version reported by the device.

    **WaitForDiscToStopSpinning only supports Type-S devices, on Type-R it always waits 10 seconds.

    Examples

    Unit SoC Firmware version netmd-exploits firmware version
    Sony MZ-N510 CXD2680 1.600 S1.600
    Sony MZ-N710 CXD2680 1.600 S1.600
    Sony MZ-N1 CXD2677 1.200 R1.200
    Sony MZ-N10 CXD2678 1.200 S1.300

    Hacking

    If you would like to help with adding compatibility for your device, pull requests are welcome.

    An exploit's structure

    The library keeps track of what exploits are compatible with what versions with the help of src/compatibility.ts. Every exploit class has to inherit the Exploit abstract class. It provides multiple functions which make it easier to load the correct versions of exploits for every firmware version. The constants that depend on the firmware version are stored in a VersionStore map returned from getPropertyStore(), from which it's possible to get values by calling getProperty, or by referencing their names in assembly code, prefixed with a '$'. Every exploit class has to also define a static _name const, used for compatibility checking.

    The inbuilt assembler

    The assembler has full support for macros (prefixed with '@'), VersionStore constants (prefixed with '$'), as well as variables, passed to the assemble function (prefixed with '%').

    The macros available for every assembly program are stored in src/assembler/core-macros.ts.

    Happy hacking!

    Credits

    The assembler built into netmd-exploits is a modified version of keystone-js by AlexAltea

    Install

    npm i netmd-exploits

    DownloadsWeekly Downloads

    9

    Version

    0.4.3

    License

    GPL-2.0

    Unpacked Size

    6.11 MB

    Total Files

    87

    Last publish

    Collaborators

    • asivery