⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 twins.cpp

📁 病毒进程访杀的经典实现,各位红客可以
💻 CPP
字号:
//////////////////////////////////////////////////////////////////////////
//程序运行两个事例,每个实例互相监视另外的实例是否存在,
//如果不存在,就运行一个.
//代码:
// test_process.cpp : Defines the entry point for the console application.
// 
  

//#include "stdafx.h"
#include "tchar.h"
#include "iostream.h"
#include "windows.h" 

LPCTSTR lpszMutex1 = _T("mutex1");
LPCTSTR lpszMutex2 = _T("mutex2"); 

DWORD WINAPI Thread(LPARAM lParam);

int main(int argc, char* argv[])
{
	HANDLE hMutex1 = CreateMutex(NULL, FALSE, lpszMutex1);
	if (hMutex1 != NULL)
	if (GetLastError() == ERROR_ALREADY_EXISTS)
	{
		CloseHandle(hMutex1);
		cout << lpszMutex1 << " already exist." << endl;
		HANDLE hMutex2 = CreateMutex(NULL, FALSE, lpszMutex2);
		if (hMutex2 != NULL)
		if (GetLastError() == ERROR_ALREADY_EXISTS)
		{
			cout << lpszMutex2 << " already exist." << endl;
			return 1;
		}
	}
	DWORD dwThreadId;
	HANDLE hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Thread,NULL,0,&dwThreadId);
	CloseHandle(hThread);
	while (1)
	Sleep(1);
	return 0;
}
DWORD WINAPI Thread(LPARAM lParam)
{
	HANDLE hMutex;
	while (1)
	{
		hMutex = OpenMutex(MUTEX_ALL_ACCESS, TRUE, lpszMutex1);
		if (! hMutex)
		{
			STARTUPINFO si = { sizeof STARTUPINFO };
			PROCESS_INFORMATION pi;
			TCHAR szBuf[MAX_PATH];
			GetModuleFileName(GetModuleHandle(NULL), szBuf, MAX_PATH);
			CreateProcess(szBuf, NULL, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
			CloseHandle(pi.hThread);
			CloseHandle(pi.hProcess);
		}
		CloseHandle(hMutex);
		hMutex = OpenMutex(MUTEX_ALL_ACCESS, TRUE, lpszMutex2);
		if (! hMutex)
		{
			cout << "mutex 2 created." << endl;
			STARTUPINFO si = { sizeof STARTUPINFO };
			PROCESS_INFORMATION pi;
			TCHAR szBuf[MAX_PATH];
			GetModuleFileName(GetModuleHandle(NULL), szBuf, MAX_PATH);
			CreateProcess(szBuf, NULL, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
			CloseHandle(pi.hThread);
			CloseHandle(pi.hProcess);
		}
		CloseHandle(hMutex);
		cout << "Thread   ..." << endl;
		Sleep(1);
	}
	return 1;
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -