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


相关推荐

  • centos7搭建nfs详细步骤(有哪些免费的服务器)

    【1】NFS简介:        1.NFS是NetworkFileSystem的简称,即网络文件系统        2.NFS是一种分布式文件系统,可以在不同的操作系统间共享文件        3.NFS基于TCP/IP协议,可将远程计算机磁盘挂载到本地        4.NFS在文件或信息传送过程中依赖于RPC(RemoteProcedureCall)协议,不论是服务端还是客户…

    2022年4月13日
    81
  • js 洗牌算法_数据库洗牌算法

    js 洗牌算法_数据库洗牌算法概念洗牌算法即是把一组数组里的元素随机组合生成一个新数组。实现constshuffle=([…arr])=>{letm=arr.length;while(m){consti=Math.floor(Math.random()*m–);[arr[m],arr[i]]=[arr[i],arr[m]];}returnarr;};//测试consttes

    2022年9月21日
    0
  • 数字证书 CA_数字证书申请

    数字证书 CA_数字证书申请文章目录1.证书1.1证书的应用场景1.2证书标准规范X.5091.2.1证书规范1.2.2证书格式1.2.3CA证书1.3公钥基础设施(PKI)1.3.1什么是公钥基础设施1.3.2PKI的组成要素用户认证机构(CA)仓库1.3.3各种各样的PKI2.Fabric-ca2.1简介2.2基本组件2.3安装2.4初始化&快速启动2.5服务端配置文件解析2.6…

    2022年10月16日
    0
  • mysql中geometry类型的简单使用

    mysql中geometry类型的简单使用

    2021年11月3日
    34
  • 什么是.so文件_安卓so文件作用

    什么是.so文件_安卓so文件作用so文件是Linux下的程序函数库,即编译好的可以供其他程序使用的代码和数据linux下何谓.so文件:用过windows的同学应该都知道.dll文件吧,这二者有什么共通之处呢,其实.so文件就跟.dll文件差不多 一般来说.so文件就是常说的动态链接库,都是C或C++编译出来的。与Java比较就是:它通常是用的Class文件(字节码) Linux下的.so文件时不能直接运行的,一般来讲,.so文件称为共享库那么.so文件是怎么用的呢?forexample:(1)动态库的编译.

    2022年9月19日
    0
  • SSH加密代理「建议收藏」

    SSH加密代理「建议收藏」1.首先拷贝putty到系统目录下2.然后执行命令putty-D22bin@ipplinkusername@hostname-D127.0.0.1:80883.设置代理就ok了

    2022年9月10日
    0

发表回复

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

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