( turdus | 2012. 06. 21., cs – 16:08 )

"az elobb meg azt irtad, hogy "max 62 byte áll rendelkezésedre" ;)"
Merthogy a maradék byteokat nem tudod átírni. Mi nem világos ebben?

"ha azt szeretned, hogy megtanitsalak kernel exploitot irni"
Nem. Azt szeretném, hogy bizonyítsd be az állításod, és vedd rá a CPU-t, hogy 5 darab 42-es értéket tegyen a verembe a CS+RIP+FLAGS+SS+RSP kombó helyett ISR híváskor.
Semmivel nem támasztottad alá ugyanis a mondandód (azon kívül, hogy személyeskedsz akár csak a csicskásaid, akik el vannak ájulva attól, hogy egyszer megpatkoltad a kernelt, ami ráadásul sosem került a mainlineba. Vajon miért? Újfent segítek: "Saying to the kernel developers "here, throw this huge blob of code into your kernel because otherwise we're taking our ball and going home" is not how it works." Mintha ők is azt fájlalnák, hogy csak dumálsz, de az érdemi részek nem készülnek el)

"de amugy nem, a PF-t nem ez valtja ki, hanem mint fentebb irtam, pl. egy exploit altal kontrollalt pointer hasznalata"
Akkor miért is szakadna félbe a stackírást követően a GP handler futása? Megint önellentmondásba keveredtél, ami nem csoda, ha valaki nincs otthon a témában.

"popf. en nyertem? ;)"
Hát, sikerült hülyét csinálni magadból, az nem vitás. Azt mondtad, kódot nem injektálsz, márpedig (de javíts ki mester) a popf bizony utasítás. Mellesleg miért és mitől pop-olna ki bármit is a GP handler, mikor patcheletlenül nem teszi?

"en nem csak elolvastam, de veled ellentetben meg is ertettem ;)"
Akkor miért írsz ilyen hülyeségeket: "mivel a syscall cimet te kontrollalod, igy ezen keresztul az rcx-be kerult erteket is"? Mióta kontroll az, egyetlen egy bizonyos értéket állíthatsz csak be, hogy aktíválódjon a GPF?

"aszondod van egy fasza keplet a rip-re. nem igazan igaz, de tegyuk fel"
Elovastad, meg is értetted, mi? ROTFL, ROTFL, ROTFL. Szerinted ez mit jelent?
"At the syscall handler entry, rcx will be set to (1<<47)-2+instruction_len(syscall) = 1<<47, which is non-canonical."
Várj, elmagyarázom (úgy látszik szükséges). A RIP-et olyan címre irányítod, hogyha hozzáadod a lefuttatott syscall utasítást (gyk. következő utasítás címének meghatározása), akkor a cím túlcsordul. Azt ugye tudod, mi az a túlcsordulás?

"exploit altal beadott fuggveny pointeren keresztul szepen meghivja az exploit ring-0 reszet. persze ezt is leirtam mar parszor"
Leírtad, de azt nem írtad, hogy mitől is hívódna meg a pointeren tárolt fgv. Merthogy, figyelj, alap matek:
1. beírni valamit a memóriába (egy pointert) az egy művelet
2. beírni egy pointert a memóriába, és ráugrani a benne tárolt címre, na az két művelet.
Neked egyetlen egy injektálási lehetőséged van (lefordítom, egy művelet), ami során kódot nem injektálsz, mégis hogy akarod a második műveletet kivitelezni? Na erre nem bírsz válaszolni, inkább személyeskedsz, ami arról tanúskodik, hogy még csak nem is érted a problémát, nemhogy választ tudnál adni rá.

Szerintem abbahagyhatod, mert sikerült eléggé lejáratnod magad. (Segítek, azzal, hogy 1. nem tudsz olvasni vagy szövegérteni, 2. dumálsz, de alátámasztani semmit sem tudsz, sem linkkel, sem példakóddal, se semmivel).