Исходник Говно аирбрейк.

otherwise

Участник
Автор темы
46
7
Код аирбрейка:
#include "pch.h"
float* coordinates = (*(DWORD*)0xB6F5F0) ? (float*)(*(DWORD*)(*(DWORD*)0xB6F5F0 + 0x14) + 0x30) : NULL;
DWORD Gravity = *(DWORD*)0x863984;

void airbrake() {
    bool CheatOn = false;
    while (1) {
        
        if (GetAsyncKeyState(VK_RSHIFT) && CheatOn == false)
        {
            CheatOn = true;
            *(DWORD*)0x863984 = 0.013;
            
        }
        if (CheatOn == true) {
            if (GetAsyncKeyState(VK_DELETE))
            {
                CheatOn = false;
            }
            GetAsyncKeyState(VK_UP) ? coordinates[2] += 0.0002f : NULL;
            GetAsyncKeyState(VK_DOWN) ? coordinates[2] -= 0.0002f : NULL;
            GetAsyncKeyState(VK_RIGHT) ? coordinates[0] += 0.0002f : NULL;
            GetAsyncKeyState(VK_LEFT) ? coordinates[0] -= 0.0002f : NULL;
            GetAsyncKeyState(0x57) ? coordinates[1] += 0.0002f : NULL;
            GetAsyncKeyState(0x53) ? coordinates[1] -= 0.0002f : NULL;
        }
        if (CheatOn == false) {
            *(DWORD*)0x863984 = Gravity;
        }
        
    }
}

void init() {
    while (*(DWORD*)0xC8D4C0 != 9)
        Sleep(100);
    airbrake();
    
    
}



    
BOOL APIENTRY DllMain(HMODULE hModule,
    DWORD  ul_reason_for_call,
    LPVOID lpReserved
)
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    {
        CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)init, NULL, NULL, NULL);
    }
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}
Написал хреновый аирбрейк, выложил дабы послушать мнение спецов в написании подобного, если не сложно, укажите на мои ошибки и дайте каких-нибудь рекомендаций)).
 

Вложения

  • airbreak_wise.asi
    41 KB · Просмотры: 32
  • Нравится
Реакции: MrCreepTon

Carrentine

Потрачен
570
460
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Разве float* coordinates не массив?
Это указатель.
Код аирбрейка:
#include "pch.h"
float* coordinates = (*(DWORD*)0xB6F5F0) ? (float*)(*(DWORD*)(*(DWORD*)0xB6F5F0 + 0x14) + 0x30) : NULL;
DWORD Gravity = *(DWORD*)0x863984;

void airbrake() {
    bool CheatOn = false;
    while (1) {
       
        if (GetAsyncKeyState(VK_RSHIFT) && CheatOn == false)
        {
            CheatOn = true;
            *(DWORD*)0x863984 = 0.013;
           
        }
        if (CheatOn == true) {
            if (GetAsyncKeyState(VK_DELETE))
            {
                CheatOn = false;
            }
            GetAsyncKeyState(VK_UP) ? coordinates[2] += 0.0002f : NULL;
            GetAsyncKeyState(VK_DOWN) ? coordinates[2] -= 0.0002f : NULL;
            GetAsyncKeyState(VK_RIGHT) ? coordinates[0] += 0.0002f : NULL;
            GetAsyncKeyState(VK_LEFT) ? coordinates[0] -= 0.0002f : NULL;
            GetAsyncKeyState(0x57) ? coordinates[1] += 0.0002f : NULL;
            GetAsyncKeyState(0x53) ? coordinates[1] -= 0.0002f : NULL;
        }
        if (CheatOn == false) {
            *(DWORD*)0x863984 = Gravity;
        }
       
    }
}

void init() {
    while (*(DWORD*)0xC8D4C0 != 9)
        Sleep(100);
    airbrake();
   
   
}



   
BOOL APIENTRY DllMain(HMODULE hModule,
    DWORD  ul_reason_for_call,
    LPVOID lpReserved
)
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    {
        CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)init, NULL, NULL, NULL);
    }
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}
Написал хреновый аирбрейк, выложил дабы послушать мнение спецов в написании подобного, если не сложно, укажите на мои ошибки и дайте каких-нибудь рекомендаций)).
Свойства проекта -> С++ -> Отключение предкомпилированных заголовков.
 
  • Нравится
Реакции: otherwise

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,953
Ужасный код. Такой код надо писать только когда тестируешь что то. Создавать поток в DllMain - это плохо. Так же использование Sleep и GetAsyncKeyState, получение данных в глобальной области видимости. Тебе тут надо хукать WndProc и он тебе будет давать все текущие "эвенты" окна и не придётся использовать создание потока, sleep и получение стейта клавиши.
 
  • Нравится
Реакции: dragonprod и Carrentine

loganhackerdff

Известный
868
520
Ужасный код. Такой код надо писать только когда тестируешь что то. Создавать поток в DllMain - это плохо. Так же использование Sleep и GetAsyncKeyState, получение данных в глобальной области видимости. Тебе тут надо хукать WndProc и он тебе будет давать все текущие "эвенты" окна и не придётся использовать создание потока, sleep и получение стейта клавиши.
Вот вот именно
 

otherwise

Участник
Автор темы
46
7
Ужасный код. Такой код надо писать только когда тестируешь что то. Создавать поток в DllMain - это плохо. Так же использование Sleep и GetAsyncKeyState, получение данных в глобальной области видимости. Тебе тут надо хукать WndProc и он тебе будет давать все текущие "эвенты" окна и не придётся использовать создание потока, sleep и получение стейта клавиши.
можешь скинуть пример хорошо написанного плагина? Просто где-то мне говорили создавать поток, ты говоришь не создавать)))