MrPepka wrote:I did some research on this topic and in general a few projects can help me in dismantling the firmware:
ala42's program MCSE - http://ala42.cdfreaks.com/MCSE/
scanlime's project CoasterMeIt - https://github.com/scanlime/coastermelt
Repository for firmware's, patcher's etc for CD/DVD drives - http://forum.rpc1.org/
Devilsclaw's project Flasher - https://github.com/devilsclaw/flasher
The first program is only for removing the region lock, but maybe if you disassemble this program, its source code would help you understand how it works (after all, this program accesses the CD / DVD drive firmware directly), the second project is an attempt to reverse engineer the firmware for CD drives Samsung / DVD (the project is undeveloped, but its resources have been left, so maybe there would be some use for it? The third project is a page with various firmware, patchers, etc., etc. for CD / DVD drives, so disassembly at least these patchers may in this topic And the fourth project is also an attempt to dismantle the firmware for the CD / DVD drive, but this time for LG drives. This project (like the rest of the others) is not being developed either, but its resources and source code are still on GitHub so maybe it could also help in something?
I haven't thought about this for a while, but I'm looking for an excuse to get going on a nice RE project, so maybe I'll look into it again as I have time. Full disclosure, though: I'm not remotely good at RE. At all. I haven't even done any serious assembly language work in years.
In any case, my suspicion is that there are definitely people around who have done enough reversing on CD/DVD drive firmwares to be able to do something like this in a jiffy, but a lot of those people are probably long gone to working on newer projects.
But, at least for older drives that don't bother with any kind of encryption / signature for the firmware, it should be possible to pretty easily modify any behavior that's present in the firmware. One issue is going to be that some behavior is surely happening at a lower level. For example, I suspect the actual descrambling on most drives would be done in hardware just using a scrambling table and an XOR. However, something like blocking 0xBE from working on data discs is probably (?) handled at the firmware level. Thus, while maybe it wouldn't be possible to directly play with the descrambling code, it might be possible just to bypass the check that disallows 0xBE on data discs.
It may even be the case that someone out there has a debug firmware that allows manipulating memory values in the drive. If that were the case, it maybe would be as simple as just using such a firmware and then sending a debug command to alter the memory region holding the TOC after a disc was inserted. I.e., change it so that the drive thinks the data track is an audio track.
I would imagine at least some parts of this are doable without huge effort for someone who knows what they're doing. Unfortunately, that someone is not me. But, I'm willing to take another look at it, especially if someone gets some leads.