首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WriteProcessMemory()返回487?使用CheatEngine找到的值

WriteProcessMemory()返回487?使用CheatEngine找到的值
EN

Stack Overflow用户
提问于 2015-01-26 19:25:26
回答 1查看 912关注 0票数 0

正如上面所写的(^),我在使用C++和WriteProcessMemory()时遇到了问题。我打开了Windows- Calc.exe,用存储了一个号码,然后打开了CheatEngine。我找到了号码(更改了e.t.c.)并将其放入此程序中:(注:我是德国人;"Rechner“等于"Calculator")

代码语言:javascript
复制
#include <iostream>
#include <Windows.h>
using namespace std;

int main (){
    int Value = 500;
    HWND hWnd = FindWindow(0, L"Rechner");

    if (!hWnd) {
        cerr << "Can't find window" << endl;
        return 0;
        }

    DWORD PID;
    GetWindowThreadProcessId(hWnd, &PID);
    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);

    if (!hProcess) {
        cerr << "Process handle error" << endl;
        return 0;
        }
    int iSuccess = WriteProcessMemory(hProcess, (LPVOID)0x899FC6F60C , &Value, (DWORD)sizeof(Value), NULL);
    int i = 0;
    while (iSuccess == 0){
        i = i+1;
        cerr << "Failed " << i  << "  Error:   " << GetLastError() << endl;
        iSuccess = WriteProcessMemory(hProcess, (LPVOID)0x899FC6F60C , &Value, (DWORD)sizeof(Value), NULL);  //Here all begins
        }
    clog << "Done" << endl;
    CloseHandle(hProcess);
    return 0;
}

找到窗口,找到进程(无错误..)但是,"//Here all begins“行返回0,并将GetLastError()设置为487。像下面的所有内容一样。如果你知道,我做错了什么,请描述它的新手友好,我昨天开始C++。

EN

回答 1

Stack Overflow用户

发布于 2015-01-26 19:29:53

有关GetLastError代码含义的说明,请参阅此link

在这种情况下,ERROR_INVALID_ADDRESS会尝试访问无效地址。

这是因为你正在写一个“随机”的内存地址。您不能只是接受一个数字,然后希望在这个地址的另一个进程中会有内存。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28149180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档