vendredi 7 août 2026

ETM1810/M/A: Etude des commandes

L'analyse des chaînes de caractère présentes dans le firmware du modem permet d'inférer les commandes disponibles, une bonne partie de celles-ci, si ce n'est toutes, ayant déjà été documentées sur le site de Cryptomuseum. 

La version du firmware étudié est ici '*ETM Version 2JR1123' avec les modules du paquetage 'JET'.


1- INTERFACE

Les commandes de l'interface système sont accessibles en allumant l'équipement tout en appuyant sur les touches MODE et ESC. Attention, ces commandes sont suceptibles de rendre inopérant l'équipement.

Main valid commands are:
<DSP> for testing the DSPs
<PROGRAM> For program management
<MEMORY> For testing the memory
<SYSTEM> For system utilities
<TEST> For misc. tests
<VERSION> For showing the linkdate
<item.HELP>For displaying topic help

DSP valid commands are:
DSP.MEM.COPY<nr> <dsp addr><src ad.> <len>Copy to DSP memory
DSP.MEM.DUMP<nr> <dsp addr><len> Dump DSP memory
DSP.MEM.FILL<nr> <dsp addr><bytes> {<val>}Fill DSP memory with a 32bit val.
DSP.MEM.WR <nr> <dsp addr><bytes> {<val>}Write and read DSP memory
DSP.MEM.TEST<nr> <dsp addr><bytes> <val> Compare DSP mem. with a 32bit val.

Extended DSP valid commands are:
DSP.BOOT reboot DSP4 and DSP5
DSP.CSB <dspno> Show CSB struct
DSP.EMV Start DSP4/5 prog. 20 and show value at 0x80000000
DSP.FIRMWAREUPDATE <dspno> <prog no> Update DSP4/5 FLASH
DSP.HDRCMD <cmd> Command to HDR DSP4 prog. and poll status
DSP.MEMORY Access to DSP memory
DSP.REG <dspno> <C|A|B|DF|EF|DI|EI> {<hex value>} Read/Wwrite DSP4/5 regs
DSP.TEST <dspno> {<len>} {<1|2>} DSP tests at DSP addr. 0x81000000
DSP.X Reset DSP4 and DSP5
DSP.Z <dspnr> Poll HPIC

MEM valid commands are:
MEM.CMP <addr1> <addr2> <len> Compare memory
MEM.CPY <dest addr> <src addr> <len> Copy memory
MEM.DUMP <addr> <len> Dump memory ('e2p' => EEPROM)
MEM.DSREC <addr> <len> Memory dump as SREC
MEM.D2UMP <addr> <len> Dump memory (16-bit)
MEM.FILL <addr> <bytes> <value> Fill memory with a 32-bit value
MEM.FILL e2p <{0x}index> <byte value> Fill EEPROM
MEM.TEST <addr> <bytes> <value> Compare memory with a 32-bit value
MEM.ERASE <addr> <len> Erase memory

PROG valid commands are:
PROG.ALLOC <typ> <{no}> <{size}> <{pos}> For allocating memory
PROG.BOOT <typ> <no> Sets the boot flag
PROG.ERASE <typ> <no> For deleting a program
PROG.INFO> For a extended list of available programs
PROG.LOAD <typ> <{no}> <{entry}> <{name}> For loading a program
PROG.NAMESTART <typ> <DSP no> <name> For starting a program
PROG.SHOW> For a list of available programs
PROG.RUN <typ> <no> <{DSP cmd}> <{DSP addr offs}> <{DSP no}> For starting

Program Types valid commands are:
[ ICP | DSP]
>
SYSTEM valid commands are:
SYSTEM.BAUD <baudrate>To change the control line baudrate
SYSTEM.KALTSTART For "KALSTART"
SYSTEM.LOADER {<typ>} To activate the loader
SYSTEM.RESET For resetting the system

TEST valid commands are:
TEST.1 Test 1


2- CONFIGURATION

Les commandes de configuration sont accessibles dès la mise sous tension de l'équipement après que l'autotest ait été effectué.

Ces commandes n'ont pas encore été identifiées dans le firmware du 68302. Elles pourraient être traitées par les modules en mémoire Flash, modules qui n'ont pas encore été récupérés. A l'heure actuelle la liste de commandes proposée sur le Cryptomuseum reste la seule disponible.



La carte principale comporte 2 CPLD ipsLSI-1048 dont la programmation s'effectue hors site via un port JTAG. Ce composant dispose d'un fusible de protection de la programmation.


La durée de rétention minimale des données est annoncée à 20ans. Il va me falloir regarder s'il est possible de tenter une extraction in-situ pour disposer d'une sauvegarde des codes 529544-156-47/0 et 529544-156-48/0. Le connecteur 8-pins en ligne est peut-être celui qui permet de programmer ces deux composants ...

jeudi 6 août 2026

ETM1810/M/A: Test et première étude

Un modem ETM1810/M a été mis en vente sur eBay il y a quelques temps. La documentation sur ce matériel est inexistante hormis la description détaillée proposée sur le site CryptoMuseum. Cette documentation m'a confirmé l'intérêt de cet équipement en particulier dans sa version la plus étendue dite 'ETM1810/M/A'.

La référence à la version n'apparaît que sur le coté de l'équipement, et encore. Elle était ainsi absente sur l'équipement en vente. Cependant, l'étude des NSN présentés sur Cryptomuseum laissait entendre que le modèle alimentée en 24VDC n'existait que sur la version étendue. 

J'ai donc fait le pari d'obtenir la version étendue en achetant les yeux fermé ce modem d'autant que le prix était dérisoire au regard des prix pratiqués sur d'autres modems presque équivalents notamment chez Harris.

Sitôt reçu d'Allemagne aujourd'hui, sitôt ouvert: il s'agit bien de la version étendue disposant de deux cartes comportant en tout 5 DSP Texas. Une alimentation 19V de PC en stock est aussitôt convertie pour alimenter l'équipement qui annonce une version logicielle 'JET', soit la dernière version référencée sur CryptoMuseum. Cette version propose 12 formes d'onde chargées en Mémoire Flash.

Après mise sous tension et premier autotest, le modem est démonté pour accéder aux EPROM présentes sur la carte de base. Le code est copié pour sauvegarde et étude. Une réflexion va devoir être menée pour copier le(s) code(s) en mémoire flash. Si une telle commande n'existe pas, il me faudra implémenter une fonction de dump vers la liaison console dans le firmware original.

Pour cela, le firmware est reconstitué (les EPROM 8bits sont sur un bus 16bits) puis chargé sous Ghidra. Le processeur utilisé est un CPU dédié MC68302. Ce modèle n'est pas totalement intégré dans Ghidra mais un désassemblage en tant que 68300 devrait permettre de découvrir les premiers secrets de ce firmware assez remarquable si l'on en croit la description faite par Cryptomuseum.

Ma femme reste toujours étonnée de cette approche sur un matériel fonctionnel mais tout analyste ou reverseur connaît cette fièvre proche de celle d'un chercheur d'or qui vous prend et ne vous lâche plus tant que, a minima, les principes n'ont pas été compris.

Plus de 453 chaînes de caractère sont rapidement détectées qui confirment:
- le rôle d'orchestrateur du CPU,
- une capacité de chargement en format S-Record (skipping S-Record with address %p at line %d),
- la version du système (*ETM Version 2JR1123),
- des messages de traces du fonctionnement (HDR cmd %s sent to DSP %d),
- plusieurs listes de commandes avec une aide complémentaire,
- des chaînes cryptiques (veR$oisi1 :n$ 7., SCR$elifps :rtc1 c.l) symboles d'assemblage ?

En revanche, je n'ai trouvé aucune information sur l'utilisation d'un éventuel OS temp réel, ni référence aux messages affichés concernant les protocoles et modes de fonctionnement dans ce code. Ceci laisse entendre que ces informations sont intégrés dans les modules dédiés et transmis sur demande au processeur central.

La suite va consister à étudier le hardware (présence de mémoires double accès, de Ram dédiée à chaque DSP, de mémoire flash, de deux EPLD...), interfacer l'équipement en mode 'console' et à tester les commandes déjà découvertes.

lundi 3 août 2026

TRTG2A: Petit nouveau presque complet

Il ne manquait que son coffret de rechange au TR-TG-3A que j'ai dernièrement acquis. Le rassemblement radio-amateurs qui s'est tenu le 25 juillet à Marennes a été l'occasion de compléter cet ensemble. Devant passer une semaine du coté de La Rochelle, je me suis arrangé pour partir un jour plutôt afin d'assister à ce rassemblement. J'ai pu y acheter quelques longueurs de coaxial, et sur un stand pourtant déjà parcouru, m'attendait ce coffret de rechange complet !

Un vrai coup de chance, l'ensemble m'ayant été proposé pour une somme inférieur au prix couramment pratiqué pour trois 6005.