[英]How to call function with parameters in the injected dll in windows
我想将我的简单 dll 注入第三方应用程序。 之后我想从我自己的进程中调用dll中的function,而不是第三方应用程序中的进程。
以下第一部分显示了我测试的整个dll:
// dllmain.cpp
#include "pch.h"
extern "C" __declspec(dllexport) int add(int a, int b)
{
return a + b;
}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
第二部分显示了我进程中的调用者 function:
// hProcess is the process in the third-party application
// Call our exported function
lpReturn = NULL;
***// I don't know how to pass parameter a and b into the exported function add in my simple dll***
HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)lpFunctionAddress, lpRemoteParams, NULL, NULL);
DWORD dwOut = 0;
while (GetExitCodeThread(hThread, &dwOut)) {
if (dwOut != STILL_ACTIVE) {
*ppReturn = (PVOID)dwOut;
break;
}
}
我不知道如何将参数a和b传递到导出的function中添加我的简单dll(请参考上面的第二部分)
任何人都可以给我一个提示,或者一个完整的示例显示如何使用 windows 中注入的 dll 中的参数调用 function? 谢谢:-)
我认为棘手的部分是在注入 DLL 时通过 arguments。
您至少可以尝试两种方法:
请参考 Github 上的migi 项目以获取工作源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.