Index du Forum
IDENTIFICATION SERVEUR : 51.77.218.153 - CLIENT : 34.226.244.70

 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Wizardry II - Knight of Diamonds (Sir-Tech, 1982-1987)

 
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> PROTECTION MALEFIQUE
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
blk



Inscrit le: 05 Sep 2007
Messages: 114
Localisation: Zimbabwé

MessagePosté le: Jeu 07 Juil 2011, 19:29    Sujet du message: Wizardry II - Knight of Diamonds (Sir-Tech, 1982-1987) Répondre en citant

Bonsoir !
Smile
Cette fois ci, juste un demi-crack (la face A).... il faut que je le finisse...
:-°

On y va....
La disquette se copie impeccablement au Locksmith 5.0, les deux faces.
Du coup, pour la conversion en image disque, pas de souci.
Evidemment, la copie ne boot pas.... on entend une vérif quelque part (le déplombage à l'oreille is back) qui insiste et jongle entre quelques pistes.
Pour le boot tracing, on démarre normalement, et en résumant, on trouve ceci :
$0890 -> $B69E (vidage RAM) -> B6BC -> 922D (relocation mémoire en $6800) -> 68BD.... etc....

bref, c'est un peu pénible, ça se reloge en mémoire, et comme c'est écrit en Pascal, c'est un peu lourd à tracer (encore un pseudo-code interprété).

Donc, changement d'approche.... attaque à l'oreille...
Smile
On boote le disque et lorsque la vérification accroche sur les pistes qu'elle ne reconnaît pas vraiment, il est temps pour un RESET (si on a sauté le nettoyage intégral de la RAM précédemment mentionné, on a la main)...
La pile nous apprend que quelque chose se passe du côté de l'adresse $A39A, laquelle est précédée d'un saut vers l'adresse $8BB4.
C'est notre vérification !
Very Happy
Code:

----------------------
Routine Vérif
----------------------
$8BB4 : 68         PLA
$8BB5 : 85 00      STA $00    <- appelant
$8BB7 : 68         PLA
$8BB8 : 85 01      STA $01      <- appelant +1
$8BBA : 68         PLA
$8BBB : 85 02      STA $02      <- adresse de paramètre de RETOUR
$8BBD : 68         PLA
$8BBE : 85 03      STA $03      <- adresse de paramètre de RETOUR +1
$8BC0 : A5 01      LDA $01
$8BC2 : 48         PHA      <- ré-empile l'adresse de retour pour le RTS de fin
$8BC3 : A5 00      LDA $00
$8BC5 : 48         PHA
$8BC6 : A9 00      LDA #$00   <- initialise $000d + $000e (important)
$8BC8 : 85 0D      STA $0D
$8BCA : 85 0E      STA $0E
$8BCC : A2 60      LDX #$60   <- drive 1 slot 6 standard
$8BCE : BD 89 C0   LDA $C089,X   <- on allume le moteur, c'est mieux ^^
$8BD1 : BD 8E C0   LDA $C08E,X   <- $C08E + $C08c = passage en mode "READ"

---------------------------------------------------- LOOP si pas good
$8BD4 : BD 8C C0   LDA $C08C,X
$8BD7 : 10 FB      BPL $8BD4
$8BD9 : C9 FF      CMP #$FF
$8BDB : D0 F7      BNE $8BD4   <- cherche $FF
$8BDD : BD 8C C0   LDA $C08C,X
$8BE0 : 10 FB      BPL $8BDD
$8BE2 : C9 FF      CMP #$FF
$8BE4 : D0 EE      BNE $8BD4   <- encore $ff ?
------------------------------------------------------ tant qu'il y aura des $FF

$8BE6 : BD 8C C0   LDA $C08C,X
$8BE9 : 10 FB      BPL $8BE6
$8BEB : C9 FF      CMP #$FF
$8BED : D0 03      BNE $8BF2   <- ouf, autre chose que $FF
$8BEF : 4C 32 00   JMP $8BE6   <- tant qu'il y aura des $FF

---------------------------------------------- c'est pas un $FF...
$8BF2 : BD 8C C0   LDA $C08C,X
$8BF5 : 10 FB      BPL $8BF2
$8BF7 : C9 D5      CMP #$D5
$8BF9 : D0 F7      BNE $8BF2
$8BFB : BD 8C C0   LDA $C08C,X
$8BFE : 10 FB      BPL $8BFB
$8C00 : C9 AA      CMP #$AA
$8C02 : D0 EE      BNE $8BF2
$8C04 : BD 8C C0   LDA $C08C,X
$8C07 : 10 FB      BPL $8C04
$8C09 : C9 96      CMP #$96
$8C0B : D0 E5      BNE $8BF2   <- recherche marqueurs de début de champs d'adresse d'un secteur....
$8C0D : BD 8C C0   LDA $C08C,X
$8C10 : 10 FB      BPL $8C0D   <- lit un nibble
$8C12 : EA         NOP
$8C13 : EA         NOP
$8C14 : EA         NOP
$8C15 : EA         NOP
$8C16 : EA         NOP
$8C17 : BD 8C C0   LDA $C08C,X   <- lit un nibble
$8C1A : 10 FB      BPL $8C17
$8C1C : EA         NOP
$8C1D : EA         NOP
$8C1E : EA         NOP
$8C1F : EA         NOP
$8C20 : EA         NOP
$8C21 : BD 8C C0   LDA $C08C,X   <- lit un nibble
$8C24 : 10 FB      BPL $8C21
$8C26 : EA         NOP
$8C27 : EA         NOP
$8C28 : EA         NOP
$8C29 : EA         NOP
$8C2A : EA         NOP
$8C2B : BD 8C C0   LDA $C08C,X   <- lit un nibble
$8C2E : 10 FB      BPL $8C2B
$8C30 : EA         NOP
$8C31 : EA         NOP
$8C32 : EA         NOP
$8C33 : EA         NOP
$8C34 : EA         NOP
$8C35 : BD 8C C0   LDA $C08C,X   <- lit un nibble
$8C38 : 10 FB      BPL $8C35
$8C3A : A8         TAY      <- choppe ce petit nibble, et hop ! dans le registre "Y"
$8C3B : EA         NOP
$8C3C : EA         NOP
$8C3D : EA         NOP
$8C3E : EA         NOP
$8C3F : EA         NOP
$8C40 : BD 8C C0   LDA $C08C,X   <- lit un nibble
$8C43 : 10 FB      BPL $8C40
$8C45 : 85 04      STA $04      <- choppe le dernier nibble et le met dans $0004
$8C47 : 98         TYA      <- transfert de Y vers l'accumulateur
$8C48 : 38         SEC      <- set carry
$8C49 : 2A         ROL      <- décalage gauche (récupère la retenue en bit 0)
$8C4A : 25 04      AND $04      <- AND (en fait : décodage 4&4)
$8C4C : C9 00      CMP #$00   <- secteur = 0 ?
$8C4E : D0 84      BNE $8BD4   <- non ? on recommence.... :/

----------------------------------------------

$8C50 : 20 18 01   JSR $8CCC   <- ! ! ! Déplacement du Bras ! ! !

------------------------------------------ boucle cherche $D5....
$8C53 : BD 8C C0   LDA $C08C,X
$8C56 : 10 FB      BPL $8C53
$8C58 : C9 D5      CMP #$D5   <- le prochain $D5 ? (secteur suivant car recherche marqueurs champs d'adresse)
$8C5A : F0 09      BEQ $8C65   <- trouvé !
$8C5C : E6 0D      INC $0D      <- si pas trouvé, on incrémente $000D (IMPORTANT !)
$8C5E : D0 F3      BNE $8C53   <- boucle cherche $D5

$8C60 : E6 0E      INC $0E      <- quand trouvé, on incrémente $000E (IMPORTANT !)
$8C62 : 4C 9F 00   JMP $8C53   <- boucle cherche $D5

------------------------------------ trouvé !
$8C65 : BD 8C C0   LDA $C08C,x
$8C68 : 10 FB      BPL $8C65
$8C6A : C9 AA      CMP #$AA   <- AA ?
$8C6C : D0 E5      BNE $8C53   <- sinon, re-cherche le début ($D5)

$8C6E : BD 8C C0   LDA $C08C,x
$8C73 : C9 96      CMP #$96   <- 96 ? (début champs d'adresse ?)
$8C75 : D0 DC      BNE $8C53   <- sinon, re-cherche le début ($D5)
$8C7A : BD 8C C0   LDA $C08C,X   <- lit un nibble
$8C7C : 10 FB      BPL $8C77
$8C7D : EA         NOP
$8C7E : EA         NOP
$8C7F : EA         NOP
$8C80 : EA         NOP
$8C81 : BD 8C C0   LDA $C08C,X   <- lit un nibble
$8C84 : 10 FB      BPL $8C81
$8C86 : EA         NOP
$8C87 : EA         NOP
$8C88 : EA         NOP
$8C89 : EA         NOP
$8C8A : EA         NOP
$8C8B : BD 8C C0   LDA $C08C,X   <- lit un nibble
$8C8E : 10 FB      BPL $8C8B
$8C90 : EA         NOP
$8C91 : EA         NOP
$8C92 : EA         NOP
$8C93 : EA         NOP
$8C94 : EA         NOP
$8C95 : BD 8C C0   LDA $C08C,X   <- lit un nibble
$8C98 : 10 FB      BPL $8C95
$8C9A : EA         NOP
$8C9B : EA         NOP
$8C9C : EA         NOP
$8C9D : EA         NOP
$8C9E : EA         NOP
$8C9F : BD 8C C0   LDA $C08C,X   <- lit un nibble
$8CA2 : 10 FB      BPL $8C9F
$8CA4 : A8         TAY      <- avant dernier nibble dans Y
$8CA5 : EA         NOP
$8CA6 : EA         NOP
$8CA7 : EA         NOP
$8CA8 : EA         NOP
$8CA9 : EA         NOP
$8CAA : BD 8C C0   LDA $C08C,X   <- lit un nibble
$8CAD : 10 FB      BPL $8CAA
$8CAF : 85 04      STA $04      <- dernier nibble dans $0004
$8CB1 : 98         TYA
$8CB2 : 38         SEC
$8CB3 : 2A         ROL
$8CB4 : 25 04      AND $04
$8CB6 : C9 00      CMP #$00   <- pareil, opération décodage 4&4 puis check si = 0 ....
$8CB8 : F0 03      BEQ $8CBD   <- OK
$8CBA : 4C 53 8C   JMP $8C53   <- si pas bon, recherche le prochain secteur (boucle qui cherche $D5)

----------------------------------------- OK
$8CBD : A0 00      LDY #$00
$8CBF : A5 0D      LDA $0D      <- remember ? C'est le compteur 1
$8CC1 : 91 02      STA ($02),Y
$8CC3 : C8         INY
$8CC4 : A5 0E      LDA $0E      <- remember aussi ? C'est le compteur 2
$8CC6 : 91 02      STA ($02),y
$8CC8 : BD 88 C0   LDA $C088,X   <- extinction du moteur = T:$22 / S:$0D / B:$2E
$8CCB : 60         RTS      <- retour à l'appelant...





----------------------------------------
*** Déplacement bras ***
----------------------------------------
$8CCC : 86 06      STX $06
$8CCE : A0 0C      LDY #$0C   <- piste de destination == $0C
$8CD0 : 84 07      STY $07
$8CD2 : 88         DEY
$8CD3 : 88         DEY
$8CD4 : 84 08      STY $08      <- piste actuelle == $0A
$8CD6 : A9 EF      LDA #$EF
$8CD8 : 85 0B      STA $0B
$8CDA : A9 D8      LDA #$D8
$8CDC : 85 0C      STA $0C
$8CDE : A9 00      LDA #$00
$8CE0 : 85 09      STA $09

--------------------------------------- loop
$8CE2 : A5 08      LDA $08      <- piste actuelle
$8CE4 : 85 0A      STA $0A
$8CE6 : 38         SEC
$8CE7 : E5 07      SBC $07      <- piste de destination
$8CE9 : F0 31      BEQ $8D1C
$8CEB : B0 06      BCS $8CF3
$8CED : 49 FF      EOR #$FF
$8CEF : E6 08      INC $08
$8CF1 : 90 04      BCC $8CF7
$8CF3 : 69 FE      ADC #$FE
$8CF5 : C6 08      DEC $08
$8CF7 : C5 09      CMP $09
$8CF9 : 90 02      BCC $8CFD
$8CFB : A5 09      LDA $09
$8CFD : C9 0C      CMP #$0C
$8CFF : B0 01      BCS $8D02
$8D01 : A8         TAY
$8D02 : 38         SEC
$8D03 : 20 20 8D   JSR $8D20   <- Déplacement Bras
$8D06 : B9 42 8D   LDA $8D42,Y   <- DATA1
$8D09 : 20 31 8D   JSR $8D31   <- Wait
$8D0C : A5 0A      LDA $0A
$8D0E : 18         CLC
$8D0F : 20 20 8D   JSR $8D22   <- Déplacement Bras
$8D12 : B9 4E 8D   LDA $8D4E,Y   <- Data2
$8D15 : 20 31 8D   JSR $8D31   <- Wait
$8D18 : E6 09      INC $09
$8D1A : D0 C6      BNE $8CE2   <- loop plus haut
$8D1C : 20 31 8D   JSR $8D31   <- Wait
$8D1F : 18         CLC

-------- Déplacement bras -------
$8D20 : A5 08      LDA $08
$8D22 : 29 03      AND #$03
$8D24 : 2A         ROL
$8D25 : 05 06      ORA $06
$8D27 : AA         TAX
$8D28 : BD 80 C0   LDA $C080,X   <- PhaseOff (Déplacement du bras)
$8D2B : A6 06      LDX $06
$8D2D : 60         RTS
$8D2E : AA         TAX
$8D2F : A0 A0      LDY #$A0

-------- WAIT -------
$8D31 : A2 11      LDX #$11
$8D33 : CA         DEX
$8D34 : D0 FD      BNE $8D33
$8D36 : E6 0B      INC $0B
$8D38 : D0 02      BNE $8D3C
$8D3A : E6 0C      INC $0C
$8D3C : 38         SEC
$8D3D : E9 01      SBC #$01
$8D3F : D0 F0      BNE $8D31
$8D41 : 60         RTS

------- DATA ?? -------
$8D42 : 01 30      ORA ($30,X)
$8D44 : 28         PLP
$8D45 : 20 20 1E   JSR $1E20
$8D48 : 1D 1C 1C   ORA $1C1C,X
$8D4B : 1C         ???
$8D4C : 1C         ???
$8D4D : 1C         ???

------- DATA2 ?? -------
$8D4E : 70 2C      BVS $8D7C
$8D50 : 26 22      ROL $22
$8D52 : 1F         ???
$8D53 : 1E 1D 1C   ASL $1C1D,X
$8D56 : 1C         ???
$8D57 : 1C         ???



Ca ressemble à des pistes synchronisées... y'a apparemment une sorte de calcul du décalage physique d'une piste par rapport à une autre...

L'astuce consiste à détourner cette routine vers un sous-programme codé en RAM (la RAM reste intacte si l'on saute le vidage mémoire... perso, je l'ai mise en page HGR2 non utilisée) qui nous indiquera si elle est appelée une seule fois, ou plusieurs, et si elle retourne toujours les mêmes valeurs ou pas.

Conclusion:
Cette routine est appelée plusieurs fois (UNE SEULE série de 4 appels distincts), et les couples de données qu'elle retourne lors d'une série d'appels sont :
Code:

en $0D   |  en $0E
--------------------
  50     |     05     <- 1er appel
  80     |     06
  DC     |     07
  CA     |     08     <- 4eme appel


Il suffit de coder une petite routine qui renvoie ces valeurs (j'ai indiqué les offsets sur le disque)
Code:


------------------------------------
Routine modifiée : T:$22 S:$0E B:$34
------------------------------------
$8BCE : BD 89 C0   LDA $C089,X   <- on allume le moteur, c'est mieux ^^
$8BD1 : BD 8E C0   LDA $C08E,X   <- C08E + C08c = passage en mode "READ"

-------------------------------------------
sur le disque : T:$22 S:$0E B:$3A
-------------------------------------------
$8BD4 : AD 00 8C   LDA $8C00   <- récupère le data 1
$8BD7 : 85 0D      STA $0D      <- renvoie la valeur
$8BD9 : AD 0C 8C   LDA $8C0C   <- récupère le data 2
$8BDC : 85 0E      STA $0E      <- renvoie la valeur
$8BDE : EE D5 8D   INC $8BD5
$8BE1 : EE DA 8B   INC $8BDA
$8BE4 : 4C BD 8C   JMP $8CBD   <- Saute vers OK
-------------------------------------------
.
.
.
-------------------------------------------
sur le disque : T:$22 S:$0E B:$66
-------------les DATAs --------------------
$8C00 : 50 80 DC CA 50 80 DC CA 50 80 DC CA
$8C0C : 05 06 07 08 05 06 07 08 05 06 07 08
-------------------------------------------
.
.
.
----------------------------------------- OK (non modifé)
$8CBD : A0 00      LDY #$00
$8CBF : A5 0D      LDA $0D      <- remember ? C'est le compteur 1
$8CC1 : 91 02      STA ($02),Y
$8CC3 : C8         INY
$8CC4 : A5 0E      LDA $0E      <- remember aussi ? C'est le compteur 2
$8CC6 : 91 02      STA ($02),y
$8CC8 : BD 88 C0   LDA $C088,X   <- extinction du moteur = T:$22 / S:$0D / B:$2E
$8CCB : 60         RTS      <- retour à l'appelant...

Attention, il faut mettre un write protect sur la face A !... sinon, une vilaine petite routine fait le test et plante le jeu s'il n'est pas protégé en écriture... (eh oui, l'original n'a pas d'encoche).
Wink

Le soft boote maintenant sans planter.... le test passe.
Par contre, un deuxième test quasi semblable (à l'oreille) est chargé par la face B et il reste à le cracker.
Very Happy

have fun
blk

ps : après un coup d'oeil à la routine de la face B, on trouve à peu près le même genre de chose, sauf que cette nouvelle routine est appelée (par série de 4 appels) de façon régulière, il faudra donc penser à réinitialiser les données renvoyées après le 4ème appel de chaque série...
La suite probablement ce week-end
_________________
hin hin ^^


Dernière édition par blk le Jeu 07 Juil 2011, 21:31; édité 1 fois
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Archange427



Inscrit le: 01 Avr 2011
Messages: 535
Localisation: 92

MessagePosté le: Jeu 07 Juil 2011, 21:30    Sujet du message: Répondre en citant

Shocked ...

Bon bah je retourne à mes Atarisoft moi... Crying or Very sad

(sans rire, super boulot encore blk...
.... "un peu d'astuce, d’espièglerie, c'est la vie de Blacky")
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 3043
Localisation: Le Chesnay, France

MessagePosté le: Jeu 07 Juil 2011, 23:03    Sujet du message: Répondre en citant

Bravo !

Il y a bien deux protections :
- une synchronisation sur plusieurs pistes par rapport au secteur 0 de chacune des pistes,
- le test du write protect (si encoche = copie, pas d'encoche = probablement original)

Pour préciser :
- Il faut comprendre les adresses $D et $E comme un registre de 16 bits qui contient le nombre de nibbles lus entre deux secteurs 0 de pistes adjacentes,
- DATA1 et DATA2 sont les tempos officielles des phases du Disk II pour garantir le bon déplacement de la tête de lecture d'une piste à l'autre,
- la lecture de 4 nibbles sautés après la recherche des marqueurs D5AA96 du champ d'adresse correspond au volume et à la piste en codage 4*4 (donc 2 nibbles pour chacun)

Au suivant ! Ce soir, je me suis fait PLATO/COMPUTER LITERACY et HAYDEN SOFTWARE/SAT, il faudra que je présente les cracks !

Antoine
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
blk



Inscrit le: 05 Sep 2007
Messages: 114
Localisation: Zimbabwé

MessagePosté le: Ven 08 Juil 2011, 12:16    Sujet du message: Répondre en citant

Merci pour ces commentaires ^^
C'est rigolo de voir une machine qui, même après 25 ans conserve intact son potentiel ludique...
Bon, le potentiel en question ne réside pas vraiment dans le jeu en lui-même, mais dans sa protection... n'empêche, c'est très fort.

Un petit complément d'info sur le test de Write protect. Je me suis dit que sur une image disque, ça ne semblait pas automatique de penser au Write Protect... du coup, j'ai préféré faire sauter ce test.
Il faut chercher (avec copy II+ 5.0) la séquence suivante sur la face 1 :

BD 8D C0 (LDA $C08D,X)
... en effet, la séquence "LDA $C08D,X + LDA $C08E,X" teste le W.P.

On la trouve ici :
T:$14 S:$08 B:$92.
Code:

$92:BD 8D C0 BD 8E C0 30 7C   <-----valeurs originales
à remplacer par :
$92:EA EA A9 00 C9 00 F0 7C

On remplace le test par une comparaison toujours vraie. Comme il s'agit d'un branchement relatif, on conserve ce saut relatif, et ça nous exonère de savoir où se déroule exactement le test en RAM, on peut tout faire directement sur le disque sans avoir à rechercher où ça se charge...
J'ai remplacé le test par :
LDA #$00
CMP #$00
BEQ même adresse relative (le $7C) <- toujours vrai.

Bon, la bidouille de la face 2 arrive....
Wink
_________________
hin hin ^^
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
flaith



Inscrit le: 30 Aoû 2007
Messages: 192
Localisation: $300:20 58 FC 60 N 300G => Vietnam

MessagePosté le: Ven 08 Juil 2011, 17:14    Sujet du message: Répondre en citant

Quel pied de lire vos déplombages "mode d'emploi" à toinet et à toi, c'est un vrai plaisir Very Happy
_________________
Je suis sur de "rien", mais ne je suis pas sur du "tout".
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
blk



Inscrit le: 05 Sep 2007
Messages: 114
Localisation: Zimbabwé

MessagePosté le: Ven 08 Juil 2011, 18:55    Sujet du message: Répondre en citant

Uh uh ^^

Très rigolo que ça intéresse encore quelqu'un Wink
Very Happy

Bon, on termine avec ce soft... et sa face 2.

-------------------
FACE 2
-------------------

Code:

6502 code :
---------------
$2000 : 00         BRK      <- clone l'adresse $0D
$2001 : 00         BRK      <- clone l'adresse $0E
$2002 : A9 00      LDA #$00   <- on démarre
$2004 : 85 0D      STA $0D      <- adresse pour le résultat 1
$2006 : 85 0E      STA $0E      <- adresse pour le résultat 2
$2008 : A2 60      LDX #$60
$200A : BD 8A C0   LDA $C08A,X   <- drive 1
$200D : BD 89 C0   LDA $C089,X
$2010 : BD 8E C0   LDA $C08E,X   <- mode lecture
$2013 : BD 8C C0   LDA $C08C,X
$2016 : 10 FB      BPL $2013
$2018 : C9 FF      CMP #$FF
$201A : D0 F7      BNE $2013
$201C : BD 8C C0   LDA $C08C,X
$201F : 10 FB      BPL $201C
$2021 : C9 FF      CMP #$FF
$2023 : D0 EE      BNE $2013
$2025 : BD 8C C0   LDA $C08C,X
.
.
.
Bla bla QUASI TOUT PAREIL


Donc, cette routine est quasi-similaire à la précédente.
La différence est dans le fait qu'elle ne retourne pas les mêmes valeurs, mais cette série de couples :
Code:

D0   06
2F   08
A3   08
A1   07


les valeurs à modifier sur la disquette :

T:$12 S:$01

Code:
$18 : EA EA EA EA EA EA EA EA   <- série de NOPs pour faire joli (le nop en $1F est quand même utile)
$20 : AD 80 20 85 0D AD 90 20
$28 : 85 0E EE 21 20 EE 26 20
$30 : AD 26 20 C9 94 F0 03 4C
$38 : FC 20 A9 80 8D 21 20 A9
$40 : 90 8D 26 20 4C FC 20 EA
.
.
.

$80 : D0 2F A3 A1
.
$90 : 06 08 08 07

c'est cracké ... et plus besoin de write protect... ^^
_________________
hin hin ^^
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 3043
Localisation: Le Chesnay, France

MessagePosté le: Ven 08 Juil 2011, 19:43    Sujet du message: Répondre en citant

Très cool, je te "bravo-ise" encore.

Je te propose de m'envoyer tes images disques afin que je les monte sur brutaldeluxe.fr/crack

av
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
blk



Inscrit le: 05 Sep 2007
Messages: 114
Localisation: Zimbabwé

MessagePosté le: Ven 08 Juil 2011, 19:57    Sujet du message: Répondre en citant

Euh... en fait, j'ai pas les images disque... je suis sur un apple //e avec une disquette vierge et un original.
: Laughing
J'ai bien ADT et un câble qui va bien, mais je n'ai plus sous la main de PC qui ait un port série..
Crying or Very sad
Faut que je fouille... Wink
_________________
hin hin ^^
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 3043
Localisation: Le Chesnay, France

MessagePosté le: Ven 08 Juil 2011, 20:14    Sujet du message: Répondre en citant

blk a écrit:
Euh... en fait, j'ai pas les images disque... je suis sur un apple //e avec une disquette vierge et un original.
: Laughing
J'ai bien ADT et un câble qui va bien, mais je n'ai plus sous la main de PC qui ait un port série..
Crying or Very sad
Faut que je fouille... Wink


L'avantage, c'est que cela fait très vintage Wink
antoine
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> PROTECTION MALEFIQUE Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com