HUMOR: Soutez

Pavel Kankovsky peak na kerberos.troja.mff.cuni.cz
Středa Leden 13 22:10:00 CET 1999


On Wed, 13 Jan 1999, Stanislav Meduna wrote:

> On 12 Jan 1999 20:26:04 +0100, Pavel Kankovsky wrote:
> 
> : Otazka pro jeste vetsi experty: existuje postup, jak uplne vygumovat /
> : bez pomoci bootovaci diskety resp. nahradniho /?
> 
> Pokial je u mke2fs force naozaj force, mozno by to slo.
> Inak dd if=/dev/zero of=/dev/hdax ... vygumuje dostatocne :-)
> a ext2ed-om by tiez mohlo ist nieco docielit.

Vidim, ze na ABSOLUTNE KOREKTNI (tj. takovy, ktery v zadnem okamziku
neuvede system do nekonzistentniho stavu) postup asi nikdo neprijde.
Predpokladejme BUNO, ze ma byt vyrusen pouze jeden filesystem.

Resenim je vyrobit takovy program, ktery 0. remountuje / pro zapis,
1. smaze vsechny soubory a adresare krome / (a mozna /lost+found), 2.
uvede se do stavu, ze sam nema otevreny zadny soubor (odkazuje se jedine
na /, protoze musi mit nejaky cwd a root, pokud to zrovna neni kernel
thread), 3. zavola umount("/") a pak muze skoncit. Predpoklada se, ze
nikdy neprovede fork() (ani execve()). Takovy program se pak spusti pri
nabotovani jadernym parametrem init=...

Dukaz korektnosti: po provedeni bodu 1. bude fs prazdny az na urcitou
mnozinu dosud otevrenych souboru. Po provedeni bodu 2. budou i tyto
soubory fyzicky smazany (protoze zadny jiny proces, krome kernel threadu) 
nebezi. Po provedeni 3. bude filesystem odmontovan a dostane se do
konzistentniho "cisteho" stavu.

Jak takovy program vyrobit? Problem je hlavne krok 2. Pro a.out je to
trivialni: staci, aby takovy program byl prelozen jako OMAGIC a jadro ho
nacte do pameti a soubor uzavre. Pro ELF je to komplikovanejsi, protoze
jadro program vzdy "nacita" pomoci mmap(). Resenim je naalokovat nejake
anonymni stranky, kam bude nakopirovan kod, ktery zrusi vsechna neanonymni
mapovani (cimz budou mapovane soubory uzavreny) a provede krok 3.

Nepredpokladam, ze by to nekdo delal v praxi, ale jako dusevni cviceni to
neni spatne. :)

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"NSA GCHQ KGB CIA nuclear conspiration war weapon spy agent... Hi Echelon!"



Další informace o konferenci Linux