Я пытаюсь работать с инъекцией 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;
}
Я не знаю, что попробовать прямо сейчас
Прежде всего не делает [странно] (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. –
оба говорят, что инъекции успешно, я собираюсь попробовать ProcessExplorer – gfauchart
Ник по обе стороны. Вам нужно изменить вызов MessageBox на что-то вроде OutputDebugString, и вам нужно скомпилировать DLL как Unicode. ANSI устарел более десяти лет назад. –