# Cílené porovnání obecného ovladače 5.12.3

## Výsledek

Obecný Mimaki Driver 5.12.3 nepřinesl ekvivalent legacy generátoru `MMKPLT.dll` ani monitoru `MPMSERV_1.dll` pro ručně zvolený systémový RAW TCP/11110. Rozbalený instalátor obsahuje dvě potvrzené pro řez relevantní aplikační cesty DeviceIO. Samostatný `CDeviceEtherMdl` otevírá TCP/50002; jeho role je neověřená. Tyto endpointy nejsou důkazem bajtů legacy RAW cesty.

Žádná binárka Windows se nespustila. Ovladač se neinstaloval a plotr nebyl připojen.

## Důvod stažení

Po dekompilaci ovladače 1.60 zůstaly otevřené Q01 a Q02. Archivovaná oficiální stránka `sources/web/CFL-605RT-driver-5.12.3-license.html` výslovně uvádí:

- `Mimaki Driver Ver.5.12.3 (64bit)` na řádku 451;
- `CFL-605RT` mezi podporovanými produkty na řádku 486;
- přímý odkaz na instalátor na řádku 1120.

Tím byla splněna podmínka briefu pro jediný cílený pokus o porovnání aktuálního ovladače.

| Artefakt | Velikost | SHA-256 |
| --- | ---: | --- |
| `sources/web/CFL-605RT-driver-5.12.3-license.html` | 79 113 B | `e1b53a8fed976d43486d0dff045ab91f811037d0f1d8c8a42798347429c9d14f` |
| `sources/drivers/MimakiDriver-v5.12.3-64bit.exe` | 136 367 320 B | `fbdb56d56f61fd29e411ef9ebbde8af24dd082ab83ebe89de64791d5c405f58e` |

### Uložení instalátoru v Gitu

GitHub nepřijme blob větší než 100 000 000 B. Instalátor proto v repozitáři tvoří tři soubory po 64 MiB, 64 MiB a 2 149 592 B. Jejich názvy a závazné pořadí uvádí pole `parts` v `sources.lock.json`. Původní `path`, velikost a SHA-256 nadále popisují jeden logický zdroj. Příkaz `python3 tools/verify_sources.py` části postupně načte, aniž by instalátor skládal na disk, a ověří původní SHA-256 `fbdb56d56f61fd29e411ef9ebbde8af24dd082ab83ebe89de64791d5c405f58e`.

## Jednorázová statická extrakce

Program `bsdtar` oddělil z vnějšího archivu licence a `setup.exe`. `setup.exe` má 136 815 992 B a SHA-256 `7e3a967d80d4b9e3c24432d3afc55ff79b31af0b25de5a782276aae607084ef3`.

Program `7zz` vypsal připojený `ISSetupStream` se 13 záznamy. Záznam `Mimaki Driver.msi` začíná na offsetu `0x1e11d09` a má komprimovanou délku 103 959 691 B. Cílená dekompilace instalační funkce prokázala transformaci po 1024bajtových blocích: masku odvozenou z názvu souboru, XOR, rotaci půlbajtů, bitový doplněk a následný proud zlib. Jednorázový dočasný skript obnovil validní MSI; do projektu se neukládá obecný extraktor.

| Dočasný artefakt | Velikost | SHA-256 | Statický výsledek |
| --- | ---: | --- | --- |
| `Mimaki Driver.msi` | 107 664 896 B | `f7cbecc027e68c21de5637f97238728faa6143ef6639ad5b8eb48d4d4cb7d5c2` | validní MSI v CFB, titul `Mimaki Driver Installer` |
| `Data1.cab` | 100 078 343 B | `db73dcd894f74e389e08f28fe9839e689ba3d36c6cde7ec2e833ecd05fce505b` | MSZip CAB, 697 souborů |

Pracovní MSI, CAB a Ghidra projekty zůstávají mimo Git. Mimo Git zůstává i
dekompresní skript.
Git archivuje rozhodující oficiální stránku, původní instalátor, tři cíleně
porovnané DLL a cílené Ghidra výstupy.

## Porovnané transportní moduly

| Modul | SHA-256 | Konkrétní statický důkaz | Závěr |
| --- | --- | --- | --- |
| `unitCmnControlTcpIp.dll` | `fc86e21a5a91772b90cb9bd8a3e8e93aace708f738f91072659ee9f2e374677e` | exporty `createServer`, `createClient`; import `WSASend`; RTTI `TCPClient` a `TCPBase` | obecná aplikační socketová knihovna, ne port monitor Windows |
| `prtMdcDeviceIO.dll` | `5a674fb3d018be03ce0130fb03f72e34a11ff75a3d2f7a939ee09d44c908e088` | `openDevice` `0x1800082d0` vybírá `CDeviceEtherData` pro typ `0x10` a `CDeviceIDCut` pro `0x200` | aplikační zařízení umí více transportů; není ekvivalent `MPMSERV_1.dll` |
| `unitDeviceIOCtrl.dll` | `234d6b13daad01ca09d86ec9f24e782552be4be6edb723ab6be57ba17eafd8e5` | `IDCutIOCtrl::sendCutData` `0x180016470`, Base64 `0x18001b7d0` | nadřazená aplikační logika DeviceIO, nikoli spoolovací nebo systémový RAW monitor |

Moduly a cílené Ghidra výstupy jsou v `evidence/driver-5.12.3/`. Příkaz `python3 tools/verify_driver_evidence.py` kontroluje jejich cesty, velikosti a SHA-256.

## Transportní cesty 5.12.3 (statický rozbor)

Moduly PE32+ x86-64 mají `ImageBase 0x180000000`. Následující cesty jsou oddělené.

### CDeviceEtherData

- **Ověřeno:** TCP/8002 pro dotaz `netconfig:inf:GigaBitEther?` a případné `netconfig:set:RIP IP:`.
- **Ověřeno:** následné TCP/11110 pro data.
- **Otevřeno:** tento app-vrstvový postup neurčuje počet spojení, první bajt ani ukončení legacy systémového RAW transportu.

### CDeviceIDCut

- **Ověřeno:** TCP/48153.
- **Ověřeno:** `Register_Cutdata_Binary?<id>?<name>?<Base64>\n` a odpověď `True\n`.
- **Ověřeno:** Base64 je součást této cesty. Nejde o surový MGL `IN;…` stream.

### CDeviceEtherMdl

- **Ověřeno:** samostatná funkce `0x180004420` po konfiguraci otevírá TCP/50002
  (`0xC352`). RTTI ji přiřazuje `CDeviceEtherMdl`, ne `CDeviceEtherData`.
- **Otevřeno:** role portu 50002.

## Dopad na legacy RAW TCP/11110

- **Ověřeno:** legacy konfigurace používá systémový Standard TCP/IP Port Monitor a RAW TCP/11110.
- **Otevřeno:** životní cyklus spojení a první síťový bajt legacy RAW cesty.
- **Otevřeno:** zda legacy cesta přidává vlastní rámec k MGL payloadu.

Pro první POC je nejúčinnější minimální budoucí záznam dvou přesně určených dvojic úloh; 5.12.3 slouží jako referenční model, ne jako bajtový důkaz legacy cesty.
