2013-03-25 2 views
-3

Я пытаюсь работать с инъекцией dll, я пробовал 100 вещей, но ни один из них не работает, Я сейчас на Windows 7 32 бит (чтобы избежать конфликта 32/64). Я использовал два известных инжектора dll, найденных в Интернете (AutoInject и Extreme инжектор V2) и ручной работы. Я пытаюсь mesagebox в блокноте (не может быть проще?) Я также могу добавить, что мои окна работают под Vmware. здесь Мой главный для моей библиотеки DLL (построить с помощью код-Block)Dll injection failed

#if BUILD_DLL 
#define DLLIMPORT __declspec (dllexport) 
#else /* Not BUILDING_DLL */ 
#define DLLIMPORT __declspec (dllimport) 
#endif /* Not BUILDING_DLL */ 

#include <windows.h> 
#include <stdio.h> 
#include <stdlib.h> 

BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) 
{ 
    switch (reason) 
    { 
    case DLL_PROCESS_ATTACH: 
     MessageBox (0, "Hello from injected DLL!\n", "Hi", MB_ICONINFORMATION); 
     break; 
    case DLL_PROCESS_DETACH: 
     break; 
    case DLL_THREAD_ATTACH: 
     break; 
    case DLL_THREAD_DETACH: 
     break; 
    } 
    return TRUE; 
} 

Я не знаю, что попробовать прямо сейчас

+1

Прежде всего не делает [странно] (HTTP: //blogs.msdn .com/b/oldnewthing/archive/2004/01/27/63401.aspx) [материал] (http://blogs.msdn.com/b/oldnewthing/archive/2004/01/28/63880.aspx) в DllMain. С этой точки зрения вы не очень нам помогаете ... инжекторы сообщают о любых ошибках? Вы проверяли, загружается ли DLL чем-то вроде ProcessExplorer? Sidenote: похоже, что вы компилируете ANSI/MBCS, и я уверен, что блокнот UNICODE. –

+0

оба говорят, что инъекции успешно, я собираюсь попробовать ProcessExplorer – gfauchart

+0

Ник по обе стороны. Вам нужно изменить вызов MessageBox на что-то вроде OutputDebugString, и вам нужно скомпилировать DLL как Unicode. ANSI устарел более десяти лет назад. –

ответ

1

Я нашел решение моей проблемы, Если кто-нибудь есть такая же проблема: Просто использовать наглядный Sudio вместо кодового блока

0

По Howto call MessageBox in dllmain вы не можете вызвать MessageBox внутри DllMain (это строго ограничено тем, что вы сможет сделать). tenfour предлагает использовать что-то вроде OutputDebugString.

+0

Я пробовал главное найти по этой ссылке: http://www.mpgh.net/forum/290-crossfire-spammers-injectors-multi-tools/332194-how-make-dll-injection-c.html Если Messagebox - проблема, я собираюсь попробовать другой способ вывода – gfauchart

Смежные вопросы