通过OpenProcess访问进程

Windows进程保护实战:用C++ Inline Hook拦截OpenProcess,让你的程序像360一样“拒绝访问” 本文深入解析了Windows进程保护的C++ Inline Hook技术,通过拦截OpenProcess和CreateProcessW系统调用,实现类似商业安全软件的进程防护效果。详细介绍了Hook技术原理、核心代码实现及优化策略,并提供了实战部署指南与问题排查方案,帮助开发者构建轻量级用户态进程保护系统。 阅读详情

通过OpenProcess访问进程,返回进程HANDLE

方法1:

    enableDebugPriv();
    HWND hWnd = FindWindowA(NULL,"Windows Live Messenger");      //程序的标题栏
    DWORD dwProcessId;
    GetWindowThreadProcessId(hWnd, &dwProcessId);
    HANDLE hProcess1 = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);

 

方法2:

    enableDebugPriv();

    hResult = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    if(hResult == INVALID_HANDLE_VALUE)
          return (HANDLE)-1;
    PROCESSENTRY32 pe32;
    pe32.dwSize = sizeof(pe32);
    DWORD dwPid = 0;
   
    BOOL bMore =  Process32FirstW(hResult,&pe32);
    while(bMore)
    {     
        if(wcscmp(pe32.szExeFile,cName) ==0) 
        {
            dwPid = pe32.th32ProcessID;
            break;
        }
        bMore = Process32Next(hResult,&pe32);
    }
    CloseHandle(hResult);
    if(0!=dwPid)
    {
        hProcess2 = OpenProcess(PROCESS_ALL_ACCESS,false,dwPid);

    }

关于API HOOK(OpenProcess),根据网上文章改写  以下是部分程序,在VC++6.0   Plat  SDK 2003 SP1下编译通过#include #include "APIHook.h"extern CAPIHook g_OpenProcess;// 自定义OpenProcess函数#pragma data_seg("YCIShared")HHOOK g_hHook = NULL;DWORD  dwCurrentProcess 阅读详情

相关推荐

OpenProcess函数打开进程权限不够??

我们会遇到OpenProcess函数失败的情况,通过GetLastError函数发现其错误代码为5,VS查看之后发现拒绝访问: 这是因为用OpenProcess打开一些普通进程是可以的,但是要打开的是系统安全进程(如System、Winlogon、smss、csrss、services、lsass等)或是一些注册为服务的进程时,就会遇到拒绝访问的情况。此时我们该如何解决这个问题呢? 解决这个问题只需要当前进程具有SeDebugPrivilege权限就可以了。打开权限相关的函数有: OpenProcess

KOOKNUT的博客 5315

openProcess时拒绝访问(GetlastError为5),返回的HANDLE为NULL的解决方法

遇到的问题:在winXP的VS2010里调试好的程序,直接双击exe文件能运行,但是什么都没执行,就是没有按我程序中写的去执行。 找出问题的方法:由于是执行exe文件出的错误,因此用普通的打印语句(printf,cout等)是没用的,我在程序 中每个几行加一个messageBox或者向一个文件写内容来判断程序执行到哪儿出现了问题。 具体介绍:最近在写一个进程监控管理的程序,都已经写好了,并且在

System Architect 1万+

进程拒绝访问怎么办?_提升权限AdjustProcessPrivilege

进程拒绝访问怎么办?_提升权限AdjustProcessPrivilege

提权 调试权限 OpenProcess 拒绝访问的解决办法

并不是说有了管理员权限就能为所欲为,有时还需要将进程权限提升为DEBUG。 // 提权函数:提升为DEBUG权限 BOOL EnableDebugPrivilege() { HANDLE hToken; BOOL fOk=FALSE; if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken)) { TOKEN_PRIVILEGES tp; tp.PrivilegeCount=1; Lookup

hambaga的博客 3316

PCB布线避坑指南:为什么你的差分线等长总调不好?AD19蛇形等长技巧详解

本文详细解析了AD19环境下PCB差分线等长调整的核心技巧与常见问题。从差分信号等长的底层逻辑到AD19规则配置,再到蛇形等长高级技巧和信号完整性验证,帮助工程师解决差分线等长调整中的难题,提升高速PCB设计的信号质量。

weixin_28738397的博客 387

MTK平台高效部署Qwen2.5大模型:从转换到推理全流程解析

本文详细解析了在联发科(MTK)NeuroPilot平台上高效部署Qwen2.5大模型的全流程。内容涵盖从环境搭建、模型转换、量化优化到编译部署与上机推理的完整步骤,重点分享了模型转换与模型运行的关键实践与避坑指南,旨在帮助开发者将大语言模型成功集成至移动及边缘设备。

zeta9的博客 378

Windows中openProcess函数返回ERROR_ACCESS_DENIED的解决方法

主要是权限不足引起的。需要提升程序的权限。具体提升方式参照以下文章: Windows程序权限提升

^-^ 2万+

163种中草药图像数据集构建与ResNet-50迁移学习实战指南

在计算机视觉领域,高质量标注数据集是模型训练的基石,直接影响图像分类、目标检测等任务的性能。其核心原理在于为算法提供结构化的监督信号,通过深度学习模型学习从像素到语义的映射关系。构建此类数据集的技术价值在于解决了特定垂直领域(如中医药)数据稀缺的痛点,为AI技术落地提供了关键“燃料”。在应用场景上,标准化数据集广泛支撑着教学演示、算法验证和产业应用开发。本文聚焦于中草药识别这一细分领域,详细介绍了一个包含163种常见药材、经过多源聚合与清洗的图像数据集构建全过程,并提供了基于PyTorch和ResNet-5

weixin_33672400的博客 458

OpenProcess 返回拒绝访问的错误提示

有时需要使用OpenProcess来查看进程的相关信息,或者结束进程的运行,但是会碰到“拒绝访问”的错误,这时需要提升进程的权限为Debug权限。 BOOL EnableDebugPrivilege() {   HANDLE hToken;   BOOL fOk=FALSE;   if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_P

donglinshengan的专栏 8576

【计算机组成原理】课程设计四:控制器设计(二)

本文主要是介绍了计算机组成原理课程设计四其二,即控制器设计(二),属于计算机课程设计专栏

superiony的博客 1431

混合整数规划(MIP)在资源优化中的实战应用

本文深入探讨了混合整数规划(MIP)在资源优化中的实战应用,从菜市场采购到工厂调度,再到物流配送和钢铁厂切割问题。通过分支定界法和割平面法等技术,MIP能够有效解决包含整数和连续变量的复杂优化问题,提升企业运营效率。文章还介绍了现代求解器的优化策略和实际项目中的避坑指南,帮助读者更好地应用MIP技术。

weixin_30500105的博客 91

C# OpenProcess用法

函数功能:该函数用来打开一个已存在的进程对象,并返回进程的句柄。 函数原型:HANDLE OpenProcess(DWORD dwDesiredAccess,BOOL bInheritHandle,DWORD dwProcessId); 参数: dwDesiredAccess:访问权限。 bInheritHandle:继承标志。 dwProcessId

dangdaa的专栏 5355

S32K3的STCU2模块详解:从硬件FSM到MCAL配置,搞懂BIST在线测试全流程

本文深入解析S32K3系列MCU的STCU2模块,从硬件FSM架构到MCAL配置,详细讲解BIST在线测试全流程。通过分区的安全策略和实战代码示例,帮助开发者掌握汽车电子系统中的功能安全实现,提升系统可靠性和安全性。

weixin_42525328的博客 448

c语言运行结果拒绝访问,2020-08-24 OpenProcess 返回拒绝访问的错误,一段代码提升权限即可访问...

有时需要使用OpenProcess来查看进程的相关信息,或者结束进程的运行,但是会碰到“拒绝访问”的错误,这时需要提升进程的权限为Debug权限。BOOLEnableDebugPrivilege(){HANDLEhToken;BOOLfOk=FALSE;if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&h...

weixin_36195837的博客 1023

手把手教你使用YOLOv11完成人脸分类识别,YOLOv11人脸识别,解决中文乱码问题,全网最详细教程

手把手教你使用YOLOv11完成人脸分类识别,YOLOv11人脸识别,解决中文乱码问题,全网最详细教程

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 4449

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

如何修改进程的访问权限

要对一个任意进程(包括系统安全进程和服务进程)进行指定了写相关的访问权的OpenProcess操作,只要当前进程具有SeDeDebug权限就可以 了。要是一个用户是Administrator或是被给予了相应的权限,就可以具有该权限。可是,就算我们用Administrator帐号对一个系统安全进程执行OpenProcess(PROCESS_ALL_ACCESS,FALSE, dwProcessI

郁闷阳光的专栏 1180

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

OpenProcess函数

HANDLE OpenProcess(DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId) 参数说明: dwDesiredAccess: 想拥有的该进程访问权限。 PROCESS_TERMINATE //终止一个进程的权限。 bInheritHandle: 表示所得到的进程句柄是否可以被继承 dwProces

qiqiaiairen的博客 2175

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

游戏安全3-C,C++读取目标进程内存数据

GetWindowThreadProcessId //返回线程TID和进程PID。OpenProcess //获取进程句柄的函数。认识进程句柄HANDLE。

m0_58301616的博客 1587

OpenProcess用法

函数功能:该函数用来打开一个已存在的进程对象,并返回进程的句柄。 函数原型:HANDLE OpenProcess(DWORD dwDesiredAccess,BOOL bInheritHandle,DWORD dwProcessId); 参数: dwDesiredAccess:访问权限。 bInheritHandle:继承标志。 dwProcessId:进程

若水 1万+

如何访问一个进程的内存空间

           如何访问一个进程的内存空间    在WIN32中,每个应用程序都可“看见”4GB的线性地址空间,其中最开始的4MB和最后的2GB由操作系统保留,剩下不足2GB的空间用于应用程序私有空间。具体分配如下:0xFFFFFFFF-0xC0000000的1GB用于VxD、存储器管理和文件系统;0xBFFFFFFF-0x80000000的1GB用于共享的WIN32 DLL、存储器映射文件

ypyRock的专栏 3084

OpenProcess

函数原型: HANDLE OpenProcess( DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId )

wchengtan的专栏 597

OpenProcess讲解

HANDLE hProcess=OpenProcess(PROCESS_TERMINATE|SYNCHRONIZE,FALSE,proid); if (hProcess==NULL) { cout<<"OpenProcess failed with "<<GetLastError()<<endl; return 0; } else { TCHAR buffer[MAX_PAT

xbgprogrammer的专栏 7719

APIHOOK之拦截OpenProcess(真正的实现了拦截TerminateProcess)

 关于API HOOK(OpenProcess),根据网上文章改写  以下是部分程序,在VC++6.0   Plat  SDK 2003 SP1下编译通过#include #include "APIHook.h"extern CAPIHook g_OpenProcess;// 自定义OpenProcess函数#pragma data_seg("YCIShared")HHOOK

sanshao27的专栏 4574

C# OpenProcess用法 .

函数功能:该函数用来打开一个已存在的进程对象,并返回进程的句柄。 函数原型:HANDLE OpenProcess(DWORD dwDesiredAccess,BOOL bInheritHandle,DWORD dwProcessId); 参数: dwDesiredAccess:访问权限。 bInheritHandle:继承标志。 dwProcessId

LYBWWP 9453

C# OpenProcess 用法

C# OpenProcess用法 . 分类: C#操作内存相关 2011-11-26 23:51 124人阅读 评论(0) 收藏 举报 函数功能:该函数用来打开一个已存在的进程对象,并返回进程的句柄。 函数原型:HANDLE OpenProcess(DWORD dwDesiredAccess,BOOL bInheritHandle,DWORD dwProcessId); ...

asdfsdf3135的博客 429
上一篇: 关于进程访问令牌( access token )
下一篇: mn
proing
博客等级 码龄19年 2092粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值