Description d'un BOOT normal

Lorque l'APPLE II est allum� (avec une ROM AUTOSTART ce qui est le cas de toutes les machines � partir du II+), le programme en ROM cherche s'il y a un contr�leur de disquette dans les slots en partant de 7 vers 1 c'est pourquoi on r�serve le 7 au disque dur et le 6 au contr�leur de disquette.

Si un tel contr�leur est trouv� alors la ROM lui passe le contr�le en ex�cutant le programme du dit contr�leur qui se trouve en Cx00 sachant que x est le num�ro de slot (donc sur une machine tout � fait configur�e en standard ce sera $C600)

Vous noterez qu'il y a deux PROM sur une carte contr�leur APPLE, le programme de bootstrap est stock� sur la PROM P5. Il est accessible ais�ment en allant sous le moniteur (CALL-151 suivi de RETURN) puis en tapant C600.C700L (�galement suivi de RETURN). Pour la PROM P6 voir la rubrique relative au fonctionnement du Logic State Sequencer.
LE TRACE DE BOOT (FRONT DOOR TECHNIQUE)

Cette redoutable technique d�coule imm�diatement de ce que l'on vient de voir : Quel que soit le programme prot�g� il ne peut �tre charg� QUE SI son secteur 0 de la piste 0 est standard...

Partant de l� il suffit de changer quelques octets du programme de bootstrap pour ne charger que le secteur 0 en question et de suivre en pas � pas ce qui se passe. Changer la PROM ??? vous n'y pensez pas... donc comment faire ?!
Il suffit de d�placer le contenu de la ROM en m�moire en conservant l'alignement $x600. C'est � dire que vous recopiez le contenu de la PROM en $8600, $9600 ou n'importe quelle adresse de type $x600. Pour ce faire vous passez sous le moniteur (CALL-151) et tapez

9600 < C600.C700M suivi de RETURN

Vous observez en $96F8 le JMP $801 que vous remplacez par des BRK ($00) ou un JMP $9801 adresse � laquelle vous pr�ciserez soit des BRK soit un JMP $FF65 (retour moniteur) ce qui donne la modification suivante:

96F8 : 4C 01 98 suivi de RETURN

9801 : 4C 65 FF suivi de RETURN


Puis apr�s avoir ins�r� la disquette du programme dont vous ambitionnez de supprimer la protection, vous effectuez le lancement en manuel par la commande :

9600G suivi de RETURN

Magique, le drive se met en route comme s'il bootait normalement puis vous entendez un BIP et votre lecteur continue � tourner dans le vide. C'est fait vous avez ce que le programme devait charger en $800. Arr�tez le drive par la commande softswitch :

C0E8 suivi de RETURN

Ensuite vous regardez ce qu'il y a en $800, normalement vous avez le chiffre 1 qui correspond au nombre de secteurs charg�s par la "PROM" et votre d�but de programme s'�tend alors de $801 � $8FF que vous pouvez lire en assembleur par la commande .

801L suivi de RETURN... autant que n�cessaire jusqu'� la fin de ce qui est charg�

ATTENTION si vous avez en $800 un autre chiffre cela signifie que la "PROM" a charg� autant de secteurs que le pr�cise ce chiffre et ils sont de $800 � $xxx sachant qu'un secteur est une page de m�moire de $FF octets.
Exemple : si vous avez un $03 votre boot est charg� de $800 � $AFF


Ensuite le d�sassemblage de ce premier chargement vous explique ce qui se passe. Vous d�placez alors celui-ci dans la zone m�moire ad hoc ($9800 dans notre exemple) et vous effectuez les points d'arr�ts ad�quats en positionnant des JMP $FF65 ou des BRK pour �tre s�r de garder la main avant les passages aux endroits critiques et vous relancez en tapant la commande

9600G suivi de RETURN

Eh oui ! on fait un reboot mais cette fois la "PROM" va certes recharger le premier bootstrap mais fera la connexion sur $9801 au lieu de $801 et ce sera votre bootstrap modifi� qui pilotera la suite. En proc�dant ainsi de pas en pas vous obtenez tout le programme, que vous devez d�sassembler pour comprendre ce qui se passe et r�ussir � �ter la protection.

Dans la pratique il est pr�f�rable de sauvegarder les morceaux de programmes extraits au fur et � mesure de fa�on � pouvoir � la fin reconstituer un fichier ou une disquette au format DOS 3.3. Prenons un exemple de programme qui se charge sans faire de contr�le par la suite : EDD 4 Plus

Pourquoi EDD ? parce que c'est un programme de copie des protections... qui est prot�g� au pr�texte qu'il sert d'entra�nement.