Перейти к содержанию

KRYPTOPUNK

Разработчики
  • Постов

    76
  • Зарегистрирован

  • Посещение

  • Победитель дней

    9

Сообщения, опубликованные KRYPTOPUNK

  1. Risk Of Rain 2

    Просмотр файла

    Трейнер для Risk Of Rain 2.
    Использование:
    Открыть игру, начать игру, инжектнуть DLL, отметить флажок In Game, менять что душе угодно. При выключенном флажке "Write in field's" будет читать из игры, при включенном - писать в неё.
    Функционал:
    Управление параметрами камеры
    Управление параметрами персонажа
    Убийство курсором ( на боссах лучше не использовать, портал застревает на 99%)
    Взлом денег.

     

    ВНИМАНИЕ! Не запускайте чит до того, как зайдете в игру, иначе получите краш.
    Так же для корректной работы после смены уровня (после прохождения телепорта) нужно выключить и включить чит обратно. 
    Для того, чтобы ввести значение, не указанное в границах поля, нужно нажать CTRL+клик по значению, которое хотите ввести.

    (Осторожно, может привести к вылету)
    Переключение между вкладками чита SHIFT+TAB


    Не тестировалось в мультиплеере и в стим версии. Актуально на репаке от хатаба.

    Спасибо за внимание и приятной игры!


     

    • Плюс 4
  2. Рабочая версия трейнера, включающая в себя функционал:
    Управление параметрами камеры,
    Управление параметрами персонажа,
    Накрутка денег.

    Использование:
    Войти в игру, (где будет сам геймплей), инжектнуть длл, включить чит, отметить галочку "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
  3. Здравствуйте, дорогие друзья, пользователи сего замечательного форума. Возникла такая нестандартная проблема, к решению которой я был не готов.
    Суть вот в чем: мы имеем стандартные для всех игр значения поворота камеры по 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;
    }

     

     

  4. 3 часа назад, Undert4ker сказал:

    Антихак находиться во временном пространстве памяти 

    Не совсем понимаю, что значит временное пространство памяти. 

     

    А так, реверсишь антихак, ищешь эту функцию, выясняешь соглашение о вызове этой функции и аргументы этой функции, и, собственно, перехватываешь. Как перехватывать есть информация в интернете и на форуме. 
    Так же, ты можешь проследить, откуда эта функция вызывается, и если для этой функции есть обертка, то можешь перехватывать обертку, это на твоё усмотрение. Можешь кстати сказать название игры, может гляну на досуге. 

    • Понравилось 1
  5. Ну так ты этого не сделаешь без хука самой функции все равно, намного проще сделать как я сказал, передавать в функцию аргументы нужные тебе, если и правда так античит работает.

  6. Трейнер для Grim Clicker Steam версия
    Скриншот:

    Спойлер

    Функционал на скриншоте.

    Использование:

    Спойлер

    Скачать

    Запустить игру

    Запустить трейнер

    Наслаждаться игрой

    Скачать трейнер:


     

    Спасибо за внимание и приятной игры!

     

    • Плюс 2
  7. Трейнер для The Walking Zombie 2 Steam Version 
    Функционал:
     

    Спойлер

    INSERT -- 1кк серебряных и золотых монет
    DELETE -- 10к скилл поинтов и перков
    END -- без перезарядки
     

    F1 -- увеличенный урон, скорострельность,  обнуление отдачи и разброса, увеличение коэффициента урона, мгновенная перезарядка, много патронов для первого слота оружия
    F2 -- увеличенный урон, скорострельность,  обнуление отдачи и разброса, увеличение коэффициента урона, мгновенная перезарядка, много патронов для второго слота оружия

    F3 -- поменять скин для первого оружия
    F4 -- поменять прицел для первого оружия

    F5 -- поменять скин для второго оружия
    F6 -- поменять прицел для второго оружия

    Использование:

    Спойлер

    Запустить игру
    Заинжектить в игру любым инжектором
    Радоваться жизни

    Дополнительно:
    Исходный код на гитхабе для тех, кто захочет поковыряться и/или что-то исправить и подогнать под себя:
     

    Так же файл проекта для ReClass.NET
     

    Собственно, сам чит:
     


    Спасибо за внимание, удачной игры!

    • Плюс 2
  8. Я не до конца понимаю, какие именно тебе инструкции нужны. Если ассамблерные, то я в них слишком слаб, а если C++ и так далее, то это обычный синтаксис языка, типа arr[x][y]. Ничего сложного не вижу в этом. 

  9. За луа не скажу, а на плюсах ты в идеале должен найти "координаты камеры", потом найти "координаты головы противника", вычислить дистанцию и вычесть из "координат камеры" эту самую дистанцию. Как-то так. 

     

  10. В 02.02.2020 в 14:25, CrazyNeron сказал:

    Как его искать?

    Пожалуйста, изучай.

    А вообще, я не понимаю, зачем тебе именно прожимать банку, если ты можешь сделать условие и  просто ставить или складывать значение в памяти? Зачем усложнять?  

  11. Трейнер для игры Domina:Насилие и Жадность (v1.1.32a)

    Скриншот:
     

    Спойлер

    Функционал:
     + Все ресурсы бесконечные
     + Бесконечные тайны Магистрата и Легата
     + Все постройки (кроме тех, которые на каждого гладиатора) 

    Спойлер

    (Замечу, что ресурсы бесконечные не по тому, что они не тратятся, а потому, что каждую секунду трейнер ставит их значение на 9999, то есть, вы можете играть с трейнером постоянно, или дождаться сохранения и перезапустить игру)

    Применение:
    1. Запустить игру
    2. Начать новую бесконечную игру или карьеру
    3. Запустить трейнер
    4. Профит.
    Ссылка на загрузку:
     

    Спойлер

    https://yadi.sk/d/z-crT9v92S5vIg
    Пароль на архиве: gamehacklab.ru

     

    • Плюс 2
  12. Трейнер для игры 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
  13. В общем, написал очень простенький трейнер для игры 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;
    }

     

    Объясните, пожалуйста, в чем может быть дело, это мой первый экспириенс. Заранее благодарю. 

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.