View Full Version : windows syscall
per chi ha una conoscenza più approfondita della mia circa il kernel di windows, chiedo se i valori presenti a questo link (http://j00ru.vexillium.org/win32k_syscalls/) identificano l'indirizzo di inizio delle varie syscall di windows; credo che sarebbero interessanti quando si vuole capire cosa non va in un certo codice.
grazie
banryu79
04-06-2013, 15:42
Non credo occorra neccessariamente essere degli "esperti di syscall Windows" per tentare di darti una risposta: io certamente non lo sono :D
Però usando la logica una può provare a fare un'ipotesi sulla base delle informazioni facilmente recuperabili. Ad esempio, considerato che:
- la finestra "proprietà" per win32k.sys lo descrive come "Driver Win32 multiutente";
- alla pagina linkata quasi tutte le syscall elencate in tabella hanno il prefisso NtGdi (GDI... Graphic Device Interface);
- se inserisci nello specchietto apposito un codice esadecimale presente in tabella tutte le occorrenze di quel codice vengono evidenziate.
La tabella mostra, per un dato codice esadecimale (un indirizzo? un offset?) a quale syscall fa riferimento quel codice: la syscall chiamata potrebbe essere diversa a seconda della versione di Windows.
Quindi, dato un indirizzo/offset specifico puoi vedere quale è la syscall corrisposndente sulle diverse versioni di Windows.
Potrebbe essere utile in caso di errori (BSOD?) per risalire all'esatta chiamata che ha causato il problema (perchè dopo l'errore magari vedi un messaggio con un dump della memoria o altro in cui viene riportato il codice esadecimale indirizzo/offset ma non sai esattamente a quale funzione fa riferimento).
Comunque se dall'url della pagina togli l'ultimo pezzo del path e navighi in:
http://j00ru.vexillium.org/
vedrai che ci sono dei link per altre tabelle simili a questa solo che si riferiscono ad altri "pezzi" del SO.
In particolare, la tabella che hai linkato, pare essere la "Windows Graphical System Call Table x86", se vuoi vedere le syscall del core del SO penso tu debba fare riferimeno a quelle due indicate come "Windows X86 System Call Table" e "Windows X86-64 System Call Table" ;)
Potrebbe essere utile in caso di errori (BSOD?) per risalire all'esatta chiamata che ha causato il problema (perchè dopo l'errore magari vedi un messaggio con un dump della memoria o altro in cui viene riportato il codice esadecimale indirizzo/offset ma non sai esattamente a quale funzione fa riferimento).
infatti la parte interessante è proprio quella che hai citato, capire quale parte dell'SO genera problemi.
Avevo pensato che tutti quegli offset ti permettevano di richiamare direttamente le routine di sistema bypassando le windows API, mi sembrava lievemente pericoloso :D
Quindi se non ho mal compreso in caso di errore e una volta identificata la libreria che causa il problema, attraverso l'offset esempio:
0x1265
posso capire che il problema è causato dalla sycall NtGdiBRUSHOBJ_hGetColorTransform e da qui comportarmi di conseguenza
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.