( turdus | 2012. 06. 18., h – 18:13 )

"GPF kezelo futasa *kozben* okoz a jol megkonstrualt exploit payload valamit, aminek hatasara a control flow *elterul*"
Sok a duma. Hogyan? Egyetlen egyszer beinjektálhatsz kb 100 összefüggő adat byte-ot, aminek bizonyos helyein kötött értékek vannak, és ettől persze probléma nélkül eltérül a kód. Mutasd mester, hogyan!

"> 3. "A" GPF handler indul (injektálás)
*itt* rovid uton page fault/akarmi tortenik"
Mitől? Hogyan? Azzal váltod ki a PF-et, hogy átírod az IDT-t? Azt bizony triggerelni is kéne, és te ugye kódot nem futtatsz, csak egyetlen adatstruktúrát írsz felül.

"na es honnan jonnek ez az ertekek? nahat, csak nem az epp felbeszakitott userland taszk regiszter kontextusabol? :)"
Nem, a cpu shadow registereiből jönnek. Várjál, súgok, Intel Manual vol 3. 3.4.3-as és 5.14.2-es fejezet.
Egyébként meg tessék, szeretném látni, hogy rsp-n kívül bármelyiket módosítod úgy, hogy az ne okozzon egyből exceptiont!
Azért ennyire alap x86-os mechanizmust nem ismerni elég égő egy kernel fejlesztőnek.

"mivel a syscall cimet te kontrollalod, igy ezen keresztul az rcx-be kerult erteket is"
Ha kicsit visszavennél az arcodból, és elovastad volna az attackot rendesen, akkor tudnád, hogy az CSAK EGY BIZONYOS címről működik, azaz rcx nagyon is kötött. Csak akkor működik az egész, ha rip+sizeof(syscall)>2^(membusz szélesség).

Megvannak a kötszerek, Julien?

Eddig kb ennyi értelme van a hozzászólásaidnak (mivel kódot, barátom, azt bizony nem mutattál egy bitet se).
---------------------------------------
1. átírni valahol valami kernel adatot
2. ???
3. root prompt!
---------------------------------------