Problème de lecteur de disquette sur machine d'usinage

Pour tout ce qui touche au PC d'IBM et ses nombreux descendants. Attention tout de même, au delà de quelques MHz la discussion devient vite hors sujet.

Modérateurs : Carl, Papy.G, fneck

Avatar du membre
Falkor
Messages : 617
Enregistré le : 28 juin 2010 12:09
Localisation : Cluny, Saône et Loire

Re: Problème de lecteur de disquette sur machine d'usinage

Message par Falkor » 25 sept. 2015 08:22

Bonjour à tous,

Petit message pour venir aux nouvelles... Pour résumer et en un mot, le réseau fonctionne ! :)

Pour résumer rapidement mes passionnants échanges avec Jojo (que je remercie encore infiniment au passage pour son aide précieuse), il a tout d'abord recherché chez lui une carte PCI pouvant fonctionner avec windows 3.11. Entre les cartes non fonctionnelles, les soucis de pilotes et les réinstallations de windows 3.11, il a pu finalement trouver un couple carte/pilotes qu'il m'a fait parvenir.

Mais attention ! Aucune bricole sans backup ! Un PC de test m'a permis de faire des images du module flash avant/après mise en réseau afin d'assurer mes arrières... Encore une fois, jojo m'a bien assisté là dessus, j'ai juste eu à installer les logiciels et à lancer les copies.

J'installe la carte dans le PC de la machine, et j'installe le pilote, puis la couche TCP/IP. Demande des diverses disquettes windows, redémarrage, et là, tout fonctionne !! Coté câblage, la machine n'étant pas reliée physiquement au réseau filaire de l'entreprise, j'ai recyclé une borne wifi répéteuse qui m'a permis de créer un réseau filaire "local", une borne wifi "arrosant" l'atelier. Cette borne est alimentée par une sortie 240V générée par la machine, cette dernière étant alimentée en 400v triphasé.

Partage du dossier contenant les sources programmes, mise en accès complet, aucun souci, l'accès au dossier se fait naturellement via le réseau de l'entreprise. Un simple copier-coller. Quel rêve ! Plus de soucis, contenu du PC sauvegardé, accès réseau fonctionnel, que demander de plus ?

Hé bien j'avais des idées ! Le logiciel utilisé pour réaliser ces fameux programmes de découpe, un logiciel Italien tournant sous DOS, me posait des difficultés. Disquettes, doc, dongle //, j'avais tout, mais impossible de lancer le logiciel sous un PC tournant sous Windows 98. Problèmes de mémoire, de fichier licence et autres, j'avais plus ou moins laissé tomber. Après discussions avec Jojo, je me suis dit qu'il était la personne qu'il fallait pour s'occuper de cela. Envoi du dongle et des disquettes, il s'est ensuite occupé de tout. Redémarrage du soft quasiment immédiatement (Jojo, tu confirmes ?) et étude de la possibilité de virtualiser le dongle et de faire tourner le soft sous un OS plus moderne. Et bien il l'a fait aussi ! Bon pas sous XP, mais aucun souci pour windows 98.

Autre chose ? Mais oui ! Passons à la machine en elle même. Le logiciel utilisé pour piloter physiquement la machine (lecture du programme, déplacement des axes, gestion des sécurités et autres) s'appelle SIAX et tourne donc sous windows 3.11. Possibilités de faire tourner sous un autre OS ?

Pas de chance, un simple copier/coller des dossiers ne fonctionne pas : le logiciel demande un code d'accès (que j'ignore bien évidemment) et se lance en mode simulation ! Mes essais sur un PC de test montre que le soft ne se préoccupe pas de la machine ! La seule façon actuelle de s'en sortir est d'utiliser une image réelle sur un disque : là le soft cherche à se connecter à la machine (via port série). Un système de protection un poil tordu nous empêche pour l'instant de faire ce que nous voulons. Mais Jojo est encore sur le coup !!

Petites photos pour terminer :

Carte réseau avant installation :

Image

La carte dans le PC :

Image

Copie des fichiers en cours... Entre les pilotes en anglais, les disquettes de windows 3.11 en français et la base du PC en italien, la machine est maintenant trilingue !

Image

Et l'écran de login après redémarrage :

Image

(EDIT : Oupss, j'ai un peu abusé sur le format des photos j'ai l'impression... Que les modérateurs m'excusent...)

Bref, tout fonctionne...!

J'en profite pour vous remercier de votre aide, et particulièrement à Jojo, qui m'a énormément permis d'avancer sur la remise en route de la machine ! Coté mécanique elle n'est pas encore tout à fait prête (certains carters trop rouillés doivent être remplacés par de l'inox). Mais la pièce de test est en préparation !! (J'y retourne immédiattement d'ailleurs !)

Bonne fin de semaine à tous.

Avatar du membre
Totor le Butor
Messages : 1385
Enregistré le : 07 sept. 2011 16:14
Localisation : Paris

Re: Problème de lecteur de disquette sur machine d'usinage

Message par Totor le Butor » 25 sept. 2015 09:16

Falkor a écrit :...simple copier/coller des dossiers ne fonctionne pas...
Sous Windows 3.11 ou DOS, les protections de logiciels sont souvent très basiques.
1- Regarde avec PC-Tools ou Norton Commander si tu n'as pas un fichier caché dans le répertoire d'installation du soft ou à la racine, dans ce cas il suffit de supprimer l'attribut H (Hiden) pour pouvoir le copier.
Tu peux avoir d'autres fichiers avec des attributs inconnus mais de toute manière PC-TOOLS ou NC te permettront de copier facilement les fichiers sur une disquettes ou un disque dur.
2- Parfois, même si le soft se lance sous DOS, tu peux avoir des paramêtres de lancement dans le WIN.INI ou le SYSTEM.INI, dans ce cas il suffit de les recopier dans la machine de destination.
Born to bricole
[Rch] Vieux composants électroniques et circuits intégrés toute époque et vieilles cartes .

Avatar du membre
Falkor
Messages : 617
Enregistré le : 28 juin 2010 12:09
Localisation : Cluny, Saône et Loire

Re: Problème de lecteur de disquette sur machine d'usinage

Message par Falkor » 25 sept. 2015 09:59

Ça à l'air d'être plus compliqué que ça... :?

Je laisse Jojo intervenir, mais le soft joue avec des clés et des fichiers temporaires, et ça n'a pas l'air simple. :(

Avatar du membre
jojo
Messages : 401
Enregistré le : 13 mai 2007 13:27
Localisation : Entre la France, la Suisse et l'Italie ...

Re: Problème de lecteur de disquette sur machine d'usinage

Message par jojo » 25 sept. 2015 15:26

Puisque Falkor me repasse le bébé, je vais répondre ! :)

D'abord, le dongle: pas simple. Même avec le dongle, le logiciel refuse de fonctionner sour XP car il fait des appels directs au matériel LPT ce que ne permet plus XP et suivants (enfin, ce que j'en ai déduit puisque les ports sont virtualisés). En fouinant - de longues, longues, très longues heures, vive la retraite :wink: - sur le net, j'ai fini par trouver un logiciel capable de lire l'adresse de la clé, un autre pour sauvegarder le contenu crypté de la clé. Puis, avec ces précieux sésames, un obscur logiciel chinois m'a enfin permis d'émuler le dongle mais uniquement pour Win9x. Le plus dur dans l'histoire, c'est de retrouver, dans des sites obscurs (vous avez dit hackers ?) et surtout pas en français, ces logiciels qui datent tous des années antérieures à 2000 et qui ne tournent que sous des OS anciens ! Et je ne parle pas des dizaines de téléchargement de softs vérolés et/ou inutilisables (merci mon antivirus). J'ai même retrouvé un émulateur qui ne fonctionne que sous DOS mais comme il s'implante dans la mémoire conventionnelle (suppression de himem.sys), il ne reste pas de quoi lancer le soft qui fonctionne en mode graphique ! Ça aurait été beaucoup plus simple si l'USB avait existé à cette époque (les émulateurs de Softkey et Hasplock sont assez faciles à trouver)

(@Totor) Pour l'autre logiciel, si ça avait été une simple copie de fichier caché voire une simple suppression de jne/je ou autre jnz/jz et jcxz et une modification par jmp dans le code du programme, pas de problème, je pense savoir encore faire !

En 1er, ce logiciel est écrit pour une utilisation dans une armoire de machine à commandes numériques. Interface minimaliste, obligatoirement plein écran (donc inutilisable avec Seven), fonctionnement exclusif (Alt-tab n'est pas utilisable sauf avec XP) et pilotable uniquement au clavier. Pas simple à déboguer dans un PC !
Le logiciel n'est pas nationalisé, il utilise des tags pour les différents messages (une difficulté de plus pour retrouver le code lié aux messages de protection). Il tourne sous Windows (vbrun300, .VBX et autres dll). Sous XP, il se lance dans ntvdm/wowexec (machines virtuelles) d'où la possibilité d'utiliser alt-tab.
Le logiciel est un .exe "packed". Il se décompacte en mémoire pendant la 1ère phase de son lancement. Un éditeur hexa ne sert à rien ! Ensuite, il est à la norme "NE" New Executable, un format intermédiaire qui n'est plus utilisé de nos jours, entre les exe pour dos et les exe actuels pour windows. Les débogueurs actuels ne savent pas gérer ce genre de programme.
Il est écrit en 16 bits donc les désassembleurs modernes ne savent pas faire non plus. Il faut alors utiliser TurboDebugger pour Windows de Borland qui, lui-même, se lance dans une autre machine virtuelle sous XP ! Sous Win9x, c'est un peu plus simple mais TDW est exclusif et ne permet pas de basculer dans un éditeur de RAM par exemple ... ou alors, j'ai raté quelque chose ! La souris est complètement désactivée puisque le logiciel fonctionne sur une armoire de commandes numériques (juste un clavier) ce qui rend les choses encore moins aisées !

D'après mes observations, la protection consiste à créer un dossier inutile qui reste vide + dans un autre dossier un fichier de 150Ko à contenu aléatoire en fonction de l'heure, de la date et de l'emplacement du logiciel sur le disque et d'autres données que j'ignore (CRC ? FAT ?). Ensuite, avec tous ces éléments, un code - code opérationnel - de 12 chiffres tous significatifs est créé.
Ce code est variable selon la machine, l'OS et la structure actuelle du disque dur. Il peut changer après une réinstallation complète du système y compris sur la même machine avec le même OS et la même arborescence ! Point positif: le logiciel peut être installé sur n'importe quelle partition dans la machine et même sur clé USB. Il se lance dans tous les cas de figures (en mode démo sans la clé)

En même temps que le code opérationnel, une clé de débridage à 12 chiffres est générée (algorithme sans doute assez sophistiqué et 1000 milliards de possibilités). Si la clé entrée au clavier correspond, cette clé est écrite dans une zone inutilisée de la FAT et/ou de la zone de données (clé retrouvée grâce à un éditeur hexadécimal de disque dur) ainsi que dans un fichier password.dat sur le disque. Ensuite le logiciel ne demandera plus la clé sauf ..... si on déplace ou renomme le fichier password. Dans ces cas-là, le code généré reste le même, la clé également, le logiciel la demande, recrée le fichier password et la clé sera à nouveau écrite dans une autre zone du disque dur. Si on modifie le fichier password, il est simplement récrit avec la bonne clé. Si on déplace ou renomme le dossier complet, le logiciel continue de fonctionner, ce qui me laisse à penser que la clé est écrite dans une partie des secteurs alloués à ce dossier (gap de fin de secteur ?). Pas de fichier caché, rien dans win.ini ni dans system.ini. Le code et la clé sont donc intimement liés à l'installation et au 1er lancement et la simple copie de password.dat ne suffit pas.

La seule solution pour trouver le mécanisme est de suivre instruction machine par instruction machine le déroulement du programme qui, compacté, pèse la bagatelle de 1.5 Mo. A ce niveau, le temps nécessaire au décryptage des instructions et au débogage de centaines d'appels aux fonctions de VBrun, à ses extensions (VBX), aux dll de Windows et à celles internes au programme, y compris à des fonctions non documentées de MSDOS, ainsi que ce qui me reste de mes connaissances de l'assembleur et du DOS ne me permettent pas de trouver le mécanisme de protection et de le contourner ! Je ne sais même pas si le logiciel reteste la présence de la clé écrite sur le disque au cours de son fonctionnement (probablement oui lors d'une sauvegarde/lecture de fichiers)

Cerise sur le gâteau: le logiciel est capable de détecter la présence du debugger et lève une exception - que je ne sais pas capturer - dans certaines routines ... sans doute, celles qui sont les plus critiques concernant la protection ! Les enjeux commerciaux sont sans doute très grands pour ce genre de programme et de grands moyens ont dû y être consacrés !

Pour le moment, j'ai trouvé une astuce qui me permet de retrouver la clé mais j'attends la confirmation de Falkor à qui j'ai fait parvenir une image disque en principe fonctionnelle avec windows en français ! :wink:. Dans tous les cas, cette astuce ne marchera qu'une fois et ne s'appliquera qu'à cette seule installation ...... et ce n'est ni un déplombage du logiciel ni la génération d'une clé en fonction du code opérationnel généré lors du 1er lancement du logiciel.

Si tout fonctionne comme prévu, pour moi, le "contrat" sera rempli puisque Falkor pourra implanter le logiciel dans une machine plus récente et surtout, il suffira de garder précieusement une image disque pour une réinstallation ultérieure quand le PC donnera à nouveau des signes de faiblesse (pas de soucis de mises à jour avec Win9x ou XP, c'est l'avantage !) Il n'y aura même pas besoin de changer le pilote écran puisque logiciel ne demande qu'un écran de VGA de base 640*480 en 16 couleurs. Le logiciel est même capable de communiquer à travers un adaptateur USB/RS232 (j'utilise un câble série + une machine à l'écoute pour tester l'envoi de données) Ça laisse de belles perspectives pour des machines récentes et modernes ... même si on n'a pas les pilotes nécessaires !

Comme je l'ai déjà dit à Falkor lors de nos échanges, je le remercie pour m'avoir obligé de me rafraîchir la mémoire, pour m'avoir forcé à exhumer mes plus anciennes machines pour les tests (3 disques durs qui ont lâché en 2 jours, capacités et géométries tellement anciennes qu'un adaptateur IDE/USB est inutilisable) et pour le un beau souk de disquettes/disques/machines/câbles/cartes qu'on peut trouver actuellement dans mon bureau ! :wink: :lol:

Répondre