日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

很巧妙的进程防杀方法[秋镇菜原创]

發布時間:2025/3/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 很巧妙的进程防杀方法[秋镇菜原创] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
剛剛學內核對象,想寫個可以防殺的進程,但其他方法太高級,
本菜鳥不感高攀,想了幾天,想到一個很本的辦法,不正確的
方還請高手指點一下.
程序運行兩個事例,每個實例互相監視另外的實例是否存在,
如果不存在,就運行一個.
代碼:
// 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 Thread1(LPARAM lParam);
DWORD WINAPI Thread2(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)Thread1,NULL,0,&dwThreadId);
????CloseHandle(hThread);
????while (1)
????Sleep(1);
????return 0;
}
DWORD WINAPI Thread1(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;
}
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的很巧妙的进程防杀方法[秋镇菜原创]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。