|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
windows syscall
per chi ha una conoscenza più approfondita della mia circa il kernel di windows, chiedo se i valori presenti a questo link 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 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Non credo occorra neccessariamente essere degli "esperti di syscall Windows" per tentare di darti una risposta: io certamente non lo sono
![]() 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" ![]()
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 04-06-2013 alle 15:48. |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
Quote:
Avevo pensato che tutti quegli offset ti permettevano di richiamare direttamente le routine di sistema bypassando le windows API, mi sembrava lievemente pericoloso ![]() 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 Ultima modifica di misterx : 04-06-2013 alle 18:36. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:25.