ISO File Format and Data Manipulation

Hi. I’m interested in doing low-level editing of an ISO image file-- the sectors, checksums, file data, etc. I know that the ISO 9600 specification is available online, but can’t make the connection between it and an ISO file. Is the ISO file a bit-for-bit raw dump, sector-by-sector, of the CD image? If so, is there somewhere I can grab the file format specification for this type of file, or should I be looking harder at the ISO specification (which I can’t get at since it costs money to grab off the ISO site)?

And if the ISO file is NOT a raw dump, which I suspect considering the existence of the BIN file type (which I also want to grab a specification for), then where could I get the specification for the format?

Alternatively, where could I get some relatively low-level libraries or resources to directly manipulate the data stream going to a CD burner? As in, some libraries for me to write my own CD burning application

I know that some implementation details would be hardware-specific, but in terms of messing with the firmware of the CD burner, where would be a good place to start? I imagine some sort of opcode-assembly-thing would be needed for a low-level hack like this; is it possible to directly manipulate the lead-ins and lead-outs and things?


Iso is simply a special type of bin file. Iso files can store only a single mode1 data track. Bin files are able to store multiple tracks in various modes.

Usually, iso’s will come in the form of 2048 bytes/sector, which means each block consists of pure user data. You can also get 2352 bytes/sector which includes full ecc, edc, p/q parities, etc…

You can find some good info by checking out ecma-130 and this site:

If you want to play with mmc/scsi commands, you should use something like adaptec aspi.

Thanks for the info. Hopefully using this I should be able to write the CD Burning application for which, up to now, I’ve been searching fruitlessly.