怎么调用远程注入后DLL中的函数

xdf008 xdf008 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
dll里写了个Add函数,也导出了,直接在exe里调用dll没问题,然后我把这个Dll注入到其他进程后不会调用Dll里的Add函数(注入是成功的),网上找了N久也不知道怎么搞,都说像LoadLibraryA一样调用,但是这个LoadLibraryA是全局的,所以进程里都有加载这个kernel32,而且网上说这个在每个进程里的地址一样,我自己注入的可不是全部进程注入的

DWORD dwID;
LPVOID pFunc = LoadLibraryA;
HANDLE hThread = CreateRemoteThread( hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)pFunc, lpBuf, 0, &dwID );
WaitForSingleObject( hThread, INFINITE );
//do
DWORD hDll;
lpAdd AddFunc;
GetExitCodeThread( hThread,&hDll );
HMODULE hmdll=(HMODULE)hDll;
if(hDll!=NULL)
{
AddFunc=GetProcAddress(hmdll,"Add");
DWORD aa= GetLastError();//这每次都是126(找不到模块)
if(AddFunc!=NULL)
{
AddFunc(2,3);
AfxMessageBox("遠程執行成功");
}
}


typedef int (*lpAdd)(int a,int b);


extern "C" __declspec(dllexport) int __stdcall Add(int a,int b)
{
return theApp.Add(a,b);
}

GetProcAddress 后GetLastError 每次都是126,确认dll是注入成功的,有用工具查看过
怀疑这个GetProcAddress 是进行注入的Exe执行的,所以系统就在这个exe的模块里去找那个dll了,所以找不到
最后,RT问一下
...全文
评论 20
收藏 已收藏
分享
返回顶部
xdf008
进程/线程/DLL 15,465 成员 49,169 内容