bchunk icon indicating copy to clipboard operation
bchunk copied to clipboard

[BUG] bchunk does not use ECC data in mode1/2352 data to correct errors when converting to iso

Open 1dolla opened this issue 6 months ago • 0 comments

A lot of (historical, if not current) CD ripping software will, or could by configuration (e.g. CDRWIN), rip a CD into a mode1/2352 bin/cue set and ignore any errors it encountered. This could be for the purpose of ripping game CDs with intentionally corrupt sectors.

A lot of regular bin/cue sets without any such copy protection concerns have been distributed with unintentional ripping errors. Most virtual drive software will gracefully use the ECC data in such bin/cue sets to correct errors on-the-fly when the image is mounted. However, if a software converts such bin/cue sets to formats without ECC data (e.g. bin/cue 2048, nrg, iso) and simply discards ECC data when converting, it will create corrupted image files.

This is apparently the case with bchunk.

E.g.:

$ bchunk regular-cd-mode-1-2352.bin regular-cd-mode-1-2352.cue good
 </snip>
 1: good.iso  656/656  MB  [********************] 100 %
$ echo $?
0
$ sudo dd if=/dev/disk0 of=regular-cd-mode-1-2352.bin bs=1 count=1 seek=200000000 conv=notrunc
1+0 records in
1+0 records out
1 byte copied, 0.014703 s, 0.1 kB/s
$ bchunk regular-cd-mode-1-2352.bin regular-cd-mode-1-2352.cue bad
 </snip>
 1: bad.iso  656/656  MB  [********************] 100 %
$ echo $?
0
$ diff good.iso bad.iso
Binary files good.iso and bad.iso differ

No error messages are printed, exit codes are good, everything seemingly is good, but the dump is corrupt.

Cheers :)

1dolla avatar Aug 11 '24 09:08 1dolla