begin process at 2012 05 29 11:17:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Systeme

 > 

DllMain non appellée lors d'un hook global?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

DllMain non appellée lors d'un hook global?

dimanche 7 mai 2006 à 17:02:54 | DllMain non appellée lors d'un hook global?

HeavenForsaker

Bonjour,

En mettant en place un hook global avec DLL, je me suis aperçu que la fonction dllMain n'était jamais exécutée. Pourtant une instance de la DLL est chargé pour chaque processus crée après la mise en place du hook. On devrai au moins avoir un appel à la fonction avec le paramètre fdwReason = DLL_PROCESS_ATTACH ?
Voila ma fontion dllMain :

//Point d'entrée de la DLL.
BOOL WINAPI DllMain(HINSTANCE hInstanceDLL, DWORD fdwReason, LPVOID lpvReserved)
{
    switch (fdwReason)
    {
        //Se produit lors du chargement de la DLL par un processus(LoadLibrary).
        //Pour empecher le chargement de la DLL il faut faire un "return FALSE".
        case DLL_PROCESS_ATTACH:
            break;

        //Se produit lors du déchargement de la DLL par un processus(FreeLibrary).
        case DLL_PROCESS_DETACH:
            break;

        //Se produit lors de l'association d'un thread avec la DLL.
        case DLL_THREAD_ATTACH:
            break;

        //Se produit lorsqu'un thread se désassocie de la DLL.
        case DLL_THREAD_DETACH:
            break;
    }

    MessageBeep(MB_OK);

    //Renvoi TRUE en cas de succès.
    return TRUE;
}

Voila, comme vous pouvez le voir j'ai inclu un MessageBeep() pour me signaler si la fonction était bien appellée, hors aucun signal sonore ne s'est fait entendre...
Si vous pouviez m'expliquer pourquoi ça m'arrangerai, merci d'avance

dimanche 7 mai 2006 à 17:37:25 | Re : DllMain non appellée lors d'un hook global?

BruNews

Administrateur CodeS-SourceS
Enlève le MessageBeep() et mets:
case DLL_PROCESS_ATTACH:
     ExitProcess(0);
     break;
...

Enregistre tout avant de tester, tu enlèveras ensuite.
C'est un peu sauvage mais garanti comme test, les sons en kook c'est bof bof.

ciao...
BruNews, MVP VC++
dimanche 7 mai 2006 à 21:06:02 | Re : DllMain non appellée lors d'un hook global?

HeavenForsaker

Salut BruNews,

j'ai testé et c'est toujours pareil. Logiquement je devrais plus pouvoir lancer une seule application avec le bout de code la, ça n'a strictement aucun effet. La fonction dllMain n'est jamais appellée, c'est très étrange...pourtant à part ça le hook fonctionne très bien.

Merci en tout cas, si tu as d'autres idées...
dimanche 7 mai 2006 à 21:50:12 | Re : DllMain non appellée lors d'un hook global?

BruNews

Administrateur CodeS-SourceS
Pour avoir ce genre de problème tu es sur devcpp je pense.
Si oui, il me revient qu'on a déjà vu cela, regarde ici:
http://www.cppfrance.com/code.aspx?id=25450

ciao...
BruNews, MVP VC++
dimanche 7 mai 2006 à 21:56:56 | Re : DllMain non appellée lors d'un hook global?

HeavenForsaker

En fait je suis sur CodeBlocks, merci pour le lien man je regarderai ça demain.
lundi 8 mai 2006 à 00:56:06 | Re : DllMain non appellée lors d'un hook global?

HeavenForsaker

Réponse acceptée !
Problème résolu, il faut simplement rajouter ceci avant la fonction DllMain :

extern "C" __declspec(dllexport)

Un grand merci à BruNews, cosmobob, victorcoasne et vdvince2015 pour la solution.


Cette discussion est classée dans : dll, case, produit, dllmain, hook


Répondre à ce message

Sujets en rapport avec ce message

dllMain [ par sena ] Bonjour,j'ai un petit souci,j'aimerais savoir a koi correspondent chaque case dans le dllMain.Je n'arrive plus a lire mon cd de MSDN donc je suis coin DLL [ par mamag ] Bonjour, je souhaiterais construire une DLL, pour cela j'ai suivi les consignes d'un tutorial trouvé sur le site internet.j'ai insérer ce bout de prog Point d'entrée DLL [ par victorcoasne ] Bonjour, J'ai Dev-C++ et quand je créé une dll la fonction DllMain() n'est pas apellé quand je charge dans un porgramme cette dll ! Voici le code de Question sur les dll [ par flatou ] Salut a tous Je me pose une question : soit un programme qui a effectuer un hook sur une fonction de la dll kernel32.dll. Si mon deuxieme programme co Détourner la copie de windows par un hook [ par alphaone ] Bonjour, je sais qu'il est possible de détourner la copie de windows pour copier avec sont logiciel et non pas avec la copie de windows, mais je suis Hook sans DLL. [ par ZendeD ] Bonjour à tous,Je suis en train de modifier un petit key logger repris de cette source. Le problèm Hooks et sockets... [ par morganitos ] Bonjour... Et bien non, ce message ne traite pas sur "comment installer un hook" mais sur un autre problème (qui concerne les hooks quand même). Je v Problème de hook clavier [ par Oeil_de_taupe ] Bonjour tout le monde, Je suis en train de créer un programme me permettant d'utiliser qu'un seul clavier sur deux ordinateurs (grâce à une connectio Faire une callback vers un exe dans un callback hook d'une dll [ par Suisse00 ] Salut :) J'ai créer un hook sur le clavier dans une DLL, dans le callback du hook j'aimerais faire un callback vers une fonctoin du fichier exe. J'ar Mystère DialogBox..... [ par Gendal67 ] Bonjour à tous....Après avoir cherché sur le forum en vain...(j'ai trouvé des problêmes ananlogues mais pas de réponses qui aurait pu m'aider je crois


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales