npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@emdzej/nfsx-ms45

v0.4.0

Published

MS45 DME flashing helpers — offline CRC-32/MPEG-2 checksum verify/rewrite, RSA-1024 firmware signing, security-access payload builder, and (Stage 2+) SGBD-driven flash session for BMW MS45.0 / MS45.1 engine control units.

Downloads

70

Readme

@emdzej/nfsx-ms45

MS45 DME flashing helpers for BMW E46 (MS45.0) and E60/E65 (MS45.1) engine control units.

Stage 1 (this release) — offline BIN helpers:

  • CRC-32/MPEG-2 verification + recompute for the parameter blob and the dual program checksums that span external flash + MPC flash.
  • RSA-1024 firmware signing for the parameter and program blobs, with MD5 hashing over the segments named in each blob's header.
  • Security-access payload builder (MD5-then-RSA over userID + serialNumber + seed) — the wire-side blob EDIABAS's authentisierung_start job expects.
  • Region tables + segment-header parsers.

Stage 2 (next)Ms45Session: SGBD-driven identify / read / erase / write / verify orchestration over EmbeddedEdiabas.

Attribution

This package is a clean-room reimplementation of the wire-level behavior and firmware layout documented by:

  • terraphantm/MS45-Flasher — the original open-source MS45 flasher (GPL-3.0). The RSA moduli and private exponents shipped in this package were first published in that project's Checksums_Signatures.cs.
  • hassmaschine — DME disassembly and protocol reverse-engineering.
  • bimmerlabs — ongoing MS45 tuning work.

No source code was copied. Everything here was written from scratch against the wire-level facts (job names, byte layouts, CRC polynomial, address maps, RSA constants) that the referenced projects made public.

License

PolyForm Noncommercial 1.0.0 — inherited from the parent monorepo. See the repository root LICENSE for terms.

Safety

Every write path in this package can brick an MS45 DME. Read the top-level docs/first-flash-runbook.md before running anything that touches an ECU.