[Thomson] Déprotection des disquettes commerciales
Modérateurs : Papy.G, fneck, Carl
[Thomson] Déprotection des disquettes commerciales
La plupart des disquettes commerciales Thomson sont protégées contre la copie, en général par un formatage spécial d'une ou plusieurs pistes. Cette protection empêche la création de disquettes réelles pour le "vrai" matériel, mais aussi l'exécution dans dcmoto. C'est pourquoi toutes les images de disquettes proposées sur le site de l'émulateur ont été déprotégées.
Avec l'expérience je connais assez bien les méthodes de protections utilisées par les principaux éditeurs et je les détourne facilement. Mais de temps en temps certaines me résistent, et j'ai pensé que d'autres thomsonistes pourraient m'aider. C'est un défi intellectuel souvent plus distrayant (et plus difficile) que le jeu lui-même. En plus de l'aspect ludique il contribue à la sauvegarde du patrimoine.
Je crée ce nouveau sujet pour proposer les fichiers .fd qui restent à déprotéger. Voici le premier :
Avec l'expérience je connais assez bien les méthodes de protections utilisées par les principaux éditeurs et je les détourne facilement. Mais de temps en temps certaines me résistent, et j'ai pensé que d'autres thomsonistes pourraient m'aider. C'est un défi intellectuel souvent plus distrayant (et plus difficile) que le jeu lui-même. En plus de l'aspect ludique il contribue à la sauvegarde du patrimoine.
Je crée ce nouveau sujet pour proposer les fichiers .fd qui restent à déprotéger. Voici le premier :
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7987
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] Déprotection des disquettes commerciales
Alors sur DCMOTO 2015.05.29 quand on lance le jeu sur TO8 par "B", on voit un écran blanc et on se retrouve sous le basic peu après. En revanche sous TEO 1.7.7 le jeu se lance tout à fait normalement.
Es tu sur qu'il s'agisse d'une protection et pas un bug de l'émulation quelque part ?
Es tu sur qu'il s'agisse d'une protection et pas un bug de l'émulation quelque part ?
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [Thomson] Déprotection des disquettes commerciales
C'est bien une protection : le programme accède directement au contrôleur de disquette par les ports $E7D0-$E7D7 sans passer par les routines système. Il faut faire un point d'arrêt en $85E2 et observer la suite.
TEO émule extrêmement bien le contrôleur (grâce à Préhisto), et je crois qu'il a des fonctions spéciales pour déjouer les protections. Dcmoto se contente de détourner les routines système, c'est pourquoi il se plante si elles sont contournées. De même en simulation de disquette sur carte SD ça ne marche pas, car le contrôleur CS91-280 interprète uniquement les fonctions standard du moniteur.
Je n'ai pas encore essayé avec une vraie disquette et un vrai TO8D, je vais le faire pour vérifier.
TEO émule extrêmement bien le contrôleur (grâce à Préhisto), et je crois qu'il a des fonctions spéciales pour déjouer les protections. Dcmoto se contente de détourner les routines système, c'est pourquoi il se plante si elles sont contournées. De même en simulation de disquette sur carte SD ça ne marche pas, car le contrôleur CS91-280 interprète uniquement les fonctions standard du moniteur.
Je n'ai pas encore essayé avec une vraie disquette et un vrai TO8D, je vais le faire pour vérifier.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7987
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] Déprotection des disquettes commerciales
Dans ce cas c'est plus un bug dans l'émulation des registres du lecteur de D7 qu'une vraie protection, car cela n'empêche pas e faire marcher une copie de la diskette.Daniel a écrit :C'est bien une protection : le programme accède directement au contrôleur de disquette par les ports $E7D0-$E7D7 sans passer par les routines système.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [Thomson] Déprotection des disquettes commerciales
It's not a bug, it's a feature. Ni dcmoto, ni le contrôleur CS91-280, n'émulent les registres du contrôleur de disquette.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7987
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] Déprotection des disquettes commerciales
En effet, et c'est bizzare qu'un jeu tape directement dans le controlleur. Il y avait plusieurs controlleurs en circulation et tous ne se programment sans doute pas de la même façon. Le logiciel risquait à l'époque de ne pas marcher sur tous les thomsons, ce qui est dommage. En effet, du peu que j'ai vu, l'interface graphique est très soignée.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [Thomson] Déprotection des disquettes commerciales
Si tu observes bien la routine de contrôle de la protection, elle teste le type de contrôleur et la suite du programme diffère pour chaque type. D'après ce que j'ai vu le programme cherche à lire un secteur formaté de façon non standard. Si le secteur n'est pas trouvé le programme s'autodétruit et plante l'ordinateur. Si on supprime cette lecture le chargement continue, l'écran change de couleur un peu plus loin puis la machine affiche quelques cadres avec des images et le programme se plante.
Ce matin j'ai créé une vraie disquette et testé avec un vrai TO8D. Comme prévu le programme cherche à lire ce fameux secteur spécial, fait les quatre retries prévus par la routine de contrôle ci-dessous (on entend le bruit caractéristique du lecteur), puis se plante.
Je n'ai même pas essayé avec une carte SD, il sûr et certain que ça ne peut pas fonctionner.
C'est pourquoi je cherche à contourner la protection. Il ne suffit pas de supprimer la lecture du secteur spécial, il doit y avoir plus loin un contrôle de checksum ou autre qui empêche le bon déroulement de la suite. C'est ce que je cherche, et je n'ai pas encore trouvé.
Si j'étais de mauvaise foi, je dirais que dcmoto (qui se plante) émule mieux le TO8D (qui se plante aussi) que TEO (qui ne se plante pas). Mais je suis tout à fait conscient de la qualité de TEO : non seulement il émule bien le contrôleur de disquette, mais en plus il contourne les protections de disquettes sans modification du fichier image. Je pourrais faire pareil dans dcmoto, mais l'objectif principal est de faire fonctionner la disquette sur carte SD, donc ça ne suffirait pas. Il faut absolument contourner la protection.
Ce matin j'ai créé une vraie disquette et testé avec un vrai TO8D. Comme prévu le programme cherche à lire ce fameux secteur spécial, fait les quatre retries prévus par la routine de contrôle ci-dessous (on entend le bruit caractéristique du lecteur), puis se plante.
Code : Tout sélectionner
858E 1A50 ORCC #$50
8590 8604 LDA #$04
8592 3402 PSHS A
8594 8D2C BSR $85C2 <- lecture speciale
8596 2417 BCC $85AF --|-- lecture OK
8598 1700B1 LBSR $864C | | temporisation
859B 6AE4 DEC ,S | |
859D 26F5 BNE $8594 -- | retry quatre fois
859F 3502 PULS A | lecture en erreur
85A1 10CEDFFF LDS #$DFFF |
85A5 8E7048 LDX #$7048 |
85A8 10EF81 STS ,X++ <-- | destruction memoire
85AB 3404 PSHS B | |
85AD 20F9 BRA $85A8 -- |
85AF 3502 PULS A <------
C'est pourquoi je cherche à contourner la protection. Il ne suffit pas de supprimer la lecture du secteur spécial, il doit y avoir plus loin un contrôle de checksum ou autre qui empêche le bon déroulement de la suite. C'est ce que je cherche, et je n'ai pas encore trouvé.
Si j'étais de mauvaise foi, je dirais que dcmoto (qui se plante) émule mieux le TO8D (qui se plante aussi) que TEO (qui ne se plante pas). Mais je suis tout à fait conscient de la qualité de TEO : non seulement il émule bien le contrôleur de disquette, mais en plus il contourne les protections de disquettes sans modification du fichier image. Je pourrais faire pareil dans dcmoto, mais l'objectif principal est de faire fonctionner la disquette sur carte SD, donc ça ne suffirait pas. Il faut absolument contourner la protection.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7987
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] Déprotection des disquettes commerciales
Ce qui me surprend c'est que j'ai donné le même FD à TEO. Or le FD ne contient pas l'info de format spécial. Donc en toute logique TEO doit planter pareil que DCMOTO, or ca n'est pas ce qu'il se passe. C'est curieux. Tout doit se jouer dans la routine "lecture spéciale" en $85C2.
J'avais une doc sur les points d'entrée du monitor DOS.. mais je ne la retrouve plus
[EDIT], ayé, retrouvé http://collection.thomson.free.fr/code/ ... ?XI=1&XJ=1
Donc $E004 avec $20 en commande = recherche de piste 0. C'est curieux que ca retourne C=1, non ?
Code : Tout sélectionner
85C2 CE6048 LDU #$6048 3
85C5 8610 LDA #$10 2
85C7 A7C4 STA ,U 4
85C9 BDE004 JSR $E004 8
85CC 8620 LDA #$20 2
85CE A7C4 STA ,U 4
85D0 BDE004 JSR $E004 8
85D3 2570 BCS $8645 3 ==> CC=1 en sortie
[EDIT], ayé, retrouvé http://collection.thomson.free.fr/code/ ... ?XI=1&XJ=1
Donc $E004 avec $20 en commande = recherche de piste 0. C'est curieux que ca retourne C=1, non ?
Dernière modification par __sam__ le 05 févr. 2017 10:24, modifié 1 fois.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [Thomson] Déprotection des disquettes commerciales
De mémoire, dans les anciennes versions de TEO que j'ai analysées, il y a un traitement spécial pour les formatages spéciaux en piste 79, mis en place pour contourner certaines protections. Je n'ai pas encore vérifié si c'est encore vrai pour la dernière version.
Dans dcmoto les secteurs dont le numéro est inférieur à 1 ou supérieur à 16 ne sont pas lus et retournent une erreur.
En $E004, c'est l'appel des fonctions standard du contrôleur de disquette.
Les codes opérations ci-dessous sont passés en $6048
Dans dcmoto les secteurs dont le numéro est inférieur à 1 ou supérieur à 16 ne sont pas lus et retournent une erreur.
En $E004, c'est l'appel des fonctions standard du contrôleur de disquette.
Les codes opérations ci-dessous sont passés en $6048
Code : Tout sélectionner
---------------------------------
DKCONT = Fonctions standard
00= formatage
01= initialisation controleur
02= lecture secteur
04= positionnement simple densite
08= ecriture secteur
10= positionnement double densite
20= recherche piste 0
40= recherche de piste quelconque
80= verification en ecriture
---------------------------------
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] Déprotection des disquettes commerciales
Un petit lien avec quelques screenshots du jeu :
http://www.misagamestore.fr/img/Thomson ... ur_CARRAZ/
Je vous rappelle que je n'ai pas l'original, c'est une copie.
Peut être que l'utilitaire qui a permis à l'époque de faire la copie a lui même ajouté une protection
contre la copie afin que lui seul puisse le copier de nouveau.
http://www.misagamestore.fr/img/Thomson ... ur_CARRAZ/
Je vous rappelle que je n'ai pas l'original, c'est une copie.
Peut être que l'utilitaire qui a permis à l'époque de faire la copie a lui même ajouté une protection
contre la copie afin que lui seul puisse le copier de nouveau.
Re: [Thomson] Déprotection des disquettes commerciales
La copie a été faite avec un copieur "évolué", qui a reproduit le formatage spécial de la disquette. Elle est donc conforme à l'original.
Omniflop ne traite pas les formats spéciaux, et même s'il savait les lire la structure des fichiers .fd ne permet pas de les reproduire.
Omniflop ne traite pas les formats spéciaux, et même s'il savait les lire la structure des fichiers .fd ne permet pas de les reproduire.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7987
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] Déprotection des disquettes commerciales
Bon, de mon coté j'ai viré tous les tests en $853, $85E0, $8600, $8606, $860E, etc... bref les trucs où l'on teste le CC en retour $E004 et les valeurs lues dans les registres du controlleur. Le programme va beaucoup, beaucoup plus loin. Et me semble parfaitement opérationnel!
Je pense que les tests sur les valeurs des registres du controlleur sont inutiles. Ce ne sont que des tests, aucune valeur n'est retournée à l'issu de la procédure. Il n'y a pas de risque à les virer.
Je pense que les tests sur les valeurs des registres du controlleur sont inutiles. Ce ne sont que des tests, aucune valeur n'est retournée à l'issu de la procédure. Il n'y a pas de risque à les virer.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [Thomson] Déprotection des disquettes commerciales
J'ai fait l'essai, dans ce cas un écran finit par s'afficher, mais est-ce le bon ?
Je ne crois pas. Normalement on devrait avoir un écran de présentation.
Je ne crois pas. Normalement on devrait avoir un écran de présentation.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Thomson] Déprotection des disquettes commerciales
J'obtiens bien cette même première image sur MESS. En effet c'est assez cryptique et je sais pas ce qu'on est censé faire, mais en appuyant sur le touche entrée ou en cliquant (je sais pas trop ) ça charge la suite (sur le seconde face on dirait) et ça affiche ce menu sur lequel on peut cliquer pour lancer les petits jeux :
C'est pareil pour vous ?-
- Messages : 7987
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [Thomson] Déprotection des disquettes commerciales
Oui j'ai bien ce 1er éran gris et noir sur fond blanc qui me semble expliquer le fonctionnement du jeu. La 1ère case en haut à gauche avec le "?" sur l'image consiste à trouver l'image correspondant au mot en bas. Le case au dessous avec le "?" sur le mot c'est l'inverse: trouver le mot pour l'image. La case décalée au milieu consiste à trouver la bonne lettre pour compléter le mot représenté par l'image (ici un 'f' pour l'en?ant du dessin). La case en haut à droite doit reconstituer une phrase complète à partir des images, etc. En gros le jeu consiste relier des images à des mots pour des enfants du niveau C.P.
Nous, les vieux, on a du mal avec ces pictogrammes, mais pour les enfants ciblés ca doit reprendre des jeux qu'ils font à l'école et c'est donc carrément évident
Plus loin dans le jeu ca se joue avec les touches entrée et barre-espace, mais je n'ai pas encore trouvé comment on sort d'un de ces mini-jeux.
Nous, les vieux, on a du mal avec ces pictogrammes, mais pour les enfants ciblés ca doit reprendre des jeux qu'ils font à l'école et c'est donc carrément évident
Plus loin dans le jeu ca se joue avec les touches entrée et barre-espace, mais je n'ai pas encore trouvé comment on sort d'un de ces mini-jeux.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos