Étape 1: Découvrez comment les CD et CD-Rs fonctionnent
Les données sur un CD, ou tout autre support optique, sont stockées comme une séquence de fosses de différentes longueurs. Pour être précis, un 1 est représentée par le changement de fosse à non-fosse ou le changement de non-fosse fosse et un 0 est représenté par aucun changement de hauteur (fosse à pit ou non-fosse à non-pit). Les fosses et les non-fosses reflètent différentes quantités de lumière ; ainsi, il est possible de dessiner des images sur CD en organisant correctement ces 1 s et 0 s.Comment vous organiser le 1 s et 0 s ? Il est utile de savoir que les données sont écrites le long d’une spirale qui commence à partir du centre du CD et en spirale vers l’extérieur dans le sens horaire. La longueur de chaque bit est une valeur assez précise (plus sur cela plus tard), et la hauteur de la spirale, ou la distance entre les spirales successives, est également une valeur assez précise. Ainsi, en utilisant un peu de maths et quelques conjectures, il est possible créer un mappage de la n-ième bit dans vos données à un x, la coordonnée y.
Maintenant, il faut vraiment regarder sous le capot du stockage de données de CD pour trouver une façon de dire le graveur de CD pour écrire un 0 ou 1 pour le n-ième bit. Données sont organisées comme une séquence de secteurs, dont chacun est 2352 octets de longs. Au sein de chaque secteur sont structurées de manière particulière selon quel type de CD vous êtes traitant (données, audio, etc...). La plupart type « brut » d’organisation est connu comme « mode 2 ». Mode 2 fait disparaître bon nombre des choses gentilles sur CD comme la correction des erreurs, mais il nous donne le plus de contrôle sur les bits. Dans un secteur de la mode 2, les 12 premiers octets contiennent des données « synchronisation » et le prochain 4 contiennent des informations spécifiques sur le secteur. Ces octets ne peut pas être modifiés au niveau du logiciel. (Peut-être que c’est possible d’écrire un pilote qui pourrait modifier ces?) Les prochaines 2336 octets sont libres d’être quoi que ce soit bien. Si c’était tout ce qui est arrivé aux données, notre travail serait facile. Malheureusement, il y a beaucoup plus de manipulation de données avant que les données réellement sont écrit sur le CD.
Tout d’abord, les données dans chaque secteur sont « codées » par lequel nous entendons qu’il est exécuté par une fonction mathématique qui est censé « blanchir » les données (c'est-à-dire conserver la hauteur moyenne des données sur le CD à mi-chemin entre la fosse et non-fosse).
Deuxièmement, les données sont envoyées via un encodeur CIRC, qui s’applique à certains codes de correction d’erreur.
Enfin, les données sont envoyées bien un modulateur eight-to-fourteen (EFM). Cette action mappe chaque octet de 8 bits à une séquence de 14 bits. Ceci permet d’éviter de longues séquences de 0 (aucun changement de hauteur) qui sont difficiles pour le lecteur de CD à lire.
Le point est : dessiner des images sur CD est possible, donc cela doit être fait.
Pour une explication plus complète (mais toujours à certains moments cryptiques) de CD, consultez la spécification ECMA-130 disponible gratuitement.