Simulate inferior error correction?

error
errorcorrection
forensics

#1

If I have a drive with great error correction, what is a way to simulate inferior disc error correction to make the drive act as if it had far worse error correction?


Universal open-source optical disc drive firmwares?
#2

That’s a strange question but I’d imagine the simple answer is introduce some errors into the results.

Copy the files to hard disk then start editing them by overwriting some bits with random data. The more you overwrite, the worse it simulates.

I’m not sure if this is possible but you might also be able to deactivate error correction on the drive and see what the results are.


#3

Ah, yes.
@ceym6464 also told, that error correction can be:

  • Deactivated.
  • Activated but still return data if not 100% integrity. I wonder, whether damaged bits are identifiable.

#4

I suspect something like this may be hardware/firmware dependent.

Many years ago I tried various different scsi reading type commands on damaged dvd sectors with several different drives, and was not able to find a combination which actually returned back the erroneous data. For the most part, they just returned back a read error with no other data returned.

Somebody who has a large collection of vintage dvdr drives might be able to find a drive which does indeed return back erroneous data from sectors which it can’t error correct.


#5

What tools did you use?

In the SCSi documentation, isn’t there a command?


#6

All you need is bit comparison software then compare the original with the potentially corrupted copy.


#7

I wrote my own code.

Not everything written in the scsi standard documentation is implemented by the book.

If you really want to access uncorrected data, the only semi-easy way I can think offhand for doing this would be adapting what programs like friidump do. This method doesn’t involve using any of the generic scsi read commands directly. (Friidump primarily uses the read buffer scsi command, which may be hardware/firmware/vendor specific in its behavior).

Read the friidump code and figure out whether the methods does what you want. (ie. Write your code using similar methods and examine the dumped data).