Jak sestřelit Sinclair QL po síti QLAN

Hackerské kousky z temného úsvitu se vrací.

A přesně ve starém stylu.

Jeden z triků, jak kolegovi u sousedního Sinclairu QL, připojeného přes síť QLAN, znepříjemnit život, jsem už popsal.

Vtipný příkaz

OPEN #3,n2_con_512x256a0x0:PAPER #3:CLS #3:PAUSE:CLOSE #3

obšťastní síťovou stanici 2 černým prázdným oknem přes celou obrazovku.

A teď tu máme nový kousek.

Oč jde?

Musím upozornit, že se netýká původního síťového ovladače v QDOS, který používá hlavičku kompatibilní se ZX-Net, ale rozšiřujícího ovladače v Toolkitu – toho, který přidává příkaz FSERVE.

Původní hlavička umožňuje posílat pakety do délky 255 bajtů, kdy 0 opravdu znamená nula bajtů.

Ve skutečnosti se pošle sice celý paket 255 bajtů nějakých dat z bufferu (i nenaplněného), ale ta se nezpracují.

To se ale v nové verzi změnilo, aby bylo možno pro sdílení souborů pomocí FSERVE přenášet rychleji data, velikost paketu je až 1020 bajtů a velikost je samozřejmě označena dvoubajtovou hodnotou místo jednobajtové.

V případě paketu délky nula (dvojbajtově) se tak ale přenese poctivě 64kilobajtový paket!

Sice se tím dočasně dosáhne, díky absenci nějaké té paketové režie při přenosu takového množství dat, šokující rychlosti 6.3 KBps, ale…

…ale těmi 64 kily hluchých dat se přepíše vše v definici kanálu za NET CDB, přemázne se 64 kilo obsahu paměti.

Klasické přetečení bufferu (buffer overflow) používané hackery už od těch temných dob počátku sítí a internetu.

Kdy se ovšem přenáší paket délky nula?

Takových situací moc není, naštěstí, a tak bylo obtížné na tuto chybu vlastnost přijít.

V podstatě jedinou, na kterou se podařilo přijít, je otevření síťového kanálu a jeho opětovné uzavření bez odeslání nějakých dat.

Takže zlomyslný příkaz s oknem přes celou obrazovku můžeme upravit na ještě zlomyslnější:

OPEN #3,n2_ser1:CLOSE #3


__________________________________________

Abyste neřekli, že už dlouho nebyla žádná vtipná historka:

I stalo se mi, že se mi rozbila jedna z mých ED disketovek u QL.

Že nevíte, co je ED disketovka?

Inu, 3,5″ diskety jsou, jak známo, buď DD s kapacitou 720 KiO (double density), nebo HD s kapacitou 1440 KiO (high density).

Nu a u QL mám ještě ED, které umí 3,2 MiO (extra-high density).

Samozřejmě, mám i klasické DD disketovky, protože ne každý řadič ED zvládne, ale Gold karta i SuperGold karta s HD i ED médii zacházet umí.

Abych v tom neměl brajgl, označil jsem si ED disketovky samolepkou (a vtipným nápisem “DD, HD, ED 3,5″ drive”).

No a stalo se, že ta jedna ED disketovka najednou nefungovala.

Nechtěla číst diskety.

Po určité prokrastinaci a odkládání nevyhnutelného přišlo na to, že je třeba se pustit do opravy.

Zkusil jsem prohodit mechaniky A: a B:, ale bez efektu.

Nojo, Shugart, to není jako u IBM PC kódované pozicí na (kříženém) kabelu, já mám kabel nekřížený a disketovky jsou nastavené jumperem.

Tak jsem se chvilku pral pinzetou s mikroskopickými jumpery, bylo to nelehké, ale podařilo se mi prohozené disketovky i správně přesvičovat (to je krásné české slovo, že?).

Výsledek byl, že to stále nefungovalo.

Nu, ještě jednou jsem disketovky rozebral a koukl na ně.

NEC FD1037A.

Tak jsem založil DD disketu a ona fungovala.

Ono NEC FD1037A jsou DD disketovky.

Jak se na nich proboha ocitla moje ED samolepka a nálepka s nápisem “DD, HD, ED 3,5″ drive”?

No nic, opatřil jsem disketovky novou nálepkou “DD” a budu počítat s tím, že mám u QL jeden řadič, schopný ovládat HD a ED disketovky, ke kterému ty HD a ED disketovky nemám.