Win11 - Obnovenie nastaveni
Miroslav Mraz
mrazik na volny.cz
Pátek Únor 14 14:46:38 CET 2025
Jenže rozdělení na program, data a zásobník není zase tak striktní,
třeba lokální proměnné mohou být na zásobníku. Prostě to musí být nějak
svázáno s překladačem. Nevím jak to mají Windows, ale Linux má program v
RX (tedy v podstatě read only) stránce, statická data v RW stránce, kód
z ní tedy spouštět nejde, nejde spustit ani z oblasti zásobníku. Jde ale
dost jednoduše namapovat stránku s právy RWX, do ní nakopírovat cokoli a
to pak spustit.
Tohle má docela dobře ošetřeno webassembly. Aplikace běží v sandboxu,
takže ven, na železo se nedostanete, ale nejde do toho dostat ani nějaký
binární blob, který by po spuštění umožnil systémové volání. Sice jde v
C-čku pracovat s ukazateli na funkce, nepřímé volání funguje, ale nikdy
nedostanete opravdickou adresu funkce. Ta mezivrstva, která se posílá
přes web tomu zabrání.
Vůbec je to složitá problematika, dnešní procesory mají spoustu
choulostivých míst z principu a obvykle se najde někdo, kdo si toho
všimne a pak už je jen otázka času kdo a kdy to zneužije.
Mtazík
On 14. 02. 25 14:09, Pavel Hudeček wrote:
> No tohle je pro mě nepochopitelný, proč když 386 a dál, větší ARMy a
> všechny další CPU u kterých má smysl normální OS, mají HW memory
> management s oddělenými adresními prostory programu, dat a zásobníku, ...
> Microsoft to snadno moh udělat když dělal Windows NT, ale neudělal.
> Linux začal na zelený louce a zase nic.
> Proč?
>
> PH
>
>
Další informace o konferenci Hw-list