当前位置:首页 > 内存 > 正文

驱动修改内存页属性源码

  • 内存
  • 2024-06-06 09:27:42
  • 5378

一、求修改某进程内存的代码(C++)下面是用户级的方法:
1)首先你应该有SeDebugPrivilege权限,这样当你打开其他进程时,当然不会有完全的权限能够打开杀毒之类的某些进程软件流程。
这可以通过AdjustTokenPrivileges函数来实现
2)调用OpenProcess打开游戏进程(注意:使用PROCESS_VM_WRITE权限打开您需要进程IDPID,通过GUI或者您可以获取通过FindWindow和GetWindowThreadProcessId组合获取进程ID
3)调用WriteProcessMemory写入指定的进程地址空间,假设你已经提取了游戏数据所在的地址
如果你有详细信息,嗨
-------------------------------------------------------------------
以下是基本代码(省略错误检测和开启SeDebugPrivilege)
DWORDdwProcessId;//假设你明白了PROCESS_VM_READ,
FALSE,dwProcessId);
PVOIDpDestinationaddress=目标进程;
BYTEMyData[5]={0x4c,0xff,0x64,0x00,0x2f};
BOOLfSuccess=WriteProcessMemory(hProcess,//写入内存的进程句柄
pDestination,//目标地址process
(PVOID)MyData,//要写入数据的地址
5,//大小,以字节为单位
NULL);
------------------------------------------------
下面是通过游戏窗口名称获取游戏PID的代码:(以纸牌游戏为例)
HWNDhwnd=FindWindow(NULL,
TEXT("Cards"));//要查找的窗口名称
DWORDdwProcessId;
(VOID)GetWindowThreadProcessId(hwnd,&dwProcessId);


二、更改虚拟内存页面文件的大小

本文介绍如何更改虚拟内存页面文件的大小以及如何打开计算机管理。
🖥️打开计算机管理
打开计算机管理(本地)。在控制台树中,右键单击“计算机管理(本地)”,然后单击“属性”。
更改虚拟内存页面文件大小
在“高级”选项卡上,单击“性能选项”,然后单击“虚拟内存”下的“更改”。在驱动器列表中,单击包含要更改的页面文件的驱动器。在“所选驱动器的页面文件大小”下,在“初始大小(MB)”或“最大大小(MB)”框中键入新的页面文件大小(以MB为单位),然后单击“设置”。
🔍查看或更改系统属性
您可以在远程或本地计算机上查看或更改系统属性。要访问远程计算机,请右键单击“计算机管理(本地)”,单击“连接到另一台计算机”,然后从列表中选择要连接的计算机。
🚀性能优化
为了获得最佳性能,请将“所有驱动器的总页面文件大小”中的初始大小设置为小于建议的大小。建议的大小是系统RAM(随机存取存储器)容量的1.5倍。一般来说,页面文件应保持在建议的大小,但日常使用内存密集型程序可能会导致页面文件大小增加。
❌删除页面文件
要删除页面文件,请将初始大小和最大大小都设置为0。