мы пишем строчку кодаА что мы по по-твоему делаем
но не рыскаем оп памяти :)
мы пишем строчку кодаА что мы по по-твоему делаем
Да, тоже таким пользуюсь, когда хочется просто по легиту расслабитьсяДа, только шанс отлететь не нулевой, ради бхопа не вижу смысла суетиться т.к многие умеют руками бхопить. У меня есть такой софтик с триггером, аимом, радаром тоже на C++ год андетектед держится
Чо ты приебался боже мой, тебе делать нечего?мы пишем строчку кода
но не рыскаем оп памяти :)
External софтик?Да, только шанс отлететь не нулевой, ради бхопа не вижу смысла суетиться т.к многие умеют руками бхопить. У меня есть такой софтик с триггером, аимом, радаром тоже на C++ год андетектед держится
Да))External софтик?
можешь скинуть пж?)
как нажатие пробела в воздухе может стопить разъясни каЗдесь проверка на флаги, прыжок работает только при условии что человек на земле. А ахк в тупую спамит прыжок, что может способствовать потерям скорости.
Когда посмотришь на код ахк - поймешь.как нажатие пробела в воздухе может стопить разъясни ка
P. S: Адаптированный перевод с guidedhacking.com
UPD:Пожалуйста, авторизуйтесь для просмотра ссылки.
В этой теме мы научимся делать простой external баннихоп для ксго
Что нужно:
Базовое понимание геймхакинга(как работает память, как игра располагается в памяти)
Базовое понимание C++
IDE: Visual Studio (2017-2019)
1. Создаём проект
Создаём проект с шаблоном "Консольное приложение"
2.Переходим в свойства проекта(правой кнопкой мышки по проекту -> свойства), если у вас Visual Studio 2017 версии, то заходим в: "Свойства конфигурации -> Общие" находим пункт набор символов, у вас по умолчанию должно стоять значение: "Использовать набор символов Юникода", меняем его на: "Использовать многобайтовую кодировку", нажимаем Применить. Если у вас Visual Studio версии 2019 -> Переходим в "Свойства конфигурации -> Дополнительно"
3. Удаляем ненужное(по желанию):
Удаляем папки: Файлы заголовков, Файлы ресурсов
Оставляем папку: Исходные файлы
Т.К. наш проект маленький, нет смысла создавать отдельные папки для заголовочных файлов и т.д.
4. Подключаем файлы к проекту, содержащие класс для работы с памятью
Т. к. Мы хлебушки, класс мы будем использовать уже заранее сделанный, скачать вы его можете внизу, в прикреплённых файлах
Скачиваем, распаковываем архив в любую папку(для удобства - в папку с вашим созданным проектом), в папке будут два файла - MemMan.cpp, MemMan.h
Файл MemMan.cpp мы должны напрямую поместить в наш проект(просто перетащите его в окно справа, в папку "Исходные файлы"), переходим в главный файл нашего проекта(он имеет название, которые вы дали вашему проекту, например: если вы назвали проект: "BHOP", то главный файл будет называться: "BHOP.cpp")
5.Все эти библиотеки нужны нам для корректной работы с памятью игрыC++:#include <iostream> #include <Windows.h> #include <ВАШ ПУТЬ ДО ФАЙЛА MemMan.h>
C++:MemMan memory;
Важно! С любым обновлением ксго тот или иной оффсет может поменяться, поэтому лучше всегда тщательно проверять правильность оффсетов, иначе ничего попросту не будет работать, т.к мы не правильно обращаемся к памятиC++:struct gameOffsets { DWORD oLocalPlayer = 0xD2FB94; DWORD fJump = 0x51ED760; DWORD flags = 0x104; }offsets; struct values { DWORD localPlayer; DWORD gameModule; DWORD process; BYTE flag; }val;
Это всё, отпишите в теме, если я что-то сделал неправильно, или у вас есть какие-то проблемыC++:int main() { val.process = memory.getProcess("csgo.exe"); //Находим процесс с названием csgo.exe val.gameModule = memory.getModule(val.process, "client_panorama.dll"); //Находим модуль с названием client_panorama.dll if(val.localPlayer == NULL) //Делаем проверку c циклом на то, есть ли у нас localPlayer, когда мы находимся в меню -> у нас нет localPlayer'а, следовательно, если не сделать цикл, то localPlayer один раз не найдётся, и дальше не будет искаться, даже если мы зайдём на карту while(val.localPlayer == NULL) val.localPlayer = memory.readMem<DWORD>(val.gameModule + offsets.oLocalPlayer); //Пытаемся найти localPlayer while (true) { val.flag = memory.readMem<BYTE>(val.localPlayer + offsets.flags); //Находим флаги нашего локального игрока(Находиться на земле, в воздухе, в воде и т.д) if (GetAsyncKeyState(VK_SPACE) && val.flag & (1 << 0)) //Делаем проверку на клавишу и на флаг(если нажат спейс, и наш локал плеер по флагу находится на земле) memory.writeMem<DWORD>(val.gameModule + offsets.fJump, 6); //Заставляем локалплеера прыгать, если проверка в верху пройдена Sleep(1); } return 0; }
ошибок в коде нет, тебе нужно всё настроить как и сказано в туториале, всё от шага до шагаВыдаёт 4 ошибки, делал всё как в туториале
1 - Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка (активно) E0167 аргумент типа "WCHAR *" несовместим с параметром типа "const char *" BionicALPHA C:\Users\warko\MemMan.cpp 24
2 - Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка (активно) E0167 аргумент типа "WCHAR *" несовместим с параметром типа "const char *" BionicALPHA C:\Users\warko\MemMan.cpp 43
3 - Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2664 "int strcmp(const char *,const char *)": невозможно преобразовать аргумент 1 из "WCHAR [260]" в "const char *" BionicALPHA C:\Users\warko\MemMan.cpp 24
4 - Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2664 "int strcmp(const char *,const char *)": невозможно преобразовать аргумент 1 из "WCHAR [256]" в "const char *" BionicALPHA C:\Users\warko\MemMan.cpp 43
Как быть? :(
#include <iostream>
#include <Windows.h>
#include <C:\Users\PC\source\repos\RichBhop\mem class\MemMan.h>
MemMan memory;
struct gameOffsets
{
DWORD oLocalPlayer = 0xD3BC5C;
DWORD fJump = 0x51F9E44;
DWORD flags = 0x104;
}offsets;
struct values
{
DWORD localPlayer;
DWORD gameModule;
DWORD process;
BYTE flag;
}val;
int main()
{
val.process = memory.getProcess("csgo.exe"); //Находим процесс с названием csgo.exe
val.gameModule = memory.getModule(val.process, "client_panorama.dll"); //Находим модуль с названием client_panorama.dll
if (val.localPlayer == NULL) //Делаем проверку c циклом на то, есть ли у нас localPlayer, когда мы находимся в меню -> у нас нет localPlayer'а, следовательно, если не сделать цикл, то localPlayer один раз не найдётся, и дальше не будет искаться, даже если мы зайдём на карту
while (val.localPlayer == NULL)
val.localPlayer = memory.readMem<DWORD>(val.gameModule + offsets.oLocalPlayer); //Пытаемся найти localPlayer
while (true)
{
val.flag = memory.readMem<BYTE>(val.localPlayer + offsets.flags); //Находим флаги нашего локального игрока(Находиться на земле, в воздухе, в воде и т.д)
if (GetAsyncKeyState(VK_SPACE) && val.flag & (1 << 0)) //Делаем проверку на клавишу и на флаг(если нажат спейс, и наш локал плеер по флагу находится на земле)
memory.writeMem<DWORD>(val.gameModule + offsets.fJump, 6); //Заставляем локалплеера прыгать, если проверка в верху пройдена
Sleep(1);
}
return 0;
}
ну да, экстерналэкстернал
Обнови оффсеты, и да, теперь client_panorama.dll называется просто client.dllНе прыгает, брат!
Код:#include <iostream> #include <Windows.h> #include <C:\Users\PC\source\repos\RichBhop\mem class\MemMan.h> MemMan memory; struct gameOffsets { DWORD oLocalPlayer = 0xD3BC5C; DWORD fJump = 0x51F9E44; DWORD flags = 0x104; }offsets; struct values { DWORD localPlayer; DWORD gameModule; DWORD process; BYTE flag; }val; int main() { val.process = memory.getProcess("csgo.exe"); //Находим процесс с названием csgo.exe val.gameModule = memory.getModule(val.process, "client_panorama.dll"); //Находим модуль с названием client_panorama.dll if (val.localPlayer == NULL) //Делаем проверку c циклом на то, есть ли у нас localPlayer, когда мы находимся в меню -> у нас нет localPlayer'а, следовательно, если не сделать цикл, то localPlayer один раз не найдётся, и дальше не будет искаться, даже если мы зайдём на карту while (val.localPlayer == NULL) val.localPlayer = memory.readMem<DWORD>(val.gameModule + offsets.oLocalPlayer); //Пытаемся найти localPlayer while (true) { val.flag = memory.readMem<BYTE>(val.localPlayer + offsets.flags); //Находим флаги нашего локального игрока(Находиться на земле, в воздухе, в воде и т.д) if (GetAsyncKeyState(VK_SPACE) && val.flag & (1 << 0)) //Делаем проверку на клавишу и на флаг(если нажат спейс, и наш локал плеер по флагу находится на земле) memory.writeMem<DWORD>(val.gameModule + offsets.fJump, 6); //Заставляем локалплеера прыгать, если проверка в верху пройдена Sleep(1); } return 0; }
сяпкиНорм гайд
У 2019 новые стандарты.Вылезают ошибки LNK2019
Где я накосячил...?
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz