吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 955|回复: 6
收起左侧

[求助] C++ 为啥我的变量没有生效

[复制链接]
as614001 发表于 2021-8-5 16:34
本帖最后由 as614001 于 2021-8-5 16:50 编辑

在开头定义了

bool is_hook_enable_1 = false; //hook开启标志


DWORD hookEnable(BOOL is_hook_enable) {
    if (is_hook_enable) return NULL;
    MessageBox(NULL, L"3333", L"看看", 0);
    is_hook_enable = true;
    //hDlg = hModule;
    DWORD WeChatWinDLL = getWeChatWinDLL();
    //取得hook点
    DWORD hook_point = WeChatWinDLL + offset;
    BYTE jmpCode[HOOK_INS_LEN] = { 0 };
    jmpCode[0] = 0xE9;//jmp 的字节码
    //新跳转指令中的数据=跳转的地址-原地址(HOOK的地址)-跳转指令的长度
    *(DWORD*)&jmpCode[1] = (DWORD)func - hook_point - HOOK_INS_LEN;//计算并填入跳转的目标地址

        //获取进程句柄
    HANDLE wx_handle = OpenProcess(PROCESS_ALL_ACCESS, NULL, GetCurrentProcessId());
    //备份hook点数据
    int rpm_result = ReadProcessMemory(wx_handle, (LPCVOID)hook_point, (LPVOID)bakcode, HOOK_INS_LEN, NULL);
    if (rpm_result == 0) {
        MessageBox(NULL, L"内存数据读取失败", L"错误", 0);
        return NULL;
    }
    //覆盖hook点数据
    int wpm_result = WriteProcessMemory(wx_handle, (LPVOID)hook_point, jmpCode, HOOK_INS_LEN, NULL);
    if (wpm_result == 0) {
        MessageBox(NULL, L"内存数据写入失败", L"错误", 0);
        return NULL;
    }
    return hook_point;

}

执行

hookEnable(is_hook_enable_1 );
hookEnable(is_hook_enable_1 );
hookEnable(is_hook_enable_1 );

会多次弹窗,看上去是没有赋值到is_hook_enable_1,是因为c++内部变量都是变量?如何可以修改可以生效呢?
百度了下

c++的形参 实参 传递,实参传递的copy值,详见百度 C++中函数变量的引用   。  一脸懵逼的出来啦


加 &   



楼下的说得对

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wslans 发表于 2021-8-5 16:41
啥意思?你函数里是判断is_hook_enable是本地变量,你每次都传is_hook_enable_1 是false,当然是弹窗了
wslans 发表于 2021-8-5 16:42
wslans 发表于 2021-8-5 16:45
或者你把
DWORD hookEnable(BOOL is_hook_enable)
改成
DWORD hookEnable(BOOL &is_hook_enable)

免费评分

参与人数 1热心值 +1 收起 理由
as614001 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

头像被屏蔽
asdswd 发表于 2021-8-5 18:50
提示: 作者被禁止或删除 内容自动屏蔽
Jack2002 发表于 2021-8-5 19:35
is_hook_enable  和 is_hook_enable_1 是两个不同的东西,你这基础不过关啊,好好啃基础吧!
 楼主| as614001 发表于 2021-8-6 10:40
Jack2002 发表于 2021-8-5 19:35
is_hook_enable  和 is_hook_enable_1 是两个不同的东西,你这基础不过关啊,好好啃基础吧!

我没有基础
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 00:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表