S:\Dump Philippe Depre.raw Track 38.0 6220 bytes Length 199977 µs START Bit=0 Byte=0 Time=0,00 ms LENGTH Bit=112989 Byte=6220 Time=199977,64 µs
Tu vois la longueur en bits de la piste de protection ? 112989 ! soit environ 14123 octets MFM soit une piste décodée de 7ko !
Tu lis quoi juste après ? La piste fait 6220 octets. Donc on a 7ko de données tassées dans un espace permettant de contenir en gros 6ko de données. On fait varier la densité pour écrire plus données dans un même espace, ceci pour empêcher un lecteur normal de réécrire ces pistes.
Denis, je pense que Aufit n'indique pas correctement le nombre de bits (ou alors que la signification de ce total est autre). 6220 bytes correspondent mieux à ce que supporte le FDC. 7ko de piste est franchement hors tolérance (6380 bytes des "chevaliers" (si je me souviens bien) semblait déjà une bonne performance.
Pour ce qui est de la génération de cette disquette, je pense que le gars avait une routine permettant de lire sa piste générée (les 8k), de stocket son octet de "vérification", et de réécrire uniquement le début de sa piste (qui ne bouge pas grâce aux octets de synchro !) en y indiquant ce fameux octet. D'où le fait que tu vois le dump comme "modifié". Et ça, c'est à la portée du premier venu. Élégant et assez sûr, mais obligeant à faire une passe supplémentaire lors de la copie... Par contre, ça doit se craquer relativement simplement : Il suffit à priori de patcher la longueur de piste parcourue (en la fixant à une valeur faible pour ne pas avoir à faire le "tour" de la piste), et la valeur attendue (qui du coup sera systématiquement connue) et en avant Guingamp !
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Citer :
Denis, je pense que Aufit n'indique pas correctement le nombre de bits (ou alors que la signification de ce total est autre).
Aufit est CPC compatible, puisque c'est le même format que le ST et PC. La longueur en bits est la bonne.
Est-ce que tu comprends le fonctionnement de la VD ? Son but est simple : empêcher la copie par tout les moyens étant donné que le moteur d'un drive de CPC tourne à vitesse fixe.
Le gain qu'on obtient, c'est de mettre un chouille plus de données dans un même espace. Mettre 7ko dans un espace permettant de mettre 6k, c'est tout à fait dans la norme, rien n'empêche de la faire C'est 1 petit kilo en plus.
Citer :
6220 bytes correspondent mieux à ce que supporte le FDC. 7ko de piste est franchement hors tolérance (6380 bytes des "chevaliers" (si je me souviens bien) semblait déjà une bonne performance.
garde toujours en tête que les données ont une densité plus grande. 7ko c'est faisable avec la VD, par contre, pas moyen avec une densité normale.
Citer :
Pour ce qui est de la génération de cette disquette, je pense que le gars avait une routine permettant de lire sa piste générée (les 8k), de stocket son octet de "vérification", et de réécrire uniquement le début de sa piste (qui ne bouge pas grâce aux octets de synchro !) en y indiquant ce fameux octet. D'où le fait que tu vois le dump comme "modifié". Et ça, c'est à la portée du premier venu. Élégant et assez sûr, mais obligeant à faire une passe supplémentaire lors de la copie... Par contre, ça doit se craquer relativement simplement : Il suffit à priori de patcher la longueur de piste parcourue (en la fixant à une valeur faible pour ne pas avoir à faire le "tour" de la piste), et la valeur attendue (qui du coup sera systématiquement connue) et en avant Guingamp !
Dis tu voudrais me mettre la routine FDC commentée de la protection réussir ci-dessous que je puisse voir en gros ce que le CPC attend, et aussi pour tester l'outil de Megachur ?
_________________ SPS Community Expert (SPS CE) / SPS France
Bon, Denis, ta variation de densité consisterait-elle à mettre plus de 8 bits dans un octet ? (Parce que 6220 octets pour la totalité de la piste, ça ne fait, une fois converti en MFM, que 99 520 bits....) Du coup, on a bel et bien toujours 12500 bits en rab inexpliqués... Sauf si la lecture ne se limite pas à un seul tour de piste (ce qui est également possible : on lit un peu plus qu'un tour. ).
Pour la protection de réussir : Voici un extrait du bout de code intéressant.
Code :
ORG #9B3A LD HL,#9A37 ; Cet emplacement est issu de la lecture piste &26 (le contenu a été stocké entre &7a98 et &9a37 au préalable) LD IX,#9E3F ; Celui ci a été lu dans le secteur c3, piste &27 LD A,(IX+#00) ; On charge dans A CP (HL) ; On compare JR NZ,L9B6E ; Différent de 0 ? on va vers L9B6E (qui fait un superbe RST 0) LD HL,#BE78 [...] LD (HL),A RET .L9B6E RST #00
Le crack est ici trivial : Un simple remplacement du CP(HL) et du JR NZ,L9B6E par des nop et le programme se lance...
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Lone a écrit :
Bon, Denis, ta variation de densité consisterait-elle à mettre plus de 8 bits dans un octet ? (Parce que 6220 octets pour la totalité de la piste, ça ne fait, une fois converti en MFM, que 99 520 bits....) Du coup, on a bel et bien toujours 12500 bits en rab inexpliqués... Sauf si la lecture ne se limite pas à un seul tour de piste (ce qui est également possible : on lit un peu plus qu'un tour. ).
Si je me fie aux infos que j'ai et ce qui m'a été expliqué, oui, mais là on est au ras du métal.
Comme tu le dis, 6220 octets, ça fait 99520 bits à la louche. Hors ici, on a 112989 bits au total pour la piste.
L'espace alloué normalement pour mettre 99520 bits contient effectivement 12500 bits en plus.
L'image visuelle, c'est le pré qui contient des moutons. la taille du pré n'a pas bougé, c'est le nombre de bêtes que tu stockes dans l'enclos qui change. Tu en as 12500 supplémentaires.
Le souci, c'est que ce "mécanisme" ne peut pas se faire en sectoriel. En stockant en sectoriel, ce qui était "contracté" ou "serré" se détend puisqu'on est pas au niveau du bit. Donc comme la protection veut un octet précis à un endroit précis, comme le fait d'écrire la piste sans VD allonge la piste, tu perds la position de l'octet demandé. Et donc la protection foire !
Citer :
Pour la protection de réussir : Voici un extrait du bout de code intéressant.
Code :
ORG #9B3A LD HL,#9A37 ; Cet emplacement est issu de la lecture piste 38 (&26) (le contenu a été stocké entre &7a98 et &9a37 au préalable) LD IX,#9E3F ; Celui ci a été lu dans le secteur 195 (c3), piste 39 (&27) LD A,(IX+#00) ; On charge dans A CP (HL) ; On compare JR NZ,L9B6E ; Différent de 0 ? on va vers L9B6E (qui fait un superbe RST 0) LD HL,#BE78 [...] LD (HL),A RET .L9B6E RST #00
Le crack est ici trivial : Un simple remplacement du CP(HL) et du JR NZ,L9B6E par des nop et le programme se lance...
Merci pour le crack, mais ce n'est pas ce qui m'intéressait en soit. Je voulais plus m'attarder sur les commandes envoyées au FDC pour lire la piste comme voulu, et surtout savoir quel octet la protection cherche.
_________________ SPS Community Expert (SPS CE) / SPS France
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Voilà le déroulé d'information dans Aufit, quand je lis la piste fournie par Breiztiger :
En mode piste :
S:\Dump Philippe Depre.raw Track 38.0 6220 bytes Length 199977 µs START Bit=0 Byte=0 Time=0,00 ms LENGTH Bit=112989 Byte=6220 Time=199977,64 µs
Partie du secteur 02 qui se trouve au dessus du trou d'index :
00000 2015 000032 39 39 39 39 38 72 72 72 72 72 72 72 72 72 72 72 99998rrrrrrrrrrr 00016 2015 000550 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 rrrrrrrrrrrrrrrr 00032 2007 001064 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 rrrrrrrrrrrrrrrr 00048 2015 001578 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 rrrrrrrrrrrrrrrr 00064 2007 002092 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72 rrrrrrrrrrrrrrrr 00080 2007 002605 72 72 72 70 00 00 00 00 00 00 00 00 00 00 00 06 rrrp............ 00096 2000 003100 C2 C2 C2 FC 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E ÂÂÂüNNNNNNNNNNNN 00112 2007 003618 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 00128 2000 004129 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 00144 2000 004641 4E 4E 4E 4E 4E 4E 00 00 00 00 00 00 00 00 00 00 NNNNNN.......... 00160 2000 005151 00 00 14
84 CA 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E åå.ÊNNNNNNNNNNNN 02272 2031 073150 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 02288 2015 073669 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 02304 2015 074186 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 02320 2015 074703 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 02336 2015 075217 4E 4E 4E 4E 4E 4E 00 00 00 00 00 00 00 00 00 00 NNNNNN.......... 02352 2015 075731 00 00
Fin du secteur 01 (entier secteur + GAP) !
Début du secteur 02 avec 14 A1 A1 (4489 4489 mots de synchro) :
ligne 02352 + 2 octets :
14 A1 A1 FE 26 00 02 02 8F EB 4E 4E 4E 4E ...¡¡þ&....ëNNNN 02368 2000 076244 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 02384 2007 076757 4E 4E 00 00 00 00 00 00 00 00 00 00 00 00
Zone gap après secteur qui démarre en 04448 + 2 octets :
84 CA 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E åå.ÊNNNNNNNNNNNN 04464 1984 143540 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04480 1992 144049 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04496 1984 144558 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04512 2000 145067 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04528 2000 145577 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04544 1984 146088 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04560 2000 146598 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04576 2000 147108 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04592 2000 147619 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04608 2000 148131 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04624 2015 148644 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04640 2015 149158 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04656 2031 149674 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04672 2023 150190 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04688 2023 150709 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04704 2039 151229 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04720 2048 151750 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04736 2048 152271 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04752 2064 152793 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04768 2031 153315 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04784 2031 153837 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04800 2031 154356 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04816 2015 154875 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04832 2031 155394 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04848 2015 155910 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04864 2015 156426 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04880 2015 156940 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04896 2015 157454 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04912 2000 157968 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04928 2000 158481 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04944 2000 158995 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04960 2015 159507 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04976 2015 160020 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 04992 2015 160533 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05008 2015 161046 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05024 2000 161559 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05040 2000 162071 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05056 2000 162582 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05072 1984 163093 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05088 2000 163602 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05104 1984 164111 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05120 2000 164620 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05136 1992 165129 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05152 1984 165638 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05168 2000 166147 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05184 1984 166656 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05200 1984 167165 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05216 1984 167674 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05232 2000 168184 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05248 2000 168695 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05264 2000 169207 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05280 2000 169720 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05296 2000 170233 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05312 2007 170746 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05328 2015 171259 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05344 2007 171773 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05360 2023 172289 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05376 2023 172805 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05392 2015 173323 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05408 2015 173841 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05424 2031 174359 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05440 2015 174877 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05456 2031 175395 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05472 2031 175914 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05488 2031 176434 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05504 2031 176953 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05520 2015 177473 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05536 2031 177994 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05552 2031 178515 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05568 2015 179034 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05584 2039 179554 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05600 2023 180072 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05616 2015 180589 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05632 2015 181105 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05648 2000 181619 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05664 2007 182131 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05680 2000 182642 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05696 1984 183151 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05712 1984 183659 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05728 1984 184166 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05744 1976 184672 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05760 1984 185178 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05776 1976 185685 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05792 1984 186192 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05808 1984 186699 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05824 2000 187208 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05840 2000 187718 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05856 2000 188228 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05872 2000 188740 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05888 2000 189251 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05904 1992 189763 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05920 2000 190274 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05936 2000 190786 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05952 2015 191299 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05968 2015 191813 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 05984 2015 192328 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 06000 2031 192845 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 06016 2015 193364 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 06032 2031 193884 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 06048 2031 194405 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 06064 2039 194927 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 06080 2048 195450 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 06096 2048 195972 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 06112 2048 196495 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 06128 2048 197017 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 06144 2031 197538 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 06160 2031 198059 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 06176 2039 198580 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 06192 2039 199100 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNNNNNN 06208 2023 199620 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E 4E NNNNNNNNNNNN
Donc question, quel est l'octet recherché et à quelle position ?
_________________ SPS Community Expert (SPS CE) / SPS France
on lit le secteur &01 command = 66 param = 00 26 00 01 06 01 2a ff
d pour voir le contenu et l'octet par contre je ne sais pas à quel position de ce secteur est l'octet (Lone l'a peut-être vu pendant le chargement ?) !!!
Ce qui est surtout important, dans cette protection, c'est de comprendre le mécanisme : Pourquoi un E5 peut-il se transformer en CB après passage d'index.
Ce qui est tout aussi intéressant, c'est d'ailleurs de voir la protection elle-même : Il est probable que le stockage de ce fameux octet en piste 29 est fait pour éviter d'avoir à modifier une piste déjà créé. Il suffit de la lire, de stocker la valeur piste &27 et le tour est joué. D'où mon intuition sur le fait que cette protection est vraiment "maison" (et donc, que la variation de densité trouvé par Aufit ne soit qu'un effet anodin).
En ce qui concerne la recréation de disquette, reproduire à l'identique une disquette nécessite une précision importante, modulo 16. (mais si on reproduit avec 16 bits supplémentaires, ça n'est pas non plus la même chose ,même si la protection passe !) Il serait intéressant d'avoir d'ailleurs les commentaire de Philippe sur ce sujet : Comment a-t-il pu recréer une disquette ? Etait-ce un coup de bol ou un truc reproductible ? Quels ont été ses réglages ou options ? etc, etc...
PS : Denis, les dumps complets de traces, c'est vraiment horrible à lire... En mettre un résumé serait beaucoup plus digeste !
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Lone a écrit :
Ce qui est surtout important, dans cette protection, c'est de comprendre le mécanisme : Pourquoi un E5 peut-il se transformer en CB après passage d'index.
Oui cette transformation est faite par le FDC pour ce que j'en ai compris. Ce qui veut dire que l'émulation FDC doit être correcte pour que ça se produise.
Il s'agit d'un shift, mais lequel ?
Citer :
Ce qui est tout aussi intéressant, c'est d'ailleurs de voir la protection elle-même : Il est probable que le stockage de ce fameux octet en piste 29 est fait pour éviter d'avoir à modifier une piste déjà créé. Il suffit de la lire, de stocker la valeur piste &27 et le tour est joué. D'où mon intuition sur le fait que cette protection est vraiment "maison" (et donc, que la variation de densité trouvé par Aufit ne soit qu'un effet anodin).
J'ai une analyse différente de la tienne : cette protection en terme d'efficacité est mauvaise. Il suffit de remplacer le CB par le résultat que donnerait la protection si elle était copiée en piste 39 secteur C3 pour passer la protection sans avoir à modifier la routine de protection utilisée par le programme. C'est une énorme faille lol !
En changeant l'octet de comparaison sur la piste non protégée, la routine se retrouve a valider ce qu'elle aurait normalement rejeté
si cette protection était maison, elle ne serait pas vue comme étant dupliquée. Le CTA la reconnait ce qui veut dire qu'une traceuse l'a écrite et pas un CPC, qui de toute façon ne pourrait même pas la générer.
Citer :
En ce qui concerne la recréation de disquette, reproduire à l'identique une disquette nécessite une précision importante, modulo 16. (mais si on reproduit avec 16 bits supplémentaires, ça n'est pas non plus la même chose ,même si la protection passe !) Il serait intéressant d'avoir d'ailleurs les commentaire de Philippe sur ce sujet : Comment a-t-il pu recréer une disquette ? Etait-ce un coup de bol ou un truc reproductible ? Quels ont été ses réglages ou options ? etc, etc...
Pour info, cette protection n'a vraiment rien de sorcier à dupliquer. il faut simplement que la piste de protection soit maintenue dans son état original.
maintenant, reproduire le logiciel via un fichier eDSK, c'est plus qu'hazardeux, car il y a de la perte d'information en passant en sectoriel.
Citer :
PS : Denis, les dumps complets de traces, c'est vraiment horrible à lire... En mettre un résumé serait beaucoup plus digeste !
C'est vrai, mais ça permet d'avoir un visuel d'ensemble, et de comprendre que le stockage effectué par Samdisk n'est pas bon
_________________ SPS Community Expert (SPS CE) / SPS France
Ce qui est surtout important, dans cette protection, c'est de comprendre le mécanisme : Pourquoi un E5 peut-il se transformer en CB après passage d'index.
Oui cette transformation est faite par le FDC pour ce que j'en ai compris. Ce qui veut dire que l'émulation FDC doit être correcte pour que ça se produise. Il s'agit d'un shift, mais lequel ?
Petit rappel sur le stockage disquette : 1/ Sur la piste magnétique, on trouve un flux magnétique. La tête de lecture va parcourir la piste, et regarder régulièrement (toutes les 2us) la direction de ce flux. Soit il est inversé, et on considère un '1', soit il n'est pas inversé, et on considère un '0'. Suite à cette manip, on a donc un flux de '0' et de '1', c'est le flux MFM. Particularité, on n'a pas plus de 3 zéros à la suite, histoire de ne pas perdre la PLL permettant le décodage, qui se dérègle si trop de zéros sont à la suite (ce qui correspond à une durée sans transition trop longue). Petite aparté, les fuzzy bits et autres weak bits peuvent être générés en ayant des transitions farfelues (en gros, trop de 0, ou des transitions du type '2, 5 us', qui produiront de manière non fiable des 0 ou des 1 sur des lectures successives) L'idée est donc de stocker la donnée un bit sur deux (l'autre étant appelé le bit de clock, permettant de ne pas violer les contraintes MFM). Pour coder du MFM, c'est facile : - un '1' sera toujours codé '01' - un '0' sera codé ainsi : - si le bit MFM précédent est un '1', ça sera '00'. - sinon, ça sera '10'.
2/ A partir de ce fameux flux MFM, on va tenter de stocker des données. Il faudra donc se synchroniser de deux manières : - Déjà, pour savoir quel bit est la donnée, et quel bit est la clock. C'est le rôle des fameux '00' de synchro. Et oui : en MFM, une suite de '0' n'est autres qu'une suite de '10' ! De ce fait, en recherche de synchro, le lecteur va se caler sur les 0, les 1 étant considérés comme des bits de clock. - Ensuite, il faut se caler pour obtenir non plus des bits, mais des octets. On va cette fois-ci utiliser les fameux 4489 et autre 5224 qui ont tous les deux une particularité : Celle de ne pas correspondre à des données standard. Explication : 4489, en MFM = 0100 0100 1000 1001. Rien ne vous choque ? Ca se décode en A1, sauf qu'A1 se code plutôt comme ceci : A1 = 1010 0001 = (en MFM ) = 01 00 01 00 10 10 10 01 Comparons les deux : 0100 0100 1000 1001 0100 0100 1010 1001 Et oui, cette particularité, qui ne correspond à rien en temps normal, permet de se synchroniser effectivement.
Le shift obtenu sur cette protection est issu de ce fonctionnement : Le flux de bit est ininterrompu en fin/début de piste, et la synchro ne se faisant pas en cours de lecture, les données lues seront interprétés différemment lors de la seconde lecture de la piste (puisque l'on est toujours en cours de lecture d'un secteur).
dlfrsilver a écrit :
J'ai une analyse différente de la tienne : cette protection en terme d'efficacité est mauvaise. Il suffit de remplacer le CB par le résultat que donnerait la protection si elle était copiée en piste 39 secteur C3 pour passer la protection sans avoir à modifier la routine de protection utilisée par le programme. C'est une énorme faille lol !
Le vrai soucis de cette protection, c'est que la routine peut être patchée trivialement une fois trouvée (pas d'encodage de celle-ci). Trois "nop" a ajouter, et la copie est immédiate via discologie....
dlfrsilver a écrit :
Pour info, cette protection n'a vraiment rien de sorcier à dupliquer. il faut simplement que la piste de protection soit maintenue dans son état original. Maintenant, reproduire le logiciel via un fichier eDSK, c'est plus qu'hazardeux, car il y a de la perte d'information en passant en sectoriel.
Le vrai soucis sur la duplication, reste à écrire une piste d'une taille exacte (que le dernier bit soit collé au premier bit) . Ce qui n'est pas si simple jusqu'à présent (on attend encore une preuve de la reproductibilité parfaite de la manœuvre !) Le passage en edsk, pour le coup, n'est pas horrible : Avoir le contenu exact de chaque lecture de secteur permet de passer la protection à tous les coups pour la plupart des émulateurs, même ceux n'émulant pas au niveau MFM. Mieux : Avec un peu de siouxerie, et une bonne connaissance du MFM, un tel dump permet de reconstruire par déduction une piste exacte : Après tout, on a déjà au moins 50% de la donnée piste (et l'autre est immédiatement déductible !)
Inscription : 12 Juin 2008, 20:29 Message(s) : 1710
Pour compléter ce que vient d'écrire Lone, je me demande si le soucis du Edsk n'est pas du au secteur 01 de taille 00 avant le vrai secteur 01 de taille 06 !?
en effet, si je regarde les commandes fdc du loader qui utilise la rom amsdos pour info au passage !
0f 00 27 -> je vais en piste 39
66 00 27 00 c3 02 c3 2a ff -> je lis le secteur c3 de taille 02
0f 00 26 -> je vais en piste 38
66 00 26 00 01 06 01 2a ff -> je lis le secteur 01 de taille 06 @dlfrsilver, sur un cpc avec l'utilitaire que je t'ai fait, peux-tu pas tout simplement voir ce que donne ces deux lectures avec un vrai fdc -> c'est ce qu'il faut mettre dans ces secteurs en format eDsk !
si tu veux voir l' autre secteur de la piste 38 : ce se basant sur les infos de l'EDSK (ou du CT RAW car je ne l'ai pas celui là perso) !!
cela nous donnera la 'vue secteur' qu'il faut mettre dans le format EDSK !!! même si c'est pas beau hein, je préférerai un CTRAW ou un ipf propre en vue piste !!!
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
Megachur a écrit :
Pour compléter ce que vient d'écrire Lone, je me demande si le soucis du Edsk n'est pas du au secteur 01 de taille 00 avant le vrai secteur 01 de taille 06 !?
en effet, si je regarde les commandes fdc du loader qui utilise la rom amsdos pour info au passage !
0f 00 27 -> je vais en piste 39
66 00 27 00 c3 02 c3 2a ff -> je lis le secteur c3 de taille 02
0f 00 26 -> je vais en piste 38
66 00 26 00 01 06 01 2a ff -> je lis le secteur 01 de taille 06 @dlfrsilver, sur un cpc avec l'utilitaire que je t'ai fait, peux-tu pas tout simplement voir ce que donne ces deux lectures avec un vrai fdc -> c'est ce qu'il faut mettre dans ces secteurs en format eDsk !
si tu veux voir l' autre secteur de la piste 38 : ce se basant sur les infos de l'EDSK (ou du CT RAW car je ne l'ai pas celui là perso) !!
cela nous donnera la 'vue secteur' qu'il faut mettre dans le format EDSK !!! même si c'est pas beau hein, je préférerai un CTRAW ou un ipf propre en vue piste !!!
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
_________________ SPS Community Expert (SPS CE) / SPS France
Inscription : 29 Août 2007, 12:04 Message(s) : 1990 Localisation : seine et marne 77
batch de ce week-end, une bonne quarantaine de K7 et quelques D7 envoyées par Loic (Merci à Steve).
En IPF : ---------
- 3D Construction Kit v2 (La réédition deluxe de Domark avec la cassette VHS) - Continental Circus (un speedlock des familles) - Masters of the Universe UK - Teenage Mutant Hero Turtles 2 The Coin-Op
En non supporté : --------------------
- Dandy (Mirrrorsoft) (Protection Discsys, vu comme non dupliqué) - Mountain Bike Racer (soft espagnol, vu comme non dupliqué)
La liste en K7 étant bien longue, je vous laisse la compulser en ouvrant l'archive
J'ai aussi généré les HFE depuis les dumps lourds, ils contiennent donc toutes les informations originales.
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
_________________ SPS Community Expert (SPS CE) / SPS France
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 16 invité(s)
Vous ne pouvez pas publier 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 insérer de pièces jointes dans ce forum