Pluto.jl, reaktivní notebook pro programovací jazyk Julia, dospěl do verze 1.0.
Byla vydána nová verze 12.0.0 vizuálního programovacího jazyka Snap! (Wikipedie) inspirovaného jazykem Scratch (Wikipedie). Přehled novinek na GitHubu.
Počítačovou hru Gravity Circuit (ProtonDB) lze do 14. června do 19:00 získat na Steamu zdarma. Napořád.
Nejnovější X.Org X server 21.1.23 a Xwayland 24.1.12 řeší 9 bezpečnostních chyb.
npm balíčky @redhat-cloud-services byly kompromitovány.
Byly publikovány informace o zranitelnosti CVE-2026-46243 pojmenované CIFSwitch v Linuxu od roku 2007. Běžný uživatel může získat práva roota (lokální eskalaci práv). V upstreamu je již opraveno.
Nvidia na své konferenci NVIDIA GTC Taipei 2026 představila řadu novinek. Společně s Microsoftem představili superčip NVIDIA RTX Spark (až 6 144 jader GPU, 20 jader CPU, 1 petaflop AI výkonu v FP4 a 128 GB jednotné paměti). První notebooky a stolní počítače s tímto čipem od Nvidie místo Intelu nebo AMD by se měly na trh dostat na podzim letošního roku.
Na Kickstarteru běží kampaň na podporu kapesního počítače s Linuxem CardputerZero od společnosti M5Stack. Postaven je na Raspberry Pi Compute Module 0. Podporuje moduly M5. Koupit lze s rozšířeními LoRa a CC1101.
Tento týden se bude vyznačovat zejména deštěm, a proto vás může zajímat, že již v úterý proběhne 63. Virtuální Bastlírna, která se bude odehrávat přímo v teple vašich domovů a bastlíren. Proto se připojte k této volné otevřené diskuzi bastlířů, techniků, vědců, ve které se probírají novinky a zajímavá témata z techniky. Mezi největší novinky bude tentokrát patrně patřit oznámení hackerského nástroje Flipper One. Zároveň úspěšně probíhá
… více »86Box (Wikipedie), tj. emulátor retro počítačů založených na x86, byl vydán ve verzi 6.0. Přibyly například zvuky pevného disku. Na GitHubu jsou vedle zdrojových kódů ke stažení také připravené balíčky ve formátu AppImage.
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: