我编写了运行良好的 dll 注入程序。它将dll加载到远程进程并调用一些函数。现在我想将参数传递给该函数。CreateRemoteThread 为此具有 lpParameter,但是如何在 dll 中获取传递的参数以在函数中使用它?
更新:dll入口点很常见:
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
Dll 仅包含一个具有以下原型的函数:
void TestFunction(const char* ua);
调用该函数的代码是:
CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)((void*)codecaveExecAddr), (LPVOID)argumentAddress, 0, NULL);
如您所见,我尝试在 TestFunction 中传递“测试”字符串。但是后来我检查了 TestFunction 中的 ua 参数,它包含一些垃圾。
这是整个项目文件: http:
//pastebin.com/gh4SnhmV
http://pastebin.com/Sq7hpSVx
http://pastebin.com/dvgXpUYz
更新 2
TestFunction 是否应该有一些特定的原型,或者我可以使用任何一个,只要它只有一个 LPVOID 类型的参数?我很困惑。谁能给我一个例子,说明如何用一些参数调用注入的 dll 函数?