很巧妙的进程防杀方法(互斥)

进程防杀 HOOK ,防止任务管理杀死程序 通过HOOK,防止任务管理器杀死进程,做到初步的进程保护 立即下载
文章作者:I_LIKE_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 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;
}
程序是运行两个实例,一个程序运行后,分别检测互斥一和检测互斥二,发现没有互斥二,就运行一下自己,第二个运行的自己就占用了互斥二.
两个相同的程序循环检测互斥一和互斥二.一旦发现内存中少了某个互斥,就重复运行自身保证自己在程序中 这方法很巧 不过浪费很多资源 
Delphi下真正隐藏进程的代码 Delphi下真正隐藏进程的代码,由VC的代码转成D的,不是采用hook的方法实现的,真正从物理内存中去隐藏,绝大部分进程查看器找不着,效果不错 立即下载

相关推荐

进程防止杀死KProtectProcess.dll.rar

用户无法在任务管理器进程中杀程序。 项目中引用KProtectProcess.dll 然后将NKCore.dll放在与KProtectProcess.dll同级目录。

6种进程防杀方案和源码

6种进程防杀方案和源码,windows操作系统,vc++2005源码,hookApi,钩子,驱动hook

woshiyipihaoma的专栏 6823

VS2015+C++实战:手把手教你用海康MVS里的Demo搞定多相机同步采图与保存

本文详细解析了在VS2015+C++环境下,利用海康威视MVS工业相机SDK实现多相机同步采图与保存的全流程。从环境准备、SDK选择到多相机初始化、同步采图方案,再到异常处理与性能优化,提供了实战技巧和代码示例,帮助开发者快速掌握工业相机二次开发的核心技术。

weixin_29170327的博客 280

如何保证进程不被杀死的几个办法

前言 开发一个需要常住后台的App其实是一件非常头疼的事情,不仅要应对国内各大厂商的ROM,还需要应对各类的安全管家…虽然不断的研究各式各样的方法,但是效果并不好,比如任务管理器把App干掉,服务就起不来了…  一般来说:有以下几种可行的方法来使自己的进程不被杀死 1、提高Service的优先级:这个,也只能说在系统内存不足需要回收资源的时候,优先级较高,不容易被回收,然

lixuce1234的博客 9885

SAP Business One自定义表与字段实战:从零构建企业专属数据模型

本文详细介绍了如何在SAP Business One中创建自定义表与字段,从零构建企业专属数据模型。通过实战案例和避坑指南,帮助用户掌握业务适配、流程优化和权限隔离等关键技巧,提升系统灵活性和数据管理效率。特别适合需要扩展标准功能的SAP Business One用户。

weixin_28730927的博客 359

MT9V034摄像头学习笔记(一)_mt9v034摄像头循迹代码(1)

函数名称:uint8_t SCB_RegRead(uint8_t Device,uint8_t Address,uint16_t *Data)* 函数名称:uint8_t SCB_RegWrite(uint8 Device,uint8 Address,uint16 Data)* 函数名称:uint8 SCCB_SendByte(uint8 Data)* 函数名称:uint8 SCCB_ReadByte(void)* 修改时间:2018年3月4日。* 修改时间:2018年3月4日。

2401_87555661的博客 907

win2k下隐藏进程

win2k下隐藏进程 【关键词】:win2k下隐藏进程  录入:曾进 来源:huiyun.net 时间:2004-2-20 18:44:42 点击:62次 WINDOWS操作系统下,当我们无法结束或者不知道怎样结束一个程序的时候,或者是懒得去找“退出”按钮的时候,通常会按“CTRL+ALT+DEL”呼出

超然楼 2144

ESP32内存优化实战:关闭WiFi/LWIP功能释放37KB IRAM的隐藏技巧

本文针对ESP32开发中IRAM内存不足的难题,提供了一种通过关闭WiFi和LWIP协议栈的IRAM优化功能来释放宝贵内存空间的实战技巧。该方法最高可释放约37KB的IRAM,有效解决复杂项目(如WiFi+BLE+语音识别)的编译失败问题,并详细阐述了配置步骤、性能权衡与测试验证方法。

redis7keeper的博客 129

首创!用户级权限进程防杀 C++

用户级权限实现简单防杀 用户级权限实现简单防杀 无意中翻出小学时候写的程序,拿出来分享下。这个程序运行不需要任何权限,应该是为数不多的能抗住PChunter强制结束的用户级程序(除了双进程)。程序只有一个主程序,主程序通常情况下杀不掉,被保护的程序只要不在运行则创建一个进程。写的比较仓促还有很多不足,分享一下思路而已,利用获取进程句柄和结束进程之间的时差“更换”自己的pid和句柄来让对方只能找到上...

Hnnnbhnnnb的博客 1503

Cadence PSpice 仿真11:电感型低通滤波器最坏情况分析仿真实战图文教程

在进行蒙特卡罗分析时会将元器件的容差考虑进去,然后通过运行多次的随机仿真,得到电路输出的一个范围。但是多数情况下设计师关注的只是电路的最坏情况是否满足设计要求。PSpice的最坏情况分析是取在容差的边界点元件参数进行仿真以计算出电路输出的最坏情况。所以如果如果电路中有10个元件的话,需要先取10个元件的标准值仿真1次,然后再分别在10个元件的容差边界处各仿真1次,然后再对仿真结果进行统计和计算,再最坏情况下再仿真1次。

fydar的博客 1944

SAP UI5 和 Fiori 的一些小技巧合集 - 持续更新中

本文介绍笔者从事 SAP UI5 和 Fiori 开发多年以来,积累的一些经验和小技巧。会保持更新。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 911

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

刚刚学内核对象,想写个可以防杀的进程,但其他方法太高级,本菜鸟不感高攀,想了几天,想到一个很本的办法,不正确的方还请高手指点一下.程序运行两个事例,每个实例互相监视另外的实例是否存在,如果不存在,就运行一个.代码:// test_process.cpp : Defines the entry point for the console application.//#include "stdafx.

小发猫 5392

RK3576 PCIE接口调试:基于RTL8111HS的网卡驱动移植

检查项方法电源电压复位时序检查设备树 reset-gpios链路速率设备识别lspci -vvv驱动加载。

小灰灰的博客 731

很巧妙的进程防杀方法

很巧妙的进程防杀方法 文章作者:I_LIKE_CPP 刚刚学内核对象,想写个可以防杀的进程,但其他方法太高级,本菜鸟不感高攀,想了几天,想到一个很本的办法,不正确的方还请高手指点一下.程序运行两个事例,每个实例互相监视另外的实例是否存在,如果不存在,就运行一个.代码:// test_process.cpp : Defines the entry point for the console app...

爱.NET 589

用 Message Monitoring Overview 打造接口健康驾驶舱:SAP AIF 消息监控实战解析

究竟解决了什么痛点?概括起来,这个应用把SAP AIF的接口监控,从传统的事务码和技术视角,带到了一个更加直观、业务友好的层次:(通过卡片式总览,让你在一个页面上看到所有自己负责的接口及其健康状况。通过和的联动,实现了从接口态势到具体消息的快速钻取。通过Recipient模型和应用,实现了监控职责的灵活分配。借助拖拽排序、搜索过滤等特性,让每个运维人员都可以打造属于自己的接口健康 cockpit。如果你正在做S/4HANA或项目,无论是公有云还是本地部署,只要系统启用了SAP AIF。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 106

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

《操作系统》-进程互斥的实现方法

进程互斥的实现方法 引言 如果没有进程互斥会怎么样呢? 进程A、进程B在系统中并发地运行 先调度A上处理机运行当A在使用打印机的过程中,分配给它的时间片用完了,接下来操作系统调度B让它上处理机运行进程B也在使用打印机 结局:A、B 的打印内容混在一起了 所以我们的进程互斥是必不可少的 通过这篇文章,我们分别来说进程互斥的软件实现方法和硬件实现方法 软件实现方法 单标志法 ...

weixin_52786722的博客 2219

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

进程互斥的软件实现方法

Peterson算法 算法思想:结合双标志法、单标志法的思想。如果双方都争着想进入临界区,那可以让进程尝试“孔 融让梨”(谦让)。做一个有礼貌的进程。

黄先生的博客 364

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

经典进程同步问题(三)——读者写者问题

读者写者问题三种解决方案的代码详述:读者优先、写者优先、读写公平

aimat2020的博客 2万+

操作系统同步互斥问题

操作系统同步互斥问题 一些经典的例子就不列举了,接下来讲一些在学习操作系统课程的过程中所遇到的几个进程同步的题目。 1.取放水果问题 用基本记录型信号量解决如下同步关系:一空盘放一水果,父放梨,母放橘,儿取梨,女取橘,四人如何并发?由题目我们可以知道缓冲区只有一个,父母放水果之间及儿女取水果之间是互斥的关系,而且父放了梨之后儿子才能取梨,母亲放了橘子后女儿才能取橘子。站着资源的角度上,我们要定义三...

ghy20164360的博客 4329

Linux进程管理:从fork、exec到进程池与互斥同步实战

在操作系统与并发编程领域,进程是程序执行的基本单元,其管理机制是构建复杂系统的核心。理解进程的创建、执行与调度原理,是掌握现代服务器架构与高性能计算的基础。从经典的fork()系统调用及其写时复制(Copy-On-Write)优化,到exec()系列函数实现程序映像替换,再到进程间通信与同步,这些技术共同支撑了从Shell命令执行到Web服务器并发处理等关键应用场景。本文聚焦于Linux环境下的进程控制与互斥,深入探讨了如何通过信号量、文件锁及共享内存等机制,解决多进程访问共享资源时的竞争条件问题,并最终通

weixin_30843605的博客 366

进程互斥、同步--读者写者问题

1、问题描述 有读者和写着两组并发进程,共享一个文件,两个及以上的读者进程可同时访问文件,但是写进程与写进程之间和写进程与读进程之间不能同时访问文件。 2、关系分析 semaphore rw=1; //实现对文件的互斥访问 int count=0; //记录当前有几个读进程在访问文件 semaphore mutex=1; //用于保证对count的互斥访问 3、代码实现 writer(){ wh...

qq_41459433的博客 1361

单标志法,双标志先检查法,双标志后检查法,Peterson算法,进程互斥的软件解决方法

摘要:文章通过卫生间使用权的比喻,生动讲解了并发控制中的互斥问题解决方案演变。第一代单标志法(轮流使用)简单但缺乏灵活性;第二代双标志先检查法(先看对方状态)可能导致同时进入;第三代双标志后检查法(先占坑)容易陷入互相等待;第四代Peterson算法结合前几代优点,通过"意愿+谦让"机制完美解决互斥、空闲让进和有限等待问题(仅剩忙等待缺点)。这一演进过程展现了从简单到精巧的算法设计思维。

2302_80899343的博客 1089

PV操作——解决进程同步和互斥的机制

转自:http://baike.baidu.com/view/703687.htm        PV操作与信号灯的处理相关,P表示通过的意思,V表示释放的意思。 背景(小故事,可跳过)        1962年,狄克斯特拉离开数学中心进入位于荷兰南部的艾恩德霍芬技术大学(Eindhoven Technical University)任数学教授。在这里,他参加了X8计算机的开

ustb_md的专栏 3271

巧妙理解线程和进程

首先我们来回顾下线程和进程的概念: 进程:CPU 进行资源分配的基本单位 线程:CPU 调度的最小单位 这是进程和线程最官方也是最常见的两个定义,但是这两个概念太抽象了,很难以理解。通俗一点讲:进程可以描述为一个应用程序的执行程序,线程则是进程内部用来执行某个部分的程序。 下面再引用一段知乎的高赞回答,我感觉非常有意思: 做个简单的比喻:进程=火车,线程=车厢 线程在进程下行进(单纯的车厢无法运行) 一个进程可以包含多个线程(一辆火车可以有多个车厢) 不同进程间数据很难共享(一辆火车上的乘客很难换到另外

某年某月某日 222
上一篇: ShellCode汇编内存自动提取
下一篇: ZDI-07-048: Microsoft Internet Explorer substringData() Heap Overflow
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值