从注入的dll通过其地址调用函数

时间:2018-09-10 15:15:43

标签: gcc dll

我已经构建了一个程序,可以将.dll注入另一个进程的堆内存中并且可以工作。我也有一个小工具(已下载),可以从该dll调用该函数。但是我想将其写入我自己的程序中。

HANDLE phandle = OpenProcess(...);
LPVOID rdllname = VirtualAllocEx(phandle, ...);
BOOL bret = WriteProcessMemory(phandle, rdllname, dllname, ...)
FARPROC loadlibrary = GetProcAddress()

我认为我可以通过创建一个远程线程来调用注入的dll中的函数

HANDLE thandle = CreateRemoteThread(phandle, NULL, 0, (LPTHREAD_START_ROUTINE) loadlibrary, rdllname, "info", NULL);

但是它没有调用我的函数(名为info())。有人可以告诉我为什么吗?

编辑:我以为我可以解决

typedef void (*startThreadFunc)();
HINSTANCE getDLLFunc = LoadLibrary("C:\\Users\\manuel\\desktop\\dll.dll");
startThreadFunc startThreadFuncVar = (startThreadFunc)GetProcAddress(getDLLFunc, "info");
startThreadFuncVar();
FreeLibrary(getDLLFunc);

但是它不被解决!我已经看到,DLL并没有按照我想要的那样从PID内加载。即使我只调用那段代码,它也将加载DLL并调用该函数,但它是独立的。所以它没有解决:(再次需要您的帮助。

0 个答案:

没有答案