[Thomson] Systèmes de protection des cassettes MO5

Tout ce qui concerne le logiciel original et sa sauvegarde avec entre autre la régénération des disquettes ou autres supports physiques.

Modérateurs : Papy.G, fneck, Carl

Répondre
Daniel
Messages : 17288
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

[Thomson] Systèmes de protection des cassettes MO5

Message par Daniel »

Je crée un nouveau fil de discussion pour parler de la protection des cassettes MO5, sujet très méconnu qui a toujours excité la curiosité des thomsonistes. Pour commencer, quelques liens de ce qu'on trouve sur le sujet :

http://forum.system-cfg.com/viewtopic.p ... 91&p=29802
http://regards.sur.sciences.free.fr/his ... ssette.htm
http://forum.system-cfg.com/viewtopic.php?f=1&t=6690

Dans le forum, il y a beaucoup d'autres posts évoquant les protections de cassettes MO5, en particulier dans le transfert sur PC de logiciels Thomson et dans la conversion sur disquette des programmes sur cassettes. Mais rien de bien structuré. Ce nouveau sujet sera donc utile, j'y répondrai à toutes vos questions.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
6502man
Messages : 12242
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [Thomson] Systèmes de protection des cassettes MO5

Message par 6502man »

C'est une bonne idée :D

En premier lieu, il pourrait être bien de faire une liste, plus ou moins exhaustive des protections existantes sur MO5 ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
nicolho
Messages : 409
Inscription : 10 nov. 2016 16:53

Re: [Thomson] Systèmes de protection des cassettes MO5

Message par nicolho »

6502man a écrit :En premier lieu, il pourrait être bien de faire une liste, plus ou moins exhaustive des protections existantes sur MO5 ?
Oui, ça serait super ! Et par la même occasion une liste (même partielle) des programmes protégés, qu'on sache où on met les pieds :)
Daniel a écrit :Le fichier .k7 (....) a été modifié pour fonctionner dans l'émulateur : les routines spéciales de lecture de la cassette ont été remplacées par un code opération 6809 invalide, interprété ensuite par dcmoto.
(cette citation est tirée de la discussion "fichiers.lep", mais pour la question, c'est plus dans le sujet ici)
Juste pour être sûr : est-ce que ça signifie que les fichiers .k7 sont également patchés avec ces codes invalides pour les accès magnéto (et pas seulement les entrées des routines cassette en ROM émulée) ??

rajout : Et si oui, est-ce que les fichiers distribués incluent déjà ces modifications ? ou bien l'émulateur les modifie en mémoire, après chargement (sans parler de la rom) ?
Daniel
Messages : 17288
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Systèmes de protection des cassettes MO5

Message par Daniel »

La liste des protections est un peu difficile à faire, car chaque titre est un cas particulier. Contrairement aux jeux sur disquettes, qui utilisaient assez souvent la même protection chez un même éditeur, les jeux sur cassettes MO5 sont protégés au coup par coup. On trouve parfois des ressemblances d'une protection à l'autre, mais elle ne sont pratiquement jamais identiques. A chaque fois qu'un contributeur m'envoie le fichier .wav d'un nouveau jeu, c'est un nouveau challenge car il faut trouver la protection et la contourner. Avec les outils actuels c'est difficile, mais on n'y arrive. A l'époque, dans les années 1980, nous n'avions que le MO5 comme outil, c'était un véritable défi. Il fallait parfois plusieurs mois pour trouver.

J'ai un outil pour transformer les fichiers cassettes standard Thomson en fichiers .wav : dcmok7_2010.04
Vous le trouverez à http://dcmoto.free.fr/emulateur/index.html
Pour savoir si une cassette est protégée, utilisez cet outil. S'il crée le fichier .wav sans erreur, la cassette n'est pas protégée. S'il trouve des blocs invalides, c'est là que se trouve la protection.

Bien entendu, on peut aussi protéger les programmes Basic en les sauvant par SAVE"XXXXX",P
Ils sont cryptés avant d'être écrits sur la cassette et il est impossible de les lister, mais la cassette garde le format standard Thomson. Dans ce cas le programme lui-même est protégé, mais je considère que la cassette n'est pas protégée.

Pour lire les cassettes protégées, les éditeurs utilisent leur propres routines de lecture et n'appellent pas les routines système. L'émulateur dcmoto les détourne, tout comme il détourne les routines système, en les remplaçant par un code opération invalide. Dans ce cas, les fichiers .k7 distribués sur le site dcmoto sont patchés, pour fonctionner avec l'émulateur. Pour permettre la création de cassettes utilisables sur la vraie machine, il y a aussi un fichier .wav contenant la version originale.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
Falkor
Messages : 1701
Inscription : 28 juin 2010 12:09
Localisation : Cluny, Saône et Loire

Re: [Thomson] Systèmes de protection des cassettes MO5

Message par Falkor »

Je vais poser une question (vraiment) stupide, mais quand on parle de protection de cassette, c'est protection contre... quoi ? La copie ?

Si on effectuait une copie à l'aide d'une double platine cassette de salon, ça ne marchait pas ? J'ai du mal à voir en quoi une platine de salon se préoccupe des problèmes de CRC...? :?

EDIT : non apparemment c'est pour protéger du code contre la lecture...?
Daniel
Messages : 17288
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Systèmes de protection des cassettes MO5

Message par Daniel »

Copie d'un autre post de la section bricolage :
Daniel a écrit :La protection ne permet pas la reproduction par les routines standard Thomson. Elle n'empêche pas la reproduction par des magnétophones analogiques. Mais en analogique, les copies sont bonnes, les copies de copies un peu moins, et après trois ou quatre copies successives la cassette est illisible. C'est ce qui empêche le piratage massif.
La protection des cassettes est uniquement destinée à empêcher la copie par des moyens informatiques.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
Falkor
Messages : 1701
Inscription : 28 juin 2010 12:09
Localisation : Cluny, Saône et Loire

Re: [Thomson] Systèmes de protection des cassettes MO5

Message par Falkor »

Daniel a écrit :La protection des cassettes est uniquement destinée à empêcher la copie par des moyens informatiques.
Ok merci pour les précisions !
nicolho
Messages : 409
Inscription : 10 nov. 2016 16:53

Re: [Thomson] Systèmes de protection des cassettes MO5

Message par nicolho »

Daniel a écrit :Pour lire les cassettes protégées, les éditeurs utilisent leur propres routines de lecture et n'appellent pas les routines système. L'émulateur dcmoto les détourne, tout comme il détourne les routines système, en les remplaçant par un code opération invalide.
Ok, ils n'utilisent pas les routines systèmes pour lire la cassette (avec un branchement dans le "moniteur") mais leur code cassette interagit quand même avec les registres du PIA concernés.
Donc ça t'oblige à analyser le code pour trouver les accès à ces registres (qui servent aussi à d'autres choses), puis retrouver les points d'entrée des routines cassette "maison" du programme (du style dédiée à récupérer un octet) pour le patcher ? (à moins que ça puisse être en partie automatisé?)

D'ailleurs, est-ce que tu détournes en utilisant exactement les mêmes "codes-opération invalides" que tu as affecté aux entrées des routines systèmes (comme RDBITS ou RDBYTE) ou bien tu en utilises aussi d'autres pour des "détournements" spécifiques (et est-ce que DCMOTO contient du code sur mesure spécifiquement conçu pour tel ou tel programme protégé ?)
Dans ce cas, les fichiers .k7 distribués sur le site dcmoto sont patchés, pour fonctionner avec l'émulateur. Pour permettre la création de cassettes utilisables sur la vraie machine, il y a aussi un fichier .wav contenant la version originale.
Le souci, c'est que comme le rappelait _sam_, la plupart des émulateurs MO5/TO7 (sauf MESS) utilisent cette technique des opcodes invalides pour les détournements, mais pas forcément les même que ton émulateur...

Du coup, si elles intègrent déjà des codes (opération) pour les détournements de DCMOTO, les images modifiées au format .k7 que tu distribues ne seraient pas universelles, mais réservées à DCMOTO ? (je suppose, corrige-moi si je me trompe, et ce n'est pas une critique).
Dans ce cas, si je voulais les faire fonctionner, par exemple avec emul5, il faudrait alors que je modifie à mon tour ces codes, soit dans les fichiers k7, soit dans le code source de l'émulateur utilisé ?
Daniel
Messages : 17288
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Systèmes de protection des cassettes MO5

Message par Daniel »

nicolho a écrit :à moins que ça puisse être en partie automatisé?
C'est purement manuel. Il faut désassembler le programme et le comprendre.
nicolho a écrit :D'ailleurs, est-ce que tu détournes en utilisant exactement les mêmes "codes-opération invalides"
Oui
nicolho a écrit :est-ce que DCMOTO contient du code sur mesure spécifiquement conçu pour tel ou tel programme protégé ?
Non
nicolho a écrit :la plupart des émulateurs MO5/TO7 (sauf MESS) utilisent cette technique des opcodes invalides pour les détournements, mais pas forcément les même que ton émulateur... Du coup, si elles intègrent déjà des codes (opération) pour les détournements de DCMOTO, les images modifiées au format .k7 que tu distribues ne seraient pas universelles, mais réservées à DCMOTO ? (je suppose, corrige-moi si je me trompe, et ce n'est pas une critique).
Oui, c'est bien ça, mais je ne pouvais pas faire autrement. Je suis le seul à avoir mis sur internet des fichier .k7 protégés, et dcmo5, puis dcmoto existaient bien avant les modules Thomson de Mess.
nicolho a écrit :Dans ce cas, si je voulais les faire fonctionner, par exemple avec emul5, il faudrait alors que je modifie à mon tour ces codes, soit dans les fichiers k7, soit dans le code source de l'émulateur utilisé ?
Tu ne risques pas de faire tourner des cassettes MO5 protégées avec emul5, il ne le permet pas.
Les cassettes MO5 protégées au format .k7 (et modifiées par mes soins) ne fonctionnent que dans dcmoto. Les fichiers .wav originaux fonctionnent dans MESS. Hormis ces deux là, aucun autre émulateur MO5 est capable de charger une cassette protégée.

Avec le format .lep, la situation change dans le sens que tu souhaites : il permet de faire une image de la cassette sans modifier les protections, il est donc possible pour tous les émulateurs de l'utiliser pour charger les programmes protégés.
Daniel
L'obstacle augmente mon ardeur.
nicolho
Messages : 409
Inscription : 10 nov. 2016 16:53

Re: [Thomson] Systèmes de protection des cassettes MO5

Message par nicolho »

Un grand merci d'avoir pris la peine de répondre point par point, aucun souci concernant les images patchées, bien au contraire, et le format .lep va en effet s'approcher d'une compatibilité plus universelle, aussi bien pour les émulateurs que pour les machines réelles.
Ribs
Messages : 7
Inscription : 09 févr. 2017 23:45
Localisation : Massy / Rennes

Re: [Thomson] Systèmes de protection des cassettes MO5

Message par Ribs »

Daniel a écrit : Bien entendu, on peut aussi protéger les programmes Basic en les sauvant par SAVE"XXXXX",P
Ils sont cryptés avant d'être écrits sur la cassette et il est impossible de les lister, mais la cassette garde le format standard Thomson. Dans ce cas le programme lui-même est protégé, mais je considère que la cassette n'est pas protégée.
Il me semble que ce mode de protection ne faisait qu'empêcher l'exécution de certaines commandes du Basic (par exemple LIST), après chargement du programme .BAS.
Je me souviens qu'il suffisait de faire un poke &21FB,57 avant le chargement, sur MO5, pour contourner cette protection... Il y avait un équivalent sur TO7, à une autre adresse, mais je ne la connais pas.
Fool-DupleX
Messages : 2271
Inscription : 06 avr. 2009 12:07

Re: [Thomson] Systèmes de protection des cassettes MO5

Message par Fool-DupleX »

Emul5 ne détournait pas les routines cassette, les bits étaient injectés sur le PIA, du reste il émulait aussi le son de la cassette. J'avais développé un format .kci dès 1999 pour encoder des signaux cassette non standard. Mais ce format était lourd et mal fichu, c'était une fausse bonne idée. Par ailleurs, j'avais fait le tour avec Emul5, il était suffisant pour mon usage. J'ai donc abandonné cette idée et il est exact de dire qu'Emul5 ne permet pas aujourd'hui de lire des cassettes "protégées", mais il est aussi exact qu'Emul5 est obsolète depuis 15 ans.

Qu'est-ce qu'une cassette protégée ? J'ai toujours copié les miennes avec un double deck quand j'étais gamin. Peu importe le flacon tant qu'on a l'ivresse ... :lol: Au final, il suffit d'encoder les delta temps entre les transitions du signal. C'était l'idée du .kci, couplée à un peu de compression gzip, en option. Dans une deuxième version, j'avais imaginé de faire une sorte d'hybride, toutes les parties standard stockées comme un .k7 standard et les signaux anormaux façon .kci v1. La v2 n'a jamais vu le jour.

Ce format était universel et ne nécessitait pas de couteux reverse + modification des programmes pour fonctionner.

La preuve de ce que ce vieux gâteux de fool-duplex radote :lol: traine encore par ici :

http://lair.thomsonistes.org/mo5/kci/index.htm

Pour la culture générale, pour le ,P du BASIC, le décodage des programmes est facile. Premier constat : seules les données changent dans les blocs et le fichier conservent exactement la même structure et surtout, la même taille. On realisera donc la manip suivante : ecrire un programme d'une ligne de basic de ce genre :

10 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Si on sauvegarde avec ,P, on constate que les données "chiffrées" se répètent au bout de 13 octets (si mes souvenirs sont bons). En fait, c'est un simple XOR avec 13 octets de la ROM BASIC. En XORant le chiffre avec le clair pour le programme ci-dessus, on obtient la clé, qu'on peut ensuite utiliser pour décoder un autre fichier.

Les programmes BASIC compactés avec Compactor étaient de mon point de vue plus pénibles à relire [en utilisant les outils de l'époque].

Et pour les encodages spéciaux, évidemment c'est encore une autre histoire. Le coup de la routine de lecture cachée dans la mémoire graphique était par exemple un truc particulièrement vicieux que j'ai toujours trouvé très élégant.
Daniel
Messages : 17288
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Systèmes de protection des cassettes MO5

Message par Daniel »

Le format .lep est idéal pour faire des images de cassettes Thomson, protégées ou pas contre la copie. Il fonctionne non seulement avec les cassettes Thomson MO et TO, mais aussi avec toutes les cassettes des autres ordinateurs. Il a été testé en particulier sur VG5000 et Alice, mais la liste de compatibilité va certainement s'allonger.

Le lecteur SDLEP fonctionne bien et permet d'ores et déjà de remplacer les magnétophones des "vrais" ordinateurs. Il reste à modifier les émulateurs pour leur faire lire les fichiers .lep.

Voir http://dcmoto.free.fr/bricolage/sdlep-reader/index.html
Daniel
L'obstacle augmente mon ardeur.
Répondre