C++如何修改程序内存?

利用特征码我已经读取到了0x031AEE61 这个地址

请问怎么才能将C6 86 CF 00 00 00 00 这七个字节 修改为 90 90 90 90 90 90 90

img

#include <windows.h> 
#include <tlhelp32.h>
#include <psapi.h>

//根据进程名字获取进程ID
UINT GetProcessIdByName(LPCTSTR pszExeFile)
{
    UINT nProcessID = 0;
    PROCESSENTRY32 pe = {sizeof(PROCESSENTRY32)};
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
    if (hSnapshot != INVALID_HANDLE_VALUE)
    {
        if (Process32First(hSnapshot, &pe))
        {
            while (Process32Next(hSnapshot, &pe))
            {
                if (lstrcmpi(pszExeFile, pe.szExeFile) == 0)
                {
                    nProcessID = pe.th32ProcessID;
                    break;
                }
            }
        }
        CloseHandle(hSnapshot);
    }
    return nProcessID;
}

//根据进程ID获取要写的内存首地址
DWORD dwAddr =  GetProcessBaseAddress(pID);

BYTE jmp[7] = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 };
WriteProcessMemory(GetCurrentProcess(), (LPVOID)dwAddr, jmp, 7, 0);

感谢邀请,关键代码给你写出来了,你组合一下