我已經用C++編寫了一個dll和注入器。該dll代碼如下:DLLMain()注入後未執行
#include <cstdio>
#include <stdio.h>
#include <windows.h>
#include <string>
#include <fstream>
#include <winsock.h>
using namespace std;
#pragma comment(lib, "wsock32.lib")
extern "C" __declspec(dllexport) void UploadFile()
{
.....
}
INT APIENTRY DLLMain(HMODULE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
{
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
MessageBox(0,"Process Attach","Info",MB_OK);
UploadFile();
break;
case DLL_THREAD_ATTACH:
MessageBox(0,"Thread Attach","Info",MB_OK);
UploadFile();
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_DETACH:
break;
default:
break;
}
return TRUE;
}
dll上傳一個特定的文件到服務器。我成功地能夠使用LoadLibrary()和CreateRemoteThread()將該DLL注入到「notepad.exe」中,但它沒有被執行。甚至沒有dllmain()函數。不知道什麼是錯的。
這個函數應該用小寫字母L叫做'DllMain'(我想我應該把它作爲一個答案。) – Dirk
從DllMain做這些複雜的事情是一個免費的崩潰或死鎖票。閱讀[MSDN對DllMain的評論](http://msdn.microsoft.com/en-us/library/windows/desktop/ms682583(v = vs.85).aspx)以供參考。爲什麼你需要注入DLL來上傳文件? – hamstergene
這是我在更改DLLMain()到DllMain()後得到的錯誤 錯誤LNK2005:_DllMain @ 12已經在MSVCRTD.lib(dllmain.obj) – Faheem