Er der nogen af jer kloge hoveder som kan fortælle mig om der er en metode til at bestemme hvilken "Protection Level" noget software kører i. Dvs. softwaren skal selv kunne gøre det. x86 arkitekturen har ring 0, 1, 2 og 3. Det er disse tal jeg skal bruge.
Kender i en assembly instruction som kunne returnere det?
unsigned int GetCPL() { // Taken from Chapter 4.2 in IA-32 Intel Architecture Software Deleloper's Manual Volume 3A - System Programming Guide, Part 1 // // Current privilege level (CPL) field — (Bits 0 and 1 of the CS segment register.) Indicates // the privilege level of the currently executing program or procedure. The term current // privilege level (CPL) refers to the setting of this field. // unsigned int cpl; __asm { mov ax, cs and eax, 0x00000003 mov cpl, eax }
unsigned int GetCPL() { __asm { mov ax, cs and eax, 0x00000003 } }
cdecl returnerer jo alligevel resultatet i eax ;)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.