2011-10-01 3 views
2

Récemment, j'ai décidé d'entrer dans la programmation DLL avec C++. J'ai fait une DLL simple mais quand je l'injecte dans un processus, rien ne se passe. Voici le code:DLL ne fonctionne pas

#include <windows.h> 
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) 
{ 
if(fdwReason == DLL_PROCESS_ATTACH){ 
MessageBoxA(0,"Injected","Injected",MB_OK); 
} 
return TRUE; // succesful 
} 

Il est censé afficher une boîte de message quand il est injecté dans un processus, mais il ne fonctionne pas. Toute aide serait appréciée

J'ai utilisé un injecteur de dll pour l'injecter dans un processus. Et mon OS est Windows 7.

+0

où sont les paramètres de compilation? –

+1

avez-vous essayé sur un Windows 98 ou un Windows 8 –

+0

quel outil avez-vous utilisé? –

Répondre

2

conseils que je vous de lire ces livres (de ma librairie), avant de pouvoir procéder (à comprendre les bases):

Cela est vrai, en particulier la partie qui décrit l'ASR (ad Cela rend l'accès à la fonction DLL impossible dans un autre processus (et, réécrire un appel de fonction avec votre propre fonction, soit des appels de fonction système ou des fonctions publiques dans un processus) sans lever d'exception, sauf si vous connaissez Des techniques très avancées liées à la messagerie Windows et aux privilèges d'élévation de l'appel, s'appuient sur des failles de code connues (ou pas vraiment) dans les fonctions du noyau à partir du noyau NT (KERNEL32.dll et libs pertinentes).

+0

+1 pour le livre de Jeffrey Richter –

+0

JR livre est l'un de mes préférés, il y a quelques conseils très utiles à partir de là –