16,471
社区成员
发帖
与我相关
我的任务
分享
#include <Windows.h>
#include <tchar.h>
int _tmain(int argc, _TCHAR* argv[])
{
typedef HMODULE (WINAPI* pLoad)(const char*);
typedef void* (WINAPI* pGetAddr)(HMODULE, const char*);
typedef int (WINAPI* pMsgbox)(int,const char*, const char*,int);
HMODULE hModule = LoadLibrary(TEXT("Depends.dll"));
pLoad Load = (pLoad)GetProcAddress(hModule, (LPCSTR)1);
pGetAddr GetAddr = (pGetAddr)GetProcAddress(hModule, (LPSTR)5);
if (Load != NULL && GetAddr != NULL)
{
HMODULE hUser32 = Load("user32.dll");
pMsgbox Msgbox = (pMsgbox)GetAddr(hUser32, "MessageBoxA");
if (Msgbox != NULL)
{
Msgbox(NULL, "消息", "提示", MB_OK);
}
}
return 0;
}
HMODULE WINAPI WSInjectLoadLibraryA(LPCSTR lpLibFileName); // 加载指定的DLL,相当于 LoadLibraryA(W)
HMODULE WINAPI WSInjectLoadLibraryW(LPCWSTR lpLibFileName);
HMODULE WINAPI WSInjectLoadLibraryExA(LPCSTR lpFileName, HANDLE hFile, DWORD dwFlags); // 相当于 LoadLibraryExA(W)
HMODULE WINAPI WSInjectLoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
FARPROC WINAPI WSInjectGetProcAddress(HMODULE hModule, LPCSTR lpProcName); // 相当于 GetProcAddress