zdarec,
pri vyvoji Masterova teoremu o funkcnim protektoru sem narazil na jednu drobnost a tou je zaspani doby. Asi ste si vsimli ze pomalu nastupuji win64. Ale mozna ste si nevsimli jak se pozmenilo programovani v asm. Treba starej znamej SEH na XP pres FS:[0]... uz nefunguje pokazdy. Pri nastaveni DllCharacteristics na DynamicBase (40h) a NoSeh (400h) uz nefunguje. DynamicBase = ASLR coz je zavedeni programu (knihovny) do pameti na ruzne imagebase.
NoSeh je prave ono zakazani SEHu. V exe je vytvorena .pdata sekce do ktere se ulozi struktury. A kdyz se objevi vyjimka, tak se system podiva do pdata a zisti kde to vzniklo atd. Jenze jak nastavit obsluhu vyjimky, kdyz vytvarim kod v pameti pomoci mega-hype-poly-meta-morfni-kaskadne-knizkovo-zaoblenyho alga? Jedny stranky rikaj ze sem jeste porad krytej a ze ve win64 existuje api RtlAddFunctionTable
Adds a dynamic function table to the dynamic function table list.
Kdyz neco vytvorime tak by to pak melo jit i smazat RtlDeleteFunctionTable
Removes a dynamic function table from the dynamic function table list.
Sice sou to moc pekny funkcicky, ale porad nevim jak to udelat v asm. Takze cilem threadu je sdileni zajimavosti o win64. Pokud vite jak na ten SEH pri NoSeh, napiste.