Statická inventura ovladače CFL-605RT 1.60
Výsledek
MMKPLT.dllje generátor kreslicího proudu. INF jej přiřazuje modelu CFL jakoDriverFile, binárka načítáCFLJJ.PCD, obsahuje příkazové fragmenty MGL a zapisuje přesWritePrinter.CFLJJ.PCDje modelová konfigurace rodiny CFL. Přímo určuje model11, příkazovou větevMGL-IIc, šest per a inicializaciIN;.- Přibalený
MPMSERV_1.dllmá dvě instalační role. INF jej přiřazuje CFL jakoLanguageMonitora samostatnýmonitor.infjej registruje jakoPortMonitorDll. - Dokumentace S02 ručně volí Standard TCP/IP Port Monitor, režim RAW a port 11110. Systémový monitor vytváří TCP spojení pouze pro tuto zvolenou konfiguraci.
- Archiv neprokazuje konkrétní řetězec jedné úlohy, vazbu na zvolený port, životní cyklus spojení ani přesný epilog MGL. Tyto body zůstávají otevřené pro Task 4.
Analýza nespustila žádnou binárku Windows, neinstalovala ovladač a nekontaktovala plotr.
Vzorek a podpis
| Vlastnost | Hodnota | Důkaz |
|---|---|---|
| Zdroj | sources/drivers/SetupCFL_160E.exe |
uzamčený archiv Tasku 1 |
| Velikost | 3 055 616 B | wc -c |
| SHA-256 | 78e8454208e8d9a05f25dd524f9474bad6df9021cc3b23301db0009fa02b5e44 |
shasum -a 256 |
| Formát | PE32 GUI, Intel 80386 | file a objdump -p |
| Bezpečnostní adresář PE | offset 0x2e8200, délka 0x1e00 |
objdump -p |
| Podepisující subjekt v PKCS#7 | C=JP, ST=Nagano, L=Tomi, O=Mimaki Engineering CO., LTD., OU=Technology Division, CN=Mimaki Engineering CO., LTD. |
openssl pkcs7 -print_certs po oddělení hlavičky WIN_CERTIFICATE |
Příkaz signtool verify neověřil Authenticode. Lokální program signtool je nástroj NSS a přepínač verify nezná. Statická kontrola potvrzuje vložený PKCS#7 řetězec a subjekt Mimaki, nikoli aktuální důvěryhodnost celého řetězce.
Instalační vrstvy
| Vrstva | Obsah | Účel a důkaz |
|---|---|---|
| Vnější PE se ZIP daty | ReadmeCGCFE.txt, INF pro x86 a amd64, Setup.exe |
bsdtar -tf vypíše šest položek včetně dvou adresářů. bsdtar obsah rozbalí bez spuštění PE. |
| InstallShield launcher | Setup.exe, 3 982 648 B, SHA-256 f355701c993e169d83d2da5f997b634b3b02fc316e9ce6fc4f5e3779e2eb47af |
metadata PE uvádějí InstallShield 20.0.496, produkt Mimaki CFL Series v160 a verzi 1.60 |
| Připojený InstallShield stream | devět souborů v installshield/Disk1/ |
tabulka UTF-16LE za koncem raw dat všech sekcí PE obsahuje dva CAB soubory, hlavičku CAB, instalační engine a podpůrné soubory |
| InstallShield CAB | 48 souborů v payload/ |
unshield 1.6.2 přečte data1.hdr, data1.cab a data2.cab; oddělí ovladač tiskárny, monitor portu a instalační podporu |
Skript extract-driver-1.60.sh před vytvořením cílového adresáře ověří velikost 3 055 616 B a přesný SHA-256 archivovaného instalátoru. Jiný soubor proto nepředá programům bsdtar ani unshield. Tato vazba brání tomu, aby změněný archiv předal externímu extraktoru škodlivou cestu pro průchod adresářů (path traversal). Skript není obecným extraktorem jiných instalátorů.
Vložený parser nejprve bez zápisu ověří DOS a PE hlavičky, rozsahy všech sekcí, počet streamů, ukončení a dekódování UTF-16LE, číselné délky, cesty, duplicity a rozsahy všech devíti payloadů. Adresář installshield/ vytvoří až po validaci celé tabulky. Potom předá pouze identifikovaný data1.cab programu unshield.
Kompletní inventura obsahuje 61 souborů. driver-files.tsv má pro každý soubor relativní cestu, velikost, SHA-256 a výsledek file. Inventura neobsahuje absolutní cestu.
Modelová konfigurace
INF vytváří tento přímý řetězec:
[CFL]
CopyFiles=@CFLJJ.PCD,MIMAKI_CF,MIMAKIMON
DataSection=CFL_DATA
[CFL_DATA]
DriverFile=MMKPLT.DLL
ConfigFile=MMK_UI.DLL
DataFile=CFLJJ.PCD
LanguageMonitor="MIMAKI Port Monitor2,MPMSERV_1.dll"
CFLJJ.PCD je v x86 a amd64 shodný soubor s SHA-256 15e8fe9037d518f09dee5f12e928def5f3deb04da662731e58cb905ccd723d51.
| Klíč PCD | Hodnota | Dopad |
|---|---|---|
NickName |
CFL |
váže konfiguraci na modelovou rodinu CFL |
MODEL |
11 |
volí modelovou větev sdíleného generátoru |
CUTTING |
1 |
zapíná řezací režim vektorového ovladače |
PAGEINIT |
IN; |
potvrzuje první modelový inicializační příkaz a oddělovač ; |
PENNOMAX |
6 |
potvrzuje šest logických pozic pera |
COMMAND MGL-IIc |
1 |
volí generátor MGL-IIc; veřejný manuál stroje upřesňuje dialekt MGL-IIc3 |
PCD neobsahuje fyzickou mapu šesti per, převod souřadnic ani serializaci profilových hodnot.
Relevantní PE moduly
| Modul | Architektura | Velikost | SHA-256 | Protokolový význam |
|---|---|---|---|---|
payload/Printer_amd64/MMKPLT.dll |
PE32+, x86-64 | 207 872 B | 611da823f97b5f83afa94c28e8b705c61b7cce44d72ab14478a077e0c1029712 |
generátor MGL a vektorový tiskový ovladač |
payload/Printer_x86/MMKPLT.dll |
PE32, Intel 80386 | 178 469 B | 6631893114b6c259ccf339c5ad488f97f5b14094d7918af678b849b258ffb8b2 |
stejná role pro x86 |
payload/Printer_amd64/MMK_UI.dll |
PE32+, x86-64 | 568 832 B | 776a7c85ab85e42b7f5d36387b208d6af71240b0802e58f4129be95ca499bcd6 |
UI a uložení řezných podmínek |
payload/Printer_x86/MMK_UI.dll |
PE32, Intel 80386 | 530 629 B | 067aa61fe194d4f6cd7410c4cd06644458eab621ae1c8f6c33a885486ce7b3ea |
stejná role pro x86 |
payload/PortMonitor_amd64/mpmserv_1.dll |
PE32+, x86-64 | 20 992 B | 3dde1e24123f4803ae66a6315f87fa9ec447a23dcbb0e2432d2b9b5d9038ad1d |
jazykový monitor CFL a vlastní monitor lokálního zařízení |
payload/PortMonitor_x86/mpmserv_1.dll |
PE32, Intel 80386 | 13 824 B | 795bb228d6ec537ead6778cff478b31fca1d30ad579f32b74acd3da7ebcc0e33 |
stejná role pro x86 |
Generátor MGL
MMKPLT.dll splňuje tři nezávislé podmínky identifikace:
MMKCUT.INFjej přiřazuje sekciCFL_DATAjakoDriverFile.- Exportuje
DrvEnableDrivera importuje GDI operace vektorové cesty včetněPATHOBJ_bEnumaPATHOBJ_vEnumStart. - Importuje
WritePrinter, obsahuje textMGL-IIc, klíčeMODEL,PENNOMAXaPAGEINITa krátké příkazové řetězce.
| Offset v amd64 souboru | Fragment | Co lze uzavřít |
|---|---|---|
0x0b40 |
PAPU0,0; |
generátor skládá ASCII mnemoniky a číselné parametry zakončené ; |
0x0d00 |
SP0NR; |
sdílený generátor obsahuje výběr pera a další mnemoniky |
0x0d08 |
PUSP0; |
sdílený generátor kombinuje zdvih a výběr pera |
0x0d14 |
!PG0; |
existuje kandidát proprietárního příkazu |
0x0d20 |
;PR;PU0,0; |
existují relativní režim a zdvih nástroje |
0x0d2c až 0x0d44 |
PU;JP, PU;JR, ;JE;, PU;;;; |
existují kandidáti ukončení nebo přechodu stavu |
Binárka obsluhuje více modelů. Kromě IN; z CFLJJ.PCD proto žádný uvedený fragment ještě není prokázanou sekvencí CFL. Task 4 musí najít větev MODEL=11 a volající funkce.
Transport
INF tiskárny registruje MPMSERV_1.dll jako LanguageMonitor. Samostatný monitor.inf registruje stejný modul jako PortMonitorDll. Modul exportuje InitializePrintMonitor2 a importuje:
SetupDiGetClassDevsW,SetupDiEnumDeviceInterfacesaSetupDiGetDeviceInterfaceDetailW;CreateFileW,DeviceIoControl,WriteFileaGetOverlappedResult;OpenPrinterW,SetJobWaClosePrinter.
Modul nemá statické importy socket, connect, send, recv, shutdown, closesocket ani knihovny Winsock. Neobsahuje řetězce 11110, TCP, UDP, RAW ani SNMP. Tento nález neprokazuje absenci dynamicky vyvolané síťové operace, handshake ani transformace proudu přes callbacky monitoru.
Pro Ethernet dokumentace Mimaki na S02 ručně vybírá Standard TCP/IP Port Monitor, režim RAW a port 11110. Microsoft na S06 potvrzuje, že právě takto zvolený systémový monitor posílá tisková data přes TCP na nastavený port. Archiv ovladače neobsahuje konfiguraci konkrétní tiskárny a neprokazuje, že každá úloha používá tento port.
InitializePrintMonitor2 vrací tabulku callbacků monitoru a jazykový monitor může volat podřízený monitor přes ukazatele funkcí. Task 4 musí určit callbacky StartDocPort, WritePort, ReadPort, EndDocPort a ClosePort a jejich vazbu na zvolený port. Teprve potom může určit řetězec úlohy a případnou transformaci nebo handshake.
Vazba na otevřené otázky
| ID | Přímý nález | Stav po Tasku 3 |
|---|---|---|
| Q01 | S02 ručně volí Standard TCP/IP Port Monitor; INF současně dokládají obě role MPMSERV_1.dll |
konkrétní řetězec jedné úlohy, zvolený port, počet spojení a okamžik zavření zůstávají neověřené |
| Q02 | MMKPLT.dll končí na WritePrinter; MPMSERV_1.dll nemá statické síťové importy, ale může volat podřízený monitor |
první callback, handshake, transformace a první skutečný síťový bajt zůstávají neověřené |
| Q03 | CFL přímo používá IN;; středník je přímý oddělovač příkazů |
epilog a jeho volající větev zůstávají neověřené |
| Q04 | sdílený generátor obsahuje PU, PA a PR; tisková cesta enumeruje PATHOBJ |
pohyb s nástrojem dole a formát bodu zůstávají neověřené |
| Q05 | PCD volí model 11; generátor používá GDI transformace a MulDiv |
konstanty jednotek, osy a znaménka zůstávají neověřené |
| Q06 | PCD dovoluje šest per; sdílený generátor obsahuje SP1 a SP0 |
fyzická mapa nástrojů CFL zůstává neověřená |
| Q07 | UI a nápověda potvrzují rychlost, tlak, offset a nulovou hodnotu s prioritou stroje | bajtový formát, jednotky a zaokrouhlení zůstávají neověřené |
| Q08 | UI obsahuje volby Pass, Auto a číslo nástroje |
opakování geometrie nebo samostatný příkaz zůstávají neověřené |
| Q09 | MPMSERV_1.dll neimportuje ReadFile, ale jeho tabulka může obsahovat ReadPort; S02 vypíná SNMP jen pro ručně zvolený standardní port |
čtecí callbacky, vazba na zvolený port, RAW odpovědi a SNMP zůstávají neověřené |
| Q10 | UI obsahuje registrační značky a mapu hledání 1 až 4 bodů na hodnoty 0 až 4 | MGL sekvence a očekávaný stav zůstávají neověřené |
Žádná otázka Qxx ještě nesplnila svou úplnou podmínku uzavření. Task 3 proto žádnou otázku neodstraňuje.
Moduly vyřazené z další protokolové analýzy
Setup.exe,ISSetup.dll,isrt.dll,_isres_*.dll,MmkSetup.dll,dotnetinstaller.exeaISBEW64.exepatří instalačnímu enginu.MPMUI_1.dll,MBrowse.dllamploc*.iniobsluhují dialog monitoru a výběr adresáře.MBrowse.dllexportuje pouzeChangeFolder.MCF*.chm,CLocalize*.ini, licence, tabulky řetězců a paleta popisují UI. Nápověda zpřesnila význam hodnoty nula, ale neobsahuje bajtový protokol.MMK_UI.dllzůstává pouze podpůrným zdrojem názvů a rozsahů. Nemá důkaz, že zapisuje MGL proud.
Task 4 má dále analyzovat MMKPLT.dll, větev modelu 11, tabulku callbacků MPMSERV_1.dll a vazbu callbacků na zvolený port. Systémový Standard TCP/IP Port Monitor je relevantní pouze pro ručně zvolenou konfiguraci S02.
Reprodukční prostředí
bsdtar 3.5.3, libarchive 3.7.4;- Python 3.14.6, pouze standardní knihovna;
unshield 1.6.2;file 5.41;- Apple LLVM
objdump17.0.0.
Pracovní výpisy objdump, ASCII řetězce, výpisy PE prostředků a rozbalená nápověda zůstávají v ignorovaném adresáři extracted/.