createprocess error=2_CreateProcess

createprocess error=2_CreateProcessOpenProcess函数声明如下,失败则返回NULL(0,也就是false)#include<Windows.h>HANDLEOpenProcess(DWORDdesiredAccess,//读取权限BOOLblnheritHandle,//是否继承DWORDprocessId//想要读取的PID)代码示例,注意下面的代码可能运行失败,请按照如下设置VS右键项目名(例如ConsoleApplication123)->属性->配置属性(注意左上角是活动D

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

OpenProcess函数声明如下,失败则返回NULL(0,也就是false)

#include <Windows.h>
HANDLE OpenProcess
(
DWORD desiredAccess,//读取权限
BOOL blnheritHandle,//是否继承
DWORD processId//想要读取的PID
)

代码示例,注意下面的代码可能运行失败,请按照如下设置VS
右键项目名(例如ConsoleApplication123)->属性->配置属性(注意左上角是活动Debug/Debug/Release/所有配置,比如选了Release则在Debug下无效)->链接器->清单文件->UAC执行级别->requireAdministrator
然后关闭visual studio,以管理员身份运行visual studio

#include <iostream>
#include <Windows.h>

int main() { 
   
	int pid;
	std::cout << "输入PID" << std::endl;//46044
	std::cin >> pid;
	HANDLE handler=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
	if (handler) { 
   
		std::cout << "获取句柄成功" << std::endl;
	}
	else { 
   
		std::cout << "获取句柄失败" << std::endl;
	}
}

ReadProcessMemory函数声明如下,成功true失败返回false

BOOL ReadProcessMemory
(
HANDLE process,//要读取的句柄
LPCVOID baseAddress,//要读取的地址(我个人觉得就是相对于HANDLE的偏移地址)
LPVOID buffer,//要把读到的数据放到buffer,这是个指针
SIZE_T size,//要读取的数据字节大小
SIZE_T *readSize//接受到的数据大小,可为NULL
)

示例代码,配合OpenProcess使用

#include <iostream>
#include <Windows.h>

int main() { 
   
	int pid;
	std::cout << "输入PID" << std::endl;//46044
	std::cin >> pid;
	HANDLE handler=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
	if (handler) { 
   
		std::cout << "获取句柄成功" << std::endl;
		int a = 0;
		BOOL result = ReadProcessMemory(handler,(LPCVOID)0x4cef18,&a,4,NULL);
		if (result) { 
   
			std::cout << "读取数据成功:"<<a << std::endl;
		}
		else { 
   
			std::cout << "读取数据失败" << std::endl;
		}
	}
	else { 
   
		std::cout << "获取句柄失败" << std::endl;
	}
}

WriteProcessMemory函数声明如下,成功true失败返回false

BOOL ReadProcessMemory
(
HANDLE process,//要写入的句柄
LPVOID baseAddress,//要写入的地址,注意不是LPCVOID(多个C)
LPCVOID buffer,//要写入的数据指针
SIZE_T size,//要写入的数据字节大小
SIZE_T *readSize//实际写入的数据大小,可为NULL
)

示例代码,配合OpenProcess使用

#include <iostream>
#include <Windows.h>

int main() { 
   
	int pid;
	std::cout << "输入PID" << std::endl;//46044
	std::cin >> pid;
	HANDLE handler=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
	if (handler) { 
   
		std::cout << "获取句柄成功" << std::endl;
		int a = 666;
		while (1) { 
   
			BOOL result = WriteProcessMemory(handler, (LPVOID)0x4cef18, &a, 4, NULL);
			if (result) { 
   
				std::cout << "写入数据666" << std::endl;
			}
			Sleep(1000);//延迟1000毫秒
		}
		
	}
	else { 
   
		std::cout << "获取句柄失败" << std::endl;
	}
}

VirtualAllocEx函数
在指定的线程中开辟内存,下面的示例表示开辟1000个字节的内存(实际上是1000/页大小)

LPVOID lpvoid=VirtualAllocEx(handler, 0, 1000, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
std::cout << lpvoid << (char)10;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194599.html原文链接:https://javaforall.net

(0)
上一篇 2025年11月2日 下午6:43
下一篇 2025年11月2日 下午7:15


相关推荐

  • vue上传文件组件使用_uniapp支持ios文件上传

    vue上传文件组件使用_uniapp支持ios文件上传imgList:[],size:0,limit:undefined}},methods:{//设置fileClick(){document.getElementById(‘upload_file’).click()},fileChange(el){if(!el.target.files[0].size)returnthis.fileList(el.target)el.target.value=‘’},fileList(fileList){letfil

    2022年8月15日
    4
  • 计算机硬件组成

    计算机硬件组成1 计算机硬件由两大部分组成 主机和外设主机包括 cpu 内存外设包括 输入设备 输出设备 辅助存储器具体的硬件 cpu 内存 硬盘 主板 电源 风扇 网卡 前面这些是重要的 显示器 键盘 鼠标 声卡 显卡 这些是不重要的 下面来一一介绍 Cpu 中央处理器 centralproce 作用 运算和控制相当于人的大脑了解 CPU 核数 四核心双核心六核心八核心

    2026年3月17日
    2
  • uIP resolv_found的实现

    uIP resolv_found的实现前言物联网的 IPV6 应用是一个趋势 contiki 是集成了 6lowpan 的一个集成开发工具 uip 是集成在内部的 支持 IPV6 以及 IPV4 这里先通过 IPV4 与平台连接建立一个数据通道 后续会跟进 IPV6 以及 6lowpan 的应用 而且 uip 不需要 OS 支持 以事件驱动的方式编程 占用的 RAM 以及 ROM 都符合嵌入式的需求 之前我们需要了解一些背景知识 1 http 的相关

    2026年3月26日
    1
  • oracle函数的创建

    oracle函数的创建函数和存储过程有一定的相似之处,函数用于返回特定的数据,当建立函数时,在函数头部就会包含return字句,而在函数体内必须包含return语句返回的数据,可以使用createfunction来创建函数。案例1输入雇员的姓名,返回雇员的年薪。创建函数:createorreplacefunctionc_hs1(srnamevarchar2)returnnumber …

    2025年9月4日
    7
  • 等价类划分法三角形测试用例_三角形等价类划分

    等价类划分法三角形测试用例_三角形等价类划分测试用例实例--三角形用例设计测试一个图形是不是三角形,需考虑到三角形的性质要求。除了满足ABC均是整数且大于0,还需满足A>0,B>0,C>0,且A+B>C,B+C>A,A+C>B。如果是等腰的,还要判断A=B,或B=C,或A=C。如果是等边的,则需判断是否A=B,且B=C,且A=C。输入条件有效等价类无效等价类

    2022年10月17日
    5
  • Java虚拟机:垃圾回收机制与垃圾收集器

    Java虚拟机:垃圾回收机制与垃圾收集器

    2021年4月10日
    184

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号