关于使用CreateRemoteThread()隐藏DLL的一个问题

plutolxl 2008-03-13 12:21:10
我在用关于使用CreateRemoteThread()隐藏DLL时,能成功将DLL插入到远程线程中,但我使用CreateRemoteThread()的这个程序的进程能看见,怎么解决呀?

#include"Injector.h"
#include "windows.h"

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdLine, int nCmdShow)
{


//给DLL文件全路径名赋值
char lpDllFullPathName[MAX_PATH]=TEXT("c:\\aim.dll");

//获得目标进程的进程号pid,这里取为"calcexe"

DWORD dwProcessId =0;
HWND hWnd = FindWindow("SciCalc","计算器");
if(!hWnd) return 0;


GetWindowThreadProcessId(hWnd,&dwProcessId);

LoadLib(dwProcessId,lpDllFullPathName);


return 1;
}

LoadLib是包含在Injector.h中的一个用CreateRemoteThread()向远程空间注入DLL的一个函数


//创建远程线程,并通过远程线程调用用户的DLL文件

hThread= CreateRemoteThread(
hProcess,
NULL,
0,
pfnThreadRtn,
(PVOID)pszLibFileRemote,
0,
NULL
);

if (hThread == NULL)
_leave;

***********************************************
//等待远程线程终止

WaitForSingleObject(hThread,INFINITE);

我调用的DLL 中有个消息循环

while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);//进行消息转换
DispatchMessage(&msg);//分派消息到窗口的回调函数处理,(OS调用窗口回调函数进行处理)。
};

所以调试发现当程序运行到*************处就不往下了,这样WinMain()里的LoadLib(dwProcessId,lpDllFullPathName)好象也就没法结束
达不到隐藏效果
...全文
91 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫郢剑侠 2008-03-14
  • 打赏
  • 举报
回复
也可以设置一个定时器,在规定时间内远程线程未终止时进行处理,

9,506

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧