首页
社区
课程
招聘
[求助]DLL注入病毒报警?为啥……
发表于: 2008-5-23 11:12 6311

[求助]DLL注入病毒报警?为啥……

2008-5-23 11:12
6311
根据网上的教程写了一个DLL注入的小程序,可是杀毒软件报警(NOD32),这是为啥?
可是我看见别的应用程序(如Unlocker)Dll注入到其他的任何进程都没有关系啊。难道是我的编写有问题吗?
#include <stdio.h>
#include <windows.h>
#include <tlhelp32.h>
DWORD FindTarget(LPCTSTR proceName)
{
	DWORD dwRet;
	HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
	PROCESSENTRY32 pe32;
	pe32.dwSize=sizeof(PROCESSENTRY32);
	Process32First(hSnapshot,&pe32);
	do
	{
		if(lstrcmpi(pe32.szExeFile,proceName)==0)
		{
			dwRet=pe32.th32ProcessID;
			break;
		}
	}
	while(Process32Next(hSnapshot,&pe32));
	CloseHandle(hSnapshot);
	return dwRet;
}


BOOL LoadMod(DWORD dwPID, const TCHAR* pszModuleFile)
{
	HANDLE hProcess= NULL;
	HANDLE hThread= NULL;
	DWORD dwSize= 0;
	DWORD dwWritten= 0;
	LPVOID lpBuf= NULL;
	LPVOID lpThreadFun= NULL;

	hProcess =OpenProcess(PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION | PROCESS_VM_WRITE, FALSE, dwPID);
	if (!hProcess)
	{
		return FALSE;
	}

	dwSize = (DWORD)strlen(pszModuleFile);//_tcslen
	lpBuf =VirtualAllocEx(hProcess, NULL, dwSize, MEM_COMMIT, PAGE_READWRITE);
	if (!lpBuf)
	{
		CloseHandle(hProcess);
		return FALSE;
	}

	if (!WriteProcessMemory(hProcess, lpBuf, (LPVOID)pszModuleFile, dwSize, &dwWritten))
	{
		VirtualFreeEx(hProcess, lpBuf, dwSize, MEM_DECOMMIT);
		CloseHandle(hProcess);
		return FALSE;
	}

	if (dwSize != dwWritten)
	{
		VirtualFreeEx(hProcess, lpBuf, dwSize, MEM_DECOMMIT);
		CloseHandle(hProcess);
		return FALSE;
	}

	#ifdef _UNICODE
	lpThreadFun =GetProcAddress(GetModuleHandle(("Kernel32")), "LoadLibraryW");//_T
	#else
	lpThreadFun =GetProcAddress(GetModuleHandle(("Kernel32")), "LoadLibraryA");
	#endif

	hThread =CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)lpThreadFun, lpBuf, 0, &dwPID);

	WaitForSingleObject(hThread, INFINITE);

	VirtualFreeEx(hProcess, lpBuf, dwSize, MEM_DECOMMIT);
	CloseHandle(hThread);
	CloseHandle(hProcess);

	return TRUE;
}
int main()
{
	char processName[]="explorer.exe";
	char dllAddr[]="c:\\dll.dll";
	LoadMod(FindTarget("explorer.exe"),dllAddr);
}


问题好像处在了这个函数,为什么一调用这个函数,杀毒软件就会报警呢?
CreateRemoteThread

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个应该是杀毒的启发式报毒的.如卡巴...
因为我们用到的一些API就像被杀毒商拉入黑名单一样.而且这些API也被病毒木马使用,.所以当用到这类API就报毒了.
2008-5-23 12:07
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
3
应该不是报毒,而只是提示吧,提示Invader之类的。允许或跳过就可以了
2008-5-23 14:29
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
有什么办法能够通过编成改变代码的形式绕过去呢?
2008-5-23 14:31
0
雪    币: 115
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
密切关注……
2008-5-23 16:44
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
没办法的.卡巴会提示.
2008-5-24 03:07
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
7
杀软也无非是勾了ring0的几个服务函数,搞定它就进去了
可以参考sudami的文档,写的比较清楚
http://bbs.pediy.com/showthread.php?t=61762&viewgoodnees=1
2008-5-24 07:03
0
雪    币: 218
活跃值: (17)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
呵呵,现在的杀软是不会让你轻松加载驱动的,比如卡巴斯基,如果你加载驱动他就会有提示。。。
2008-5-24 17:54
0
游客
登录 | 注册 方可回帖
返回
//