-
Постов
76 -
Зарегистрирован
-
Посещение
-
Победитель дней
9
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные KRYPTOPUNK
-
-
Рабочая версия трейнера, включающая в себя функционал:
Управление параметрами камеры,
Управление параметрами персонажа,
Накрутка денег.Использование:
Войти в игру, (где будет сам геймплей), инжектнуть длл, включить чит, отметить галочку "Write in field's", играть.
ВНИМАНИЕ! Не запускайте чит до того, как зайдете в игру, иначе получите краш.
Так же для корректной работы после смены уровня (после прохождения телепорта) нужно выключить и включить чит обратно.
Для того, чтобы ввести значение, не указанное в границах поля, нужно нажать CTRL+клик по значению, которое хотите ввести.
(Осторожно, может привести к вылету)
Не тестировалось в мультиплеере и в стим версии. Актуально на репаке от хатаба.Спасибо за внимание и приятной игры!
screenshot:Спойлерdownload link:
Спойлер
for english speaking users:СпойлерWorking version of the trainer, which includes the following functionality:
Managing camera parameters,
The control parameters of the character,
Cheat money.Usage:
Enter the game (where the gameplay itself will be), inject the DLL, turn on the cheat, play.
ATTENTION! Do not run the cheat before you enter the game, otherwise you will get a crash.
Also to work correctly after the change of the level (after passing through the teleport) you need to disable and enable cheat back.
To enter a value that is not specified in the field borders, press CTRL+click on the value you want to enter.
(Caution, may cause the game to crash)
It was not tested in multiplayer or in the steam version. Relevant on Repack from hatab.Thank you for your attention and have a nice game!
((администрация, дайте возможность на сайт файлы заливать, ну пожаааалуйста :з))
- 1
- 2
-
Тебе же сказали, учи ЯП, и не пинай труп.
-
Здравствуйте, дорогие друзья, пользователи сего замечательного форума. Возникла такая нестандартная проблема, к решению которой я был не готов.
Суть вот в чем: мы имеем стандартные для всех игр значения поворота камеры по X и Y, как и всегда.
Я делаю аимбот для простенькой игры на Unity под названием BlockPost.
С поворотом по Y проблем никаких нет, все работает хорошо, значения для поворота находятся в диапазоне [-90:90]
Самое интересное начинается с поворотом по X
Дело в том, что данная игра для поворота использует два диапазона -> [-360:0] и [0:360]. То есть, если мы ведем мышку влево, то заполняется диапазон от 0 до - 360, если же мы поведем мышку вправо, то значение будет возрастать от того, где мы остановились, допустим, от -150 до 0 и продолжит возрастать до 360, а если же зайти за нижнюю планку (за -360), то значение будет равно -1.
Проблема такова, что для вычисления угла я использовал функцию c++ atan2() дает угол в радианах [-Pi:Pi] -- что в данном случае не подходит.
Так же я знаю, что для игры значения поворота по X -[число] и [число] идентичны ( то есть, отрицательное число или положительное не важно, камера при обоих значениях будет смотреть в одном направлении)
Прошу вас помочь в столь нелегкой ситуации, заранее благодарен.
Код функции прилагаю:Спойлерvoid AimAt(float& rx,float&ry,Vector3* mypos,Vector3* targetpos) { Vector3 deltaVec = { mypos->x - targetpos->x,mypos->y - targetpos->y,mypos->z - targetpos->z }; float deltaVecLenght = sqrt(deltaVec.x * deltaVec.x + deltaVec.y * deltaVec.y + deltaVec.z * deltaVec.z); float pitch = -asin(deltaVec.z / deltaVecLenght) * (180 / PI); float yaw = atan2(deltaVec.y,deltaVec.x) * (180 / PI); ry = pitch; rx = yaw; }
-
3 часа назад, Undert4ker сказал:
Антихак находиться во временном пространстве памяти
Не совсем понимаю, что значит временное пространство памяти.
А так, реверсишь антихак, ищешь эту функцию, выясняешь соглашение о вызове этой функции и аргументы этой функции, и, собственно, перехватываешь. Как перехватывать есть информация в интернете и на форуме.
Так же, ты можешь проследить, откуда эта функция вызывается, и если для этой функции есть обертка, то можешь перехватывать обертку, это на твоё усмотрение. Можешь кстати сказать название игры, может гляну на досуге.- 1
-
Ну так ты этого не сделаешь без хука самой функции все равно, намного проще сделать как я сказал, передавать в функцию аргументы нужные тебе, если и правда так античит работает.
-
Ну так занопь функцию, я не знаю, или перехвати её со своими аргументами
-
Какой инжектор и какой способ инжекта?
Когда инжектишь, там Unity Crash Handler вылезает? Если да, поменяй способ инжекта, а лучше инжектор. С manual mapping'ом проблем нет.
-
Трейнер для Grim Clicker Steam версия
Скриншот:СпойлерФункционал на скриншоте.
Использование:
СпойлерСкачать
Запустить игру
Запустить трейнер
Наслаждаться игрой
Скачать трейнер:
Спойлер
Спасибо за внимание и приятной игры!
- 2
-
Трейнер для The Walking Zombie 2 Steam Version
Функционал:
СпойлерINSERT -- 1кк серебряных и золотых монет
DELETE -- 10к скилл поинтов и перков
END -- без перезарядки
F1 -- увеличенный урон, скорострельность, обнуление отдачи и разброса, увеличение коэффициента урона, мгновенная перезарядка, много патронов для первого слота оружия
F2 -- увеличенный урон, скорострельность, обнуление отдачи и разброса, увеличение коэффициента урона, мгновенная перезарядка, много патронов для второго слота оружия
F3 -- поменять скин для первого оружия
F4 -- поменять прицел для первого оружия
F5 -- поменять скин для второго оружия
F6 -- поменять прицел для второго оружияИспользование:
СпойлерЗапустить игру
Заинжектить в игру любым инжектором
Радоваться жизниДополнительно:
Исходный код на гитхабе для тех, кто захочет поковыряться и/или что-то исправить и подогнать под себя:
Так же файл проекта для ReClass.NET
СпойлерСобственно, сам чит:
Спойлер
Спасибо за внимание, удачной игры!- 2
-
Я не до конца понимаю, какие именно тебе инструкции нужны. Если ассамблерные, то я в них слишком слаб, а если C++ и так далее, то это обычный синтаксис языка, типа arr[x][y]. Ничего сложного не вижу в этом.
-
За луа не скажу, а на плюсах ты в идеале должен найти "координаты камеры", потом найти "координаты головы противника", вычислить дистанцию и вычесть из "координат камеры" эту самую дистанцию. Как-то так.
-
Смотря как ты хочешь сделать, через трейнер на C++ или как?
-
В 02.02.2020 в 14:25, CrazyNeron сказал:
Как его искать?
Пожалуйста, изучай.
А вообще, я не понимаю, зачем тебе именно прожимать банку, если ты можешь сделать условие и просто ставить или складывать значение в памяти? Зачем усложнять? -
Трейнер для игры Domina:Насилие и Жадность (v1.1.32a)
Скриншот:
СпойлерФункционал:
+ Все ресурсы бесконечные
+ Бесконечные тайны Магистрата и Легата
+ Все постройки (кроме тех, которые на каждого гладиатора)Спойлер(Замечу, что ресурсы бесконечные не по тому, что они не тратятся, а потому, что каждую секунду трейнер ставит их значение на 9999, то есть, вы можете играть с трейнером постоянно, или дождаться сохранения и перезапустить игру)
Применение:
1. Запустить игру
2. Начать новую бесконечную игру или карьеру
3. Запустить трейнер
4. Профит.
Ссылка на загрузку:
Спойлерhttps://yadi.sk/d/z-crT9v92S5vIg
Пароль на архиве: gamehacklab.ru- 2
-
Трейнер для игры Mount&Blade:Warband (Native) v1.168
Скриншот:
Спойлер
Функционал:Спойлер1.INSERT - поставить значение денег на 999999
2.NUMPAD 0 - поставить значение атрибутов на 999
3.NUMPAD 1 - поставить значение навыков на 999
4.NUMPAD 2 - поставить значение очков распределения на 999Способ применения:
Спойлер1. Запустить игру
2.Открыть сохранение и выйти на глобальную карту
3.Запустить трейнер
4.Нажать необходимые кнопки5.Радоваться жизни
Ссылка для скачивания:
СпойлерПароль на архиве:gamehacklab.ru
- 2
-
В общем, написал очень простенький трейнер для игры Mount&Blade:Warband, который меняет лишь одно значение по нажатию клавиши.
Всё работало замечательно, но пока я делал визуальное оформление, что-то пошло не так. В один из моментов программа перестала читать значение, точнее, попадало не на тот адрес, ID процесса достает верно, но, базовый адрес процесса скорее всего получает не верно, хотя я в этом уверен не до конца.
функция нахождения базового адреса:
Спойлерuintptr_t GetModuleBaseAddress(DWORD procId, const wchar_t* modName) { uintptr_t modBaseAddr = 0; HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, procId); if (hSnap != INVALID_HANDLE_VALUE) { MODULEENTRY32 modEntry; modEntry.dwSize = sizeof(modEntry); if (Module32First(hSnap, &modEntry)) { do { if (!_wcsicmp(modEntry.szModule, modName)) { modBaseAddr = (uintptr_t)modEntry.modBaseAddr; break; } } while (Module32Next(hSnap, &modEntry)); } } CloseHandle(hSnap); return modBaseAddr; }
через std::cout узнал, что эта функция выдает один и тот же адрес, что, в принципе, и должно быть, но почему-то он не подходит. В процессе отладки этой программы сам Mount&Blade я перезапускал несколько раз, и вот, в один из этих моментов всё перестало работать. Почему, не приложу ума. Замечу, что в CE эти указатели и смещения до сих пор актуальны и работают.
основной код:Спойлерint main() { DWORD procId = GetProcID(L"mb_warband.exe"); // достаем ид процесса std::cout << procId << std::endl; if (procId == NULL) { // обработка отсутствия процесса std::cout << "ERROR(-1): GAME NOT RUNNING"; Sleep(3000); exit(-1); } uintptr_t moduleBase = GetModuleBaseAddress(procId, L"mb_warband.exe"); // достаем адрес базового модуля std::cout << moduleBase << std::endl; HANDLE hProcess = 0; // инициализируем хендл uintptr_t dynamicPtrBaseAddr = moduleBase + 0x004B2F38; // считаем динамический адрес модуля std::cout << "DynamicPtrBaseAddr = " << "0x" << std::hex << dynamicPtrBaseAddr << std::endl; // выводим адрес на экран std::vector<unsigned int> moneyOffsets = { 0x140F0, 0x05D0 }; // создаем вектор со смещениями uintptr_t moneyAddr = FIndDMAAddy(hProcess, dynamicPtrBaseAddr, moneyOffsets);// ищем динамический адрес std::cout << "MoneyAddr = " << "0x" << std::hex << moneyAddr << std::endl;// выводим адрес и значение //std::cout << "Current Money = " << std::dec << moneyValue << std::endl;// выводим это значение на экран int newMoneyValue = 800;// переменная для нового значения int moneyValue = 0;// инициализируем переменную для значения денег std::cout << "Current Money = " << std::dec << moneyValue << std::endl;// выводим это значение на экран ReadProcessMemory(hProcess, (BYTE*)moneyAddr, &moneyValue, sizeof(moneyValue), nullptr);// читаем из адреса процесса значение и записываем в переменную //std::cout << "Please, set value of money you want:" << std::endl; // просим ввести значение //std::cin >> newMoneyValue; // пользователь вводит значение WriteProcessMemory(hProcess, (BYTE*)moneyAddr, &newMoneyValue, sizeof(newMoneyValue), nullptr);// пишем новое значение ReadProcessMemory(hProcess, (BYTE*)moneyAddr, &moneyValue, sizeof(moneyValue), nullptr);// читаем новое значение std::cout << "New Money = " << std::dec << moneyValue << std::endl;// выводим новое значение на экран getchar(); // return 0; }
Объясните, пожалуйста, в чем может быть дело, это мой первый экспириенс. Заранее благодарю.
Risk Of Rain 2
in Для PC игр
Опубликовано
Risk Of Rain 2
Просмотр файлаТрейнер для Risk Of Rain 2.
Использование:
Открыть игру, начать игру, инжектнуть DLL, отметить флажок In Game, менять что душе угодно. При выключенном флажке "Write in field's" будет читать из игры, при включенном - писать в неё.
Функционал:
Управление параметрами камеры
Управление параметрами персонажа
Убийство курсором ( на боссах лучше не использовать, портал застревает на 99%)
Взлом денег.
ВНИМАНИЕ! Не запускайте чит до того, как зайдете в игру, иначе получите краш.
Так же для корректной работы после смены уровня (после прохождения телепорта) нужно выключить и включить чит обратно.
Для того, чтобы ввести значение, не указанное в границах поля, нужно нажать CTRL+клик по значению, которое хотите ввести.
(Осторожно, может привести к вылету)
Переключение между вкладками чита SHIFT+TAB
Не тестировалось в мультиплеере и в стим версии. Актуально на репаке от хатаба.
Спасибо за внимание и приятной игры!