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