PDA

View Full Version : [C++] Hook api regcreatekey


Slhack
27-05-2008, 02:12
Dovrei usare un Hook delle Api in C++ per prendere tutte le chiamate della mia applicazione rivolte alla modifica del registro di sistema (Una sorta di regmon diciamo). Però in giro trovo solo esempi troppo articolati e invece vorrei sapere se qualcuno sa farmi un esempio semplice semplice di poche righe su come usare (o che funzioni mi servono per ricavare) i parametri della SetWindowHookEx.

Un'altra domanda: ho letto che per fare un hook delle api globale devo servirmi di una dll creata da me :eek: :eek: ...ma che istruzioni metto dentro una dll? con che criterio metto le funzioni necessarie? sarebbe la mia prima volta.... :mc:

Se riuscite a postarmi anche un esempio di codice sarei ben felice.:D

Grazie a tutti in anticipo!

Slhack
27-05-2008, 09:27
Qualcuno sa come aiutarmi? Sapete qualcosa a riguardo di queste hook api?
Grazie per aver eliminato quel post di pubblicità!

71104
27-05-2008, 15:13
chi ti ha dato suggerimenti sulla questione deve essere stato molto impreciso, oppure non ne sa una sega neanche lui. i Windows Hooks (quelli che si creano con SetWindowsHookEx) non c'entrano nulla con l'intercettazione delle operazioni sul registro.

per ricevere notifica delle operazioni sul registro puoi usare la RegNotifyChangeKeyValue (http://msdn.microsoft.com/en-us/library/ms724892.aspx); su Windows Vista puoi anche usare questa classe (http://msdn.microsoft.com/en-us/library/aa364106(VS.85).aspx).

variabilepippo
27-05-2008, 15:37
chi ti ha dato suggerimenti sulla questione deve essere stato molto impreciso, oppure non ne sa una sega neanche lui.


Concordo, senza considerare che con dubbi tipo "ma che istruzioni metto dentro una dll" difficilmente si possono affrontare problemi più complessi come quelli legati all'API hooking & argomenti affini. :rolleyes:

71104
27-05-2008, 16:54
Concordo, senza considerare che con dubbi tipo "ma che istruzioni metto dentro una dll" difficilmente si possono affrontare problemi più complessi come quelli legati all'API hooking & argomenti affini. :rolleyes: l'API hooking affrontato tramite i Windows Hooks è una di quelle cazzate da grandi hackerSSZZZSZ che mi fanno letteralmente :Puke:

i Windows Hooks non servono ad introdurre DLL in altri processi: quello è solo l'effetto secondario. per introdurre DLL in altri processi nel caso generale (cioè a meno di peculiarità del programma target, es. il programma target carica plugins) si deve lavorare di OpenProcess, VirtualAllocEx, WriteProcessMemory, e CreateRemoteThread. le Detours fanno tutto questo e molto altro (trampolines), ma non vedo perché utilizzare un meccanismo del tutto inappropriato* e che limiterebbe anche al monitoraggio di singoli processi quando si può ottenere con una semplice API un monitoraggio system-wide.

*inappropriato perché le Detours sono fatte per essere usate principalmente dai debuggers e da tools affini, come gli API tracers.

Slhack
27-05-2008, 18:37
Grazie per le risposte, però RegNotifyChangeKeyValue non mi va bene perchè si basa su una chiave sola (o su un valore in questo caso). Io dovrei monitorare tutte le chiamate verso il registro di sistema come:RegCreateKeyW,RegQueryValue etc etc e tutte quelle chiamate che possono modificare il registro, quindi necessito l'hook delle api che fanno queste chiamate. Ovviamente se avete un qualche sistema per fare queste cose mi andrebbero benissimo.

l'API hooking affrontato tramite i Windows Hooks è una di quelle cazzate da grandi hackerSSZZZSZ che mi fanno letteralmente
Secondo me non è una cazzata da grandi hacker perchè le API hooks vengono usati da firewall e antivirus per evitare che partano determinate applicazioni e/o processi(ho trovato un codice su codeguru con una demo di un firewall molto semplice che controlla i processi eseguiti, però essendo troppo ampio non riesco a prendere solo quello che mi interessa).
Comunque 71104 se hai una soluzione che possa aiutarmi potresti dirmi qualcosa per poter risolvere il mio problema plz?

Grazie a tutti e aspetto nuove proposte/aiuti!!!

eraser
27-05-2008, 20:22
Oddio che mare di luoghi comuni e imprecisioni :D :)