c++

C++中writeprocessmemory的用法是什么

小亿
161
2023-11-10 13:38:43
栏目: 编程语言

在C++中,WriteProcessMemory函数用于向指定进程的内存写入数据。

函数的用法如下:

BOOL WriteProcessMemory(
  HANDLE  hProcess,      // 目标进程的句柄
  LPVOID  lpBaseAddress, // 写入数据的起始地址
  LPCVOID lpBuffer,      // 数据缓冲区的指针
  SIZE_T  nSize,         // 要写入的字节数
  SIZE_T  *lpNumberOfBytesWritten // 实际写入的字节数
);

参数说明:

函数返回值:

示例代码:

#include <iostream>
#include <windows.h>

int main()
{
    // 打开目标进程
    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, targetProcessId);

    // 写入数据
    int value = 123;
    LPVOID lpBaseAddress = (LPVOID)0x12345678;
    SIZE_T nSize = sizeof(value);
    SIZE_T lpNumberOfBytesWritten;

    BOOL result = WriteProcessMemory(hProcess, lpBaseAddress, &value, nSize, &lpNumberOfBytesWritten);
    if (result)
    {
        std::cout << "WriteProcessMemory succeeded. Bytes written: " << lpNumberOfBytesWritten << std::endl;
    }
    else
    {
        std::cout << "WriteProcessMemory failed. Error code: " << GetLastError() << std::endl;
    }

    // 关闭目标进程句柄
    CloseHandle(hProcess);

    return 0;
}

上述示例代码中,首先使用OpenProcess函数打开了一个目标进程的句柄。然后通过WriteProcessMemory函数向目标进程写入了一个整数值。最后使用CloseHandle函数关闭目标进程句柄。

0
看了该问题的人还看了