"mibol gondolod, hogy 'a GP handler vegez'?"
Ha nem végez, akkor csak megfektetted a gépet, de nem jutottál root privilégiumhoz.
"nem ertem milyen keves adatrol beszelsz. ott a teljes cimterem. meg a kernele is."
Csak néhány bytenyi adat fér el a GPR-ekben, nem a teljes címtér...
"miert feltetelezed, hogy az IDT-ben felulirt byte-okat en kodkent akarom vegrehajtani? mitol lenne ervenytelen az IDT? speciel pont az a celom, hogy sajat interrupt gate-et tegyek bele, amit utana triggerelve szepen a sajat kodom fog vegre futni."
Mégis, milyen saját kódról beszélsz? Leírtam már világosan, hogy össz-vissz az a pár byteod van, amit beinjektáltál, ebben kell megoldanod azt is, hogy felülírj egy gate-t, és azt a programot is, amire a gate mutat! Másra nem tudsz ugyanis hivatkozni, mert a többi kódod (azt, amiben a syscall utasítást írtad és futtattad) már bebuktad.
pl:
rsp=IDT+14*16-x (pl page fault gate-je, x-et úgy kell megválasztani, hogy rdx kerüljön az IDT+14*16-ra)
legalább 5*8 byte garbage
rax=garbage, nem használhatod
rbx=kevés egy gatehez
rcx=garbage
rdx, rsi=(gate adatai, base address=ahová az rdi kerül a push során)
rdi=isr-ed első bytejai
r8,r9,r10=isr-ed további bytejai
r11=garbage, a kódodban át kell ugrani
r12,r13,r14,r15=isr
Ezért (attól függően hogy mennyi regisztert hagy békén a syscall handler) max 62 byte áll rendelkezésedre, ahová a "saját kód"-odat rakhatod. Nem valami sok, bármi érdemlegeshez, nem igaz?
És bizony azt is jelenti, hogy minden, 14-nél nagyobb indexű exceptionnek érvénytelen lesz az IDT entryje. Így már világos?
"nem ment, de ez nem is erdekes."
Ez megint egy szemenszedett hazugság. Nagyonis ment, a syscall prologue is, és a CPU is GPF-kor belementi a flageket, kód és verem szelektorokat és címeket, valamint opcionálisan még egy hiba kódot is. A GPR-ek max ezek után kerülhetnek bele, ezért nemhogy érdekes, hanem egyenesen nélkülözhetetlen, mert ezeket mind figyelembe kell venned, ha pozicionálni akarod az injektált adatokat.
Nem érdekel, hogy ennyire nem értesz hozzá, vagy csak ennyire hülyének tetteted magad, részemről innentől skip, míg nem mutatsz egy működő kódot. Agyő!