createprocess error=2_CreateProcess

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


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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 电脑15分钟自动重启_windows一分钟重启解决

    电脑15分钟自动重启_windows一分钟重启解决前言Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时。此时,我们只需网上找一个注册码即可解

    2022年7月31日
  • 惠普电脑一直刷新_我的电脑设备管理器在哪

    惠普电脑一直刷新_我的电脑设备管理器在哪公司的Hp电脑,设备管理一直刷新,鼠标时断时续,很搞心态,得有一个月了,一直找不到原因,后来禁用了设备管理的生物识别设备就可以了,反正也用不到指纹.

    2022年8月12日
  • java+widthstep,i*step+j*channels+k 以及widthStep大小计算及原理

    java+widthstep,i*step+j*channels+k 以及widthStep大小计算及原理一直以为IplImage结构体中的widthStep元素大小等于width*nChannels,大错特错!查看OpenCV2.1的源码,在src/cxcore/cxarray.cpp文件中,找到cvInitImageHeader函数,函数中对widthStep大小赋值如下:image->widthStep=(((image->width*image->nChannels…

    2022年6月9日
  • jQuery遮罩层登录对话框

    用户登录是许多网站必备的功能。有一种方式就是不管在网站的哪个页面,点击登录按钮就会弹出一个遮罩层,显示用户登录的对话框。这用方式比较灵活方便。而现在扫描二维码登录的方式也是很常见,例如QQ、微信、百度

    2021年12月28日
  • c语言中uint8_uint16转uint8

    c语言中uint8_uint16转uint8C++的基础数据类型:名称字节长度取值范围bool1false,truechar1-128~127signedchar1-128~127unsignedchar10~255short(signedshort)2-215~215-1unsignedshort20~216-1int(signedin…

    2022年9月15日
  • 人工神经网络(ANN)及BP算法[通俗易懂]

    人工神经网络(ANN)及BP算法[通俗易懂]1什么是神经网络1.1基本结构说明:通常一个神经网络由一个inputlayer,多个hiddenlayer和一个outputlayer构成。图中圆圈可以视为一个神经元(又可以称为感知器)设计神经网络的重要工作是设计hiddenlayer,及神经元之间的权重添加少量隐层获得浅层神经网络SNN;隐层很多时就是深层神经网络DNN1.2从逻辑回归到神经元LinearRegres

    2022年9月11日

发表回复

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

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