筱虎哟 发表于 2024-2-5 16:21

dll问题

有一个功能DLL,可以用注入器注入游戏,但是呼出的功能热键无效,有什么办法解决嘛?

学编程的闹钟 发表于 2024-2-5 16:21

#include <Windows.h>

// 全局变量,用于保存热键ID
UINT g_HotkeyId = 1;

// 回调函数,用于处理热键消息
LRESULT CALLBACK HotkeyCallback(int nCode, WPARAM wParam, LPARAM lParam)
{
    if (nCode == HC_ACTION && wParam == g_HotkeyId)
    {
      // 在这里执行你希望在按下热键时执行的功能

      // 返回1表示消息已经被处理
      return 1;
    }

    // 返回0表示消息需要继续传递给下一个钩子或者目标窗口
    return 0;
}

// 注册热键
BOOL RegisterHotkey()
{
    // 注册热键,这里使用Ctrl+Alt+A作为热键
    BOOL result = RegisterHotKey(NULL, g_HotkeyId, MOD_CONTROL | MOD_ALT, 'A');
    if (!result)
    {
      // 处理注册失败的情况
    }

    return result;
}

// 反注册热键
BOOL UnregisterHotkey()
{
    BOOL result = UnregisterHotKey(NULL, g_HotkeyId);
    if (!result)
    {
      // 处理反注册失败的情况
    }

    return result;
}

int main()
{
    // 注册热键
    RegisterHotkey();

    // 消息循环,用于接收和处理热键消息
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
      // 分发消息
      TranslateMessage(&msg);
      DispatchMessage(&msg);
    }

    // 反注册热键
    UnregisterHotkey();

    return 0;
}

sunrui77 发表于 2024-2-5 18:39

首先排除dll有没有验证 如果没验证换个注入方式 别用线程 用钩子唤他函数注入

xuepoijie 发表于 2024-2-5 19:59

自己写个注入器额

学编程的闹钟 发表于 2024-2-6 10:20

1.检查下热键设置,确保热键的设置正确无误,检查一下注入的DLL中的热键设置是否与游戏中的设置相匹配,包括热键绑定和注册
2.需要确保注入成功,有时注入不成功可能导致热键无效,还可以使用其他注入工具来尝试注入,或者检查注入的 DLL 是否正确编译和链接
3.调试注入的DLL,通过调试注入的DLL来查找问题,可以在DLL中添加调试日志或输出消息,来确定是否成功处理热键消息,还可以使用调试器附加到游戏进程,在DLL中设置断点或输出调试信息进行排查
4.检查游戏防作弊机制,某些游戏可能会有防作弊机制,可能会干扰DLL注入或热键触发,这种情况下可能需要绕过游戏的防作弊机制

筱虎哟 发表于 2024-2-6 11:42

这个dll是提取的,应该是注入的时候没有注册热键,按了以后dll没有任何反应,怎么去调用它的热键呢

筱虎哟 发表于 2024-2-6 20:45

学编程的闹钟 发表于 2024-2-6 13:33
#include

// 全局变量,用于保存热键ID


大佬可以换成易语言的嘛?是易语言的dll

学编程的闹钟 发表于 2024-2-6 21:13

筱虎哟 发表于 2024-2-6 20:45
大佬可以换成易语言的嘛?是易语言的dll

不好意思,我不会E语言的,这个是C语言代码,你可以叫AI翻译一下

榴弹炮 发表于 2024-2-10 22:30

这个呼出的热键功能是指dll还是原来系统的?

如果是DLL的,实在不行可以做一个其他的热键程序再跟这个dll通信

筱虎哟 发表于 2024-2-27 15:06

榴弹炮 发表于 2024-2-10 22:30
这个呼出的热键功能是指dll还是原来系统的?

如果是DLL的,实在不行可以做一个其他的热键程序再跟这个dll ...

通信接口怎么找到?
页: [1]
查看完整版本: dll问题