Vývojář Spytihněv, autor počítačové hry Hrot (Wikipedie, ProtonDB), pracuje na nové hře Brno Transit. Jedná se o příběhový psychologický horor o strojvedoucím v zácviku, uvězněném v nejzatuchlejším metru východně od všeho, na čem záleží. Vydání je plánováno na čtvrté čtvrtletí letošního roku.
V uplynulých dnech byla v depu Českých drah v Brně-Maloměřicích úspěšně dokončena zástavba speciální antény satelitního internetu Starlink od společnosti SpaceX do jednotky InterPanter 660 004 Českých drah. Zástavbu provedla Škoda Group. Cestující se s InterPanterem, vybaveným vysokorychlostním satelitním internetem, setkají například na linkách Svitava Brno – Česká Třebová – Praha nebo Moravan Brno – Břeclav – Přerov – Olomouc.
Byla vydána nová verze 8.7.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
Před 30 lety, k 1. 7. 1995, byl v ČR liberalizován Internet - tehdejší Eurotel přišel o svou exkluzivitu a mohli začít vznikat první komerční poskytovatelé přístupu k Internetu [𝕏].
Byla vydána (𝕏) nová verze 7.4 open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.
Balíček s příkazem sudo byl vydán ve verzi 1.9.17p1. Řešeny jsou zranitelnosti CVE-2025-32462 (lokální eskalace práv prostřednictvím volby host) a CVE-2025-32463 (lokální eskalace práv prostřednictvím volby chroot).
Do služeb Seznam.cz se lze nově přihlásit pomocí služby MojeID [𝕏].
Bezpečnostní výzkumníci zveřejnili informace o osmi zranitelnostech, které postihují více než 700 modelů tiskáren, skenerů a štítkovačů značky Brother. Bezpečnostní upozornění vydali také další výrobci jako Fujifilm, Ricoh, Konica Minolta a Toshiba. Nejzávažnější zranitelnost CVE-2024-51978 umožňuje útočníkovi vzdáleně a bez přihlášení získat administrátorská oprávnění prostřednictvím výchozího hesla, které lze odvodit ze
… více »Společnost Oracle vlastní ochrannou známku JAVASCRIPT. Komunita kolem programovacího jazyka JavaScript zastoupena společností Deno Land vede právní bitvu za její osvobození, viz petice a otevřený dopis na javascript.tm. Do 7. srpna se k nim má vyjádřit Oracle (USPTO TTAB).
Byl představen samostatný rádiový modul Raspberry Pi Radio Module 2 s Wi-Fi a Bluetooth.
dd
-čkem zkopíroval image na desktop, a sháněl něco čím to opravit. Nástrojů hafo (jak pro win tak pro lin), ovšem žádný nefungoval, tak jsem ho musel napsat sám.
Tento zápisek je pro případ, že by Windows Mobile 6 opět napadlo že zápis náhodného sektoru do root dir je dobrý nápad, a já bych to musel psát znovu. Algoritmus: načte se FAT, identifikují se konce chainů (0xffff marker), zpětně se dojde na začátek chainu, načte se cluster a otestuje se jestli je to začátek adresáře. Pokud ano a ..
ukazuje na cluster 0, je tento chain adresářem odkazovaným z root dir. Takto nalezené adresáře se proto zapíšou jako nová root dir. Soubory v root dir mě nezajímají, to co jsem potřeboval bylo v adresářích. Jejich jména si skript samozřejmě musí vyvyslet.
Vážně by mě zajímalo co se vlastně stalo. FAT i data byly v pořádku, jen byl přepsán root dir. Taky jsem si všiml že poslední dva bajty boot sectoru nebyly jak má správně být 0xaa, 0x55 ale 0xff, 0x55.
from struct import unpack, pack from string import split from array import array # read boot sec f = open('image', 'r+') bps, spc, res, fats, rdir, spf, secs, fat = \ unpack('<11xHBHBH3xH8xI18x8s450x', f.read(512)) fat = split(fat)[0] if fat != "FAT16": raise rdir = (rdir * 32 + bps - 1) / bps clu0 = res + fats * spf + rdir clus = (secs - clu0) / spc print "DISK: %d + %d * %d %s + %d" % (res, fats, spf, fat, rdir) print "DATA: %d * %d * %d" % (clus, spc, bps) # read fat prev = {} f.seek(res * bps) for i, x in enumerate(array("H", f.read(spf * bps))): prev.setdefault(x, []).append(i) # process chains root = '' for i in prev[0xffff]: chain = [] while 1: chain.append(i) try: i, = prev[i] except: break if i < 2 or len(chain) > 5: continue # read first 2 dir entries f.seek((clu0 + (i - 2) * spc) * bps) n1, c1, s1, n2, c2, s2 = unpack('<' + '12s14xHI'*2, f.read(64)) if n1 == '. \x10' and c1 == i and s1 == 0 and \ n2 == '.. \x10' and c2 == 0 and s2 == 0: root += 'DIR%-5d \x10' % i + pack('<14xHI', i, 0) # write new root dir if len(root) > rdir * bps: raise f.seek((res + fats * spf) * bps) f.write(root + '\0' * (rdir * bps - len(root)))
Tiskni
Sdílej: