首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++无法读取内存地址

C++无法读取内存地址
EN

Stack Overflow用户
提问于 2016-06-09 03:57:38
回答 1查看 2.3K关注 0票数 0

我只是为了教育目的而创建一个简单的黑客。一个简单的Triggerbot,从记忆中读取玩家瞄准敌人的值YES =1或NO = 0。我做了一些类似的黑客,但是我从来没有发现过这个问题。在彩虹六围城中,我有静态或动态的内存地址,但是欺骗引擎读得很好,但是当我尝试从我的C++程序读取它时,它不工作。不知道为什么它会和其他游戏合作。我是新手,也许我做错了什么。

代码语言:javascript
运行
复制
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#define F6Key 0x75
using namespace std ;
int value ;
int main()
{
    cout << "Open Game .." << endl ;
    system("Pause") ;
    LPCWSTR gameone = L"Rainbow Six";
    HWND hwnd = FindWindow(0, gameone);
    if (gameone == 0)
    {
        cout << "Not Found." << endl ;
        system("Pause") ;
    }
    else
    {
        cout << "Success finding game." << endl;
        DWORD processid ;
        GetWindowThreadProcessId(hwnd, &processid) ;
        HANDLE process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processid) ;
        cout << processid ;

        if (!ReadProcessMemory(process, (void *)0x25421AD9D6C, (void *)&value, sizeof(value), NULL)) {
            cout << "Unable to read memory proccess";
        }
        else {
            cout << "\n Read: " << value;
        }
        system("Pause");
    }
    return 0 ;
}

这里的代码简单的找到窗口的名字,得到它的PID罚款没有问题。然后,当我调用带有进程的方法OpenProcess时,address指针值by参数无法读取它,无法打印if条件,而从不打印值的其他读取。

如果我将函数从If条件中移除,只为了测试是否至少指向某物,它会给出一些随机值.奇怪的是,我无法读懂记忆,它总是起作用::(有人能帮我吗?是什么安全软件之王什么的?

EN

回答 1

Stack Overflow用户

发布于 2016-06-09 04:22:11

首先,您必须检查OpenProcess返回值。如果您的进程没有足够的权限,它将返回NULL,任何使用此句柄的尝试都将失败。使用GetLastError函数确定错误原因。很可能是ERROR_ACCESS_DENIED

其次,要成功地访问外部进程内存空间,应该使用PROCESS_VM_READ权限打开它的句柄,或者为您的进程令牌启用seDebugPrivilege。例如,如何在MSDN中看到这一点。

最后也是。如果内存地址(在本例中为0x25421AD9D6C)无效,则ReadProcessMemory将失败。在这种情况下,value变量不会被初始化,任何使用它的尝试都是一种未定义的行为。

另外,如果您设法获得了流程句柄,那么在您使用完它之后,应该使用CloseHandle函数关闭它。

Upd:如果ReadProcessMemory返回FALSEGetLastError - ERROR_PARTIAL_COPY,这意味着发生了页面错误,您正在尝试从缓冲区读取,并且至少一部分没有分配给物理内存。如果您知道您的值偏移量,使用PSAPI GetModuleInformation函数获取模块加载地址,然后将偏移量添加到MODULEINFO结构的lpBaseOfDll字段中。

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

https://stackoverflow.com/questions/37716529

复制
相关文章

相似问题

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