Hook de la fonction LoadLibrary (Surveillance d'injections)

Le
tao.guasave
Bonjour à toutes et à tous.

J'aurais besoin d'explication sur le système de Hook de l'API Windows
pour me permettre de repérer tous les appels de la fonction
LoadLibrary.

Mon ambition en claire :
Je veux surveiller un programme (nommé "programme.exe") et le
surveiller contre toutes injections de .dll (ici les .dll seront
supposées être injectées par la fonction LoadLibrary). Mon idée a =
été
alors de hooker cette fonction et regarder à qui elle s'adresse. Si
elle s'adresse à "programme.exe" alors mon programme de surveillance
le notifiera dans un log prévu à cet effet.

Mon problème en claire :
Le soucis est que je ne sais absolument pas comment m'y prendre. Alors
je requière votre aide pour savoir comment hooker LoadLibrary et
comment comprendre à qui elle s'adresse pour pouvoir le notifier.

Pourriez-vous m'aider je vous prie ?

Ps : si vous avez une meilleure idée, ou du moins une idée plus facile
à mettre en place pour surveiller "programme.exe", je suis ouvert à
toutes suggestions.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Alex
Le #19183381

Bonjour à toutes et à tous.

J'aurais besoin d'explication sur le système de Hook de l'API Windows
pour me permettre de repérer tous les appels de la fonction LoadLibrary.



Mon ambition en claire :
Je veux surveiller un programme (nommé "programme.exe") et le
surveiller contre toutes injections de .dll (ici les .dll seront
supposées être injectées par la fonction LoadLibrary).



Il n'y a pas que cette méthode pour faire de l'injection de DLL
exemple : http://www.codebreakers-journal.com/content/view/127/27/

Mais si tu veux faire un hook api, tu peux utiliser Detours de Microsoft
(entre autres)
tao.guasave
Le #19183531
Je suis au courant qu'il n'y a pas que cette méthode. Mais je voulais
faire les choses petit à petit. Je pensait dans un premier temps,
apprendre à utiliser les hooks de l'API Windows sur la fonction
LoadLibrary pour ensuite exporter cette méthode aux autres fonctions
comme CreateRemoteThread (tiré de l'exemple que tu m'as fourni).

Maintenant, si tu as une meilleure solution (ou plus rapide, ou plus
globale) je ne demande que ça. Je suis tout disposé à t'écouter.
Marc
Le #19184011

Je suis au courant qu'il n'y a pas que cette méthode. Mais je voulais
faire les choses petit à petit. Je pensait dans un premier temps,
apprendre à utiliser les hooks de l'API Windows sur la fonction
LoadLibrary pour ensuite exporter cette méthode aux autres fonctions
comme CreateRemoteThread (tiré de l'exemple que tu m'as fourni).



Ok, donc avec MS Detours
(http://research.microsoft.com/en-us/projects/detours/)
(Il y a plusieurs apis pour LoadLibrary :
LoadLibraryA, LoadLibraryW, LoadLibraryExA, LoadLibraryExW)
nico
Le #19184001
wrote:
Je suis au courant qu'il n'y a pas que cette méthode. Mais je voulais
faire les choses petit à petit. Je pensait dans un premier temps,
apprendre à utiliser les hooks de l'API Windows sur la fonction
LoadLibrary pour ensuite exporter cette méthode aux autres fonctions
comme CreateRemoteThread (tiré de l'exemple que tu m'as fourni).

Maintenant, si tu as une meilleure solution (ou plus rapide, ou plus
globale) je ne demande que ça. Je suis tout disposé à t'écouter.



Oui, detours est le plus simple pour les hooks api.
tao.guasave
Le #19184191
D'accord, alors je vais prendre Detours pour résoudre mon problème.

Du peu que j'ai lu, c'est une .dll qui permet "d'intercepter
arbitrairement les fonctions binaires de Win32". Il faut donc, pour
que je puisse l'utiliser, la télécharger, jusqu'à là pas de probl ème.

Le seul soucis que j'ai c'est que maintenant je recherche un tutoriel
(en français de grande préférence) m'expliquant comment l'utiliser.

En auriez-vous un ?
Marc
Le #19185531

Le seul soucis que j'ai c'est que maintenant je recherche un tutoriel
(en français de grande préférence) m'expliquant comment l'utiliser.
En auriez-vous un ?



Tout est expliqué dans la doc (detours.chm), en anglais bien sûr
(toujours éviter ce qui est en français, pâles copies des docs anglaises en
général...)
Publicité
Poster une réponse
Anonyme