0 / 0 / 0
Регистрация: 29.06.2022
Сообщений: 3
1

Не работает имитация пробела в игре (csgo). С++

29.06.2022, 05:50. Показов 1584. Ответов 5

Author24 — интернет-сервис помощи студентам
Проект на c++, консольное приложение, x86, DLL, многобайтовая кодировка.
Вообщем написал ЧИТ-СКРИПТ банихоп по туториалу.Я изменил функцию имитации прыжка.Так как она не имитирует пробел(пробел в ксго(игра) является тригером для прыжка), а изменяет память делая прыжок. А изменять память - карается блокировкой VAC. Когда я инжекчу в ксго(игра) у меня не работает имитация(которую я написал) пробела, но имитация которая в тутроре работает.
Если что-то нужно уточнить мне, пишите. Прошу помочь.
Имитация прыжка в туториале:

C++
1
*(DWORD*)(gameModule + dwForceJump) = 6;
Попытка эмитации прыжка (нажатием пробела), но которая не работает:

C++
1
2
keybd_event(VK_SPACE, 0, 0, 0);
keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0);
Сам код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <thread>
#include <string>
#include <chrono>
#include "offsets.h"
#include "Windows.h"
using namespace hazedumper::netvars;
using namespace hazedumper::signatures;
 
BOOL WINAPI triggerThread(HMODULE hModule)
{
    uintptr_t gameModule = (uintptr_t)GetModuleHandle("client.dll");
    while (!GetAsyncKeyState(VK_END))
    {
        uintptr_t localPlayer = *(uintptr_t*)(gameModule + dwLocalPlayer);
        if (localPlayer == NULL) continue;
       
        uint32_t flag = *(uint32_t*)(localPlayer + m_fFlags);
        if (GetAsyncKeyState(VK_SPACE) && flag & (1 << 0)) 
        {
        //*(DWORD*)(gameModule + dwForceJump) = 6; - Эмитация прыжка, которая в туториале, но изменяющая память.
 
              //Моя попытка эмуляции прыжка (нажатием пробела), но которая не работает(
            keybd_event(VK_SPACE, 0, 0, 0);
            keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0);
              //Моя попытка эмуляции прыжка (нажатием пробела), но которая не работает(
        }
        Sleep(1);
    }
    FreeLibraryAndExitThread(hModule, 0);
    return 0;
}
 
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        CreateThread(0, 0, (LPTHREAD_START_ROUTINE)triggerThread, 0, 0, 0);
        break;
    }
    return TRUE;
}
файл offsets.h:
https://pastebin.com/xNrtGQr7
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2022, 05:50
Ответы с готовыми решениями:

При игре в CSGO зависает компьютер странный звук и компьютер сам перезагружается
Блок питание : GEMBIRD POWER SUPPLY 450W Видеокарта : Nvidia Geforce 8600 gt Материнка : nf4 am2l...

Не работает чит на CSGO
Всем привет, у меня проблема с читом. Я всё правильно переписал)) Но у других работает, а у меня...

Имитация кликов мышки в игре
Суть вот в чем...хочу написать программу которая бы имитировала нажатие мышки... Я играю в Дьябло...

Нажатие клавиши в игре(имитация)
Уже больше недели длятся мучения моих поисков , вообщем нашёл пару программ имитирующих нажатие...

Имитация нажатий в сторонней игре
Всем привет, в общем хочу сделать скрипт для &quot;Destiny&quot; который по нажатию клавиши &quot;F2&quot; будет...

5
7 / 6 / 1
Регистрация: 29.10.2021
Сообщений: 14
30.06.2022, 06:56 2
keybd_event() устарела, вместо неё следует использовать SendInput()
1
0 / 0 / 0
Регистрация: 29.06.2022
Сообщений: 3
30.06.2022, 07:32  [ТС] 3
Типо так ?)
C++
1
2
SendInput(VK_SPACE, 0, 0);
SendInput(VK_SPACE, 0, KEYEVENTF_KEYUP);
0
7 / 6 / 1
Регистрация: 29.10.2021
Сообщений: 14
30.06.2022, 08:11 4
Лучший ответ Сообщение было отмечено kripper2016 как решение

Решение

SendInput принимает массив структур INPUT

C++
1
2
3
4
5
6
7
8
9
10
11
12
INPUT inputs[2];
std::memset(inputs, 0, sizeof(inputs));
 
inputs[0].type = INPUT_KEYBOARD;
inputs[0].ki.wVk = VK_SPACE;
inputs[0].ki.dwFlags = 0;
 
inputs[1].type = INPUT_KEYBOARD;
inputs[1].ki.wVk = VK_SPACE;
inputs[1].ki.dwFlags = KEYEVENTF_KEYUP;
 
SendInput(sizeof(inputs) / sizeof(INPUT), inputs, sizeof(INPUT));
2
0 / 0 / 0
Регистрация: 29.06.2022
Сообщений: 3
30.06.2022, 10:07  [ТС] 5
В игре не работает, но спасибо за ответ)
0
26 / 1 / 1
Регистрация: 27.06.2021
Сообщений: 72
08.07.2022, 20:15 6
Привет. А ты отлаживал код? Твои оффсеты точно совпадают с текущим обновлением игры?
0
08.07.2022, 20:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2022, 20:15
Помогаю со студенческими работами здесь

Имитация нажатия клавиши Tab в стороннем приложении (игре)
Проблемка вот в чем. Скорее всего я не до конца понимаю принцип работы функций, которые использую....

В проекте unity3d в игре сохранение работает а в установленной игре на устройстве нет
Добрый день Спасибо всем кто поможет Имеем простую игру на юнити 5. Сохранение путем...

Не работает имитация сообщения
Всем доброго вечера. Развлекался с кодом, познавал новое.. Нашел на форуме как сделать имитацию...

Не работает имитация клика мышью
Добрый вечер. Только начал изучать C#, пишу небольшого бота. Подскажите, пожалуйста, почему не...

Не работает имитация нажатия клавиши
if (Msg.wParam == 2) { Memo1-&gt;Text = Memo1-&gt;Text + &quot;A&quot;; ...

Не работает имитация нажатия CTRL+C
может есть у кого какие решения проблемы, у друга на компе пробывал, работает, у меня просто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru