Вопрос Где ошибка?

Начинающий
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
14
Реакции[?]
2
Поинты[?]
2K
Шапка, я не понимаю, почему крашится. Писал баннихоп, за помощь благодарен очень буду (оффсеты в норме если что)
C++:
uintptr_t client;
uintptr_t engine;
uintptr_t LocalPlayer;
uintptr_t flags;

// в init
DWORD client = *(DWORD*)GetModuleHandle("client.dll");
DWORD engine = *(DWORD*)GetModuleHandle("engine2.dll");

// сам баннихоп
if (bunnyhop){
    LocalPlayer = *(uintptr_t*)(client + dwLocalPlayerPawn);// крашится на этом моменте
    // далее код
}
 
Участник
Статус
Оффлайн
Регистрация
30 Авг 2020
Сообщения
777
Реакции[?]
245
Поинты[?]
10K
Шапка, я не понимаю, почему крашится. Писал баннихоп, за помощь благодарен очень буду (оффсеты в норме если что)
C++:
uintptr_t client;
uintptr_t engine;
uintptr_t LocalPlayer;
uintptr_t flags;

// в init
DWORD client = *(DWORD*)GetModuleHandle("client.dll");
DWORD engine = *(DWORD*)GetModuleHandle("engine2.dll");

// сам баннихоп
if (bunnyhop){
    LocalPlayer = *(uintptr_t*)(client + dwLocalPlayerPawn);// крашится на этом моменте
    // далее код
}
/del хуйню написал
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
26 Авг 2023
Сообщения
6
Реакции[?]
2
Поинты[?]
2K
Шапка, я не понимаю, почему крашится. Писал баннихоп, за помощь благодарен очень буду (оффсеты в норме если что)
C++:
uintptr_t client;
uintptr_t engine;
uintptr_t LocalPlayer;
uintptr_t flags;

// в init
DWORD client = *(DWORD*)GetModuleHandle("client.dll");
DWORD engine = *(DWORD*)GetModuleHandle("engine2.dll");

// сам баннихоп
if (bunnyhop){
    LocalPlayer = *(uintptr_t*)(client + dwLocalPlayerPawn);// крашится на этом моменте
    // далее код
}
Во время дебага же пишется причины некорректного завершения программы.
Вероятнее всего, краш из-за ошибки доступа чтения по твоему адресу, т.к он выходит за пределы твоей программы.
C++:
DWORD client = *(DWORD*)GetModuleHandle("client.dll");
DWORD engine = *(DWORD*)GetModuleHandle("engine2.dll");
Нахуя это? Зачем ты получаешь значения, хранящиеся по адресу client.dll и engine2.dll соответственно?
Выучи что такое указатели.

Своё заменяешь на это
C++:
DWORD64 client = (DWORD64)GetModuleHandle("client.dll");
DWORD64 engine = (DWORD64)GetModuleHandle("engine2.dll");

C++:
uintptr_t LocalPlayer = *(uintptr_t*)(client + dwLocalPlayerPawn);
Почему uintptr_t ?!
1697740334614.png
скорее всего потому что ты локалплеер инициализируешь в меню, сделай проверку в игре ли ты и жив ли ты
Да на это похуй
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
14
Реакции[?]
2
Поинты[?]
2K
Во время дебага же пишется причины некорректного завершения программы.
Вероятнее всего, краш из-за ошибки доступа чтения по твоему адресу, т.к он выходит за пределы твоей программы.
C++:
DWORD client = *(DWORD*)GetModuleHandle("client.dll");
DWORD engine = *(DWORD*)GetModuleHandle("engine2.dll");
Нахуя это? Зачем ты получаешь значения, хранящиеся по адресу client.dll и engine2.dll соответственно?
Выучи что такое указатели.

Своё заменяешь на это
C++:
DWORD64 client = (DWORD64)GetModuleHandle("client.dll");
DWORD64 engine = (DWORD64)GetModuleHandle("engine2.dll");

C++:
uintptr_t LocalPlayer = *(uintptr_t*)(client + dwLocalPlayerPawn);
Почему uintptr_t ?!
Посмотреть вложение 261921

Да на это похуй
А, это я понял, спасибо, но почему-то баннихоп не работает
C++:
// прописываю в самом меню
DWORD64 gameModule = (DWORD64)GetModuleHandle("client.dll");
DWORD64 engineModule = (DWORD64)GetModuleHandle("engine2.dll");

if (bunnyhop) {
    DWORD64 localplayer = (DWORD64)(gameModule + dwLocalPlayerPawn);
    if (!localplayer) {
        int flags = *(int*)(localplayer + m_fFlags); // с m_iFlags не работает
        if (GetAsyncKeyState(VK_SPACE) && flags & (1 << 0)) {
            *(int*)(gameModule + dwForceJump) = 65537; // даже с 6 не работает
        }
    }
}
 
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,595
Реакции[?]
603
Поинты[?]
44K
возможно потому что в uintptr_t можно превратить любой валидный void*?
Своё заменяешь на это
C++:
DWORD64 client = (DWORD64)GetModuleHandle("client.dll");
DWORD64 engine = (DWORD64)GetModuleHandle("engine2
остановите меня я щас опять два точка один начну нарушать
 
Начинающий
Статус
Оффлайн
Регистрация
26 Авг 2023
Сообщения
6
Реакции[?]
2
Поинты[?]
2K
Участник
Статус
Оффлайн
Регистрация
15 Янв 2021
Сообщения
492
Реакции[?]
289
Поинты[?]
79K
x64 uintptr_t size -> 8 будет если что..
А, это я понял, спасибо, но почему-то баннихоп не работает
C++:
// прописываю в самом меню
DWORD64 gameModule = (DWORD64)GetModuleHandle("client.dll");
DWORD64 engineModule = (DWORD64)GetModuleHandle("engine2.dll");

if (bunnyhop) {
    DWORD64 localplayer = (DWORD64)(gameModule + dwLocalPlayerPawn);
    if (!localplayer) {
        int flags = *(int*)(localplayer + m_fFlags); // с m_iFlags не работает
        if (GetAsyncKeyState(VK_SPACE) && flags & (1 << 0)) {
            *(int*)(gameModule + dwForceJump) = 65537; // даже с 6 не работает
        }
    }
}
Почему у тебя if(!localplayer) ? Тебе нужен валидный игрок
 
Сверху Снизу