HANDLE h;
    h = OpenProcess(PROCESS_ALL_ACCESS, TRUE, GetCurrentProcessId());    char buf[10];
    memset(buf, 0, sizeof(buf));
    DWORD by = 0x0118;
    ::ReadProcessMemory(h, (void *)0x50003C,
                           (void *)buf,
                           4,
                           NULL);    memset(buf, 0, sizeof(buf));
    WriteProcessMemory(h, (void *)0x50003C,
                          (void *)by,
                          4,
                          NULL);    memset(buf, 0, sizeof(buf));
    ::ReadProcessMemory(h, (void *)0x50003C,
                           (void *)buf,
                           4,
                           NULL);

解决方案 »

  1.   

    WriteProcessMemory(h, (void *)0x50003C,
                              (void *)by,
                              4,
                              NULL);
    by 还是 &by  如果是by,就是把by变量转换成指针,把地址0x0118的东西写进去,可能会造成内存访问越界如果是&by ,就是把0x0118写进去
      

  2.   

    改了还是写不进去    DWORD by = 0x0118;
        WriteProcessMemory(h, (void *)0x40003C,
                              &by,
                              4,
                              NULL);