If you know the processor running a box and it’s off the shelf then invariably there are dev tools available that can turn some representation of the firmware (give or take some kind of transpilation process) into lines of code in front of you.
But to actually make any sense of that, to debug it, to add to it; THAT is extremely hard without some reference to the original source code or dev environment. Obvious examples being variable names and code comments.
This is how the Akai MPC1000 JJ OS was possible. It was done by part of the original dev team so they had the actual proprietary development environment.
In addition something like an MD has lots of peripheral components; the screen, the buttons, the UW sampler, the +Drive etc. You have to know how the firmware interacts with all that guff too!
Very impressive stuff!