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

Лидеры

  1. MasterGH

    MasterGH

    Ветераны


    • Баллы

      4

    • Постов

      2 999


  2. JustHack

    JustHack

    Разработчики


    • Баллы

      2

    • Постов

      342


  3. LIRW

    LIRW

    Ветераны


    • Баллы

      2

    • Постов

      4 514


  4. GameHacker

    GameHacker

    Пользователи


    • Баллы

      0

    • Постов

      25


Популярный контент

Показан контент с высокой репутацией 12.03.2018 во всех областях

  1. 1. Персонаж падает с большой высоты и разбивается Ищем адрес скорости прыжка прыгая под speedhack. Находим эту скорость. Ставим бряк на доступ. Прыгаем. Инструкции на чтение добавляем в список адресов и там начинаем нопить - Либо по одной - Либо рискнем по половине от половины - Либо рискнем и все сразу занопим Если повезет, а должно повезти, то инструкция не прочитает то значение скорости, которое уложило бы персонажа на землю и можно будет прыгать на огромную высоту. 2. Как делать супер прыжок Ищем под speedhack скорость float (назовем её velocityZ, Z - вертикальная ось) по вертикальной оси прыгая персонажем. Когда прыгаем. то скорость в один момент увеличивается. Затем, скорость постоянно уменьшается от положительного до отрицательного значения. Когда на земле, то скорость быстро записывается и равна нулю. Дальше смотрим что это рабочий адрес. Прыгаем и замораживаем значение. Если адрес рабочий, то персонаж зависает в воздухе или движется. Дальше ставим бряк на запись на этот адрес и снимаем speedhack Прыгнули и увидели инструкции. Например одна из них будет movss [rdi+0000010C],xmm0 и работает каждый раз при прыжке по одному разу за прыжок (прыгнули — сработала, прыгнули — сработала). Вот в неё и легко сделать инъекцию с рядом стоящими адресами с умножением на scale величину. Все и персонаж будет с суперпрыжком. Чтобы он не разбивался при прыжке смотрим пункт1 Еще один вариант — не писать инъекцию кода, а искать адрес силы прыжка в структуре. Это можно сделать меняя значения в структуре где-то рядом с [rdi+0000010C] и смотреть что происходит в игре. Можно найти, а можно и не найти, и возможно этот процесс будет долгий. Еще можно в пошаговой отладке пройтись, посмотреть стек, протресить и попробовать найти адрес в структуре (при чем структура не обязательно будет с адресом в rdi) без рандомного поиска в структуре. Но у последнего есть свои плюсы, можно найти разные параметры движения игрока и увидеть изменения в игре. 3. Менять данные в структурах или менять код? В примере выше пришлось создать два новых поля scaleXY: dd (float)4 scaleZ: dd (float)4 И умножать их на скорости X,Y,Z персонажа. С одной стороны больше кода писать и добавлять новые поля, а с другой стороны выделить время и найти подход к поиску значения стартовой скорости в структуре. Можно в структуре ничего не искать, а написать скрипт выше и это может быть быстрее чем искать в структуре. С другой стороны если в структуре рандомно ставить параметры в течении времени X на 4К байт, то можно найти: адрес скорости, адрес гравитации, адрес чувствительности и много чего еще. И еще одно ограничение. Расструктуризация не всегда правильная. Упорно вместо float может видеть 4 байта. Это в лучшем случае, в худшем разные смешения смержены и выводятся разные типы данных. В общем исследование игровой структуры эта тема интересная. Можно сказать это поиск свойств, по которым будет меняется поведения персонажа в игре. Структуру желательно обследовать какой оффест, что делает и какого он типа (через брейкпоинт). Это всего 4К байт проанализировать. Каждое смещение подписать и сохранить. Сделав это вы скажите себе я исследовал всю структуру и знаю, что делает смещение. Lua может помочь автоматизировать анализ структур и пока я думаю об этом. Данные структур могут сильно повлиять на поведение персонажа, на прохождение потоком отладочных инструкций игры по разным условиям — выполнять и не выполнять ответвления кода с разными условиям. В общем есть над чем подумать. Всегда было приоритетным менять код, но теперь стал задумываться о том чтобы больше смотреть в сторону правки данных структур. Фактически код мы не правим, а меняем данные и код работает уже с другими данными.
    3 балла
  2. Metro 2033 Redux Просмотр файла Использование: Запускаем сначала игру, а в главном меню игры (либо в уже начатой) запускаем трейнер Функции: Бесконечная жизнь Бесконечный противогаз Без отдачи оружия Точность оружия Супер прыжок Бесконечные патроны Бесконечный фонарь Бесконечные гранаты Бесконечные мины Бесконечная энергия прибора ночного видения Бесконечные стрелы Без перегрева оружия Убийство с одного выстрела Бесконечные деньги Бесконечный воздух для оружия Возможность играть без противогаза. Одели, сняли и играете Бесконечный фильтр Скорострельность оружия Бесконечные аптечки Бесконечная энергия для электро-оружия Добавил LIRW Добавлено 10/09/17 Категория Трейнеры для PC игр  
    1 балл
  3. Наконец-то дошли руки до третий части. Речь пойдет о создании структур программно. Пример, что будет в конце записи Сразу к делу. Нужен поинтер и процесс. Запустим туториал из Cheat Engine из меню Health->Cheat Engine Tutorial. Прохождение туториала подробно описано здесь Подключаемся к процессу идем на 8-мой шаг. В руководстве есть поинтер [[[["Tutorial-i386.exe"+XXXXXX]+C]+14]+0]+18 Вместо XXXXXX может быть любое смещение. Поэтому надо бы поискать Нашил адрес. Поставили бряк. Нашли esi Поставили бряк Вышли сюда Поинтер получили, дальше пойдет Lua. Открываем Lua консоль и проверяем поинтер Выведем адрес и его значение Окей. Поинтер верный. Другой вариант читать значение поинтера примерно такой local address = getAddress("game.exe") address = readPointer(address + 0x123) address = readPointer(address + 0x456) local value = readFloat(address + 0x789) Есть и такие варианты value = readInteger("[[[[[[[[[witcher3.exe + 028F3F60] +0] +18] +20] +40] +40] + 1c0] +10] +28]") value = readFloat("[[[[[[[[[witcher3.exe + 028F3F60] +0] +18] +20] +40] +40] + 1c0] +10] +28]") value = readDouble("[[[[[[[[[witcher3.exe + 028F3F60] +0] +18] +20] +40] +40] + 1c0] +10] +28]") Теперь самое интересное — создание структур с помощью Lua Построим структуру [[[[005FD660]+C]+14]+0]+18. На +18 будет наш адрес. Сначала построим один уровень —"005FD660" Если выполнить скрипт выше, то мы построим структуру одного уровня. Построим теперь структуру двух уровней "[005FD660]+C". Второй уровень нужно развернуть Для этого после создания структуры создам дочернюю myStructure2 = createStructure('MyStructure2') myStructure2.autoGuess('[005FD660]', 0, 50) -- И поместим её по индексу local offset = 0 myStructure.getElementByOffset(offset).setChildStruct(myStructure2) -- Чтобы развернуть список поитеров. К сожалению разворачивается только два уровня structureFrm.Menu.Items[1][6].doClick() Итого получается такой скрипт до второго уровня Создадим и развернем весь указатель [[[[005FD660]+C]+14]+0]+18 Не будем делать через цикл, чтобы не усложнять. Полный скрипт Результат Ну и на закуску. Допустим мы знаем что по адресу X будет всегда тип float (как X,Y,Z координаты). Но расструктуризация будет показывать другой тип, дизассемблер будет показывать другой тип — 4 байта. Что делать? И сразу еще допустим double тип всегда хотим как float тип (в виде комментов в дизассемблере или в расструктуризации) Воспользоваться следующей функцией -- Может менять тип адреса x в окне дизассемблере в комментариях, когда в инструкции существует адрес -- Может менять тип адреса в окне расструктуризации -- Изменив тип, будет ображаться значение другого типа onAutoGuess(function) : Registers an function to be called whenever autoguess is used to predict a variable type function override (address, ceguess): Return the variable type you want it to be. If no change, just return ceguess Ну и вот два примера upd: спрятал код под спойлеры
    1 балл
  4. DOOM 2016 Просмотр файла Использование: Скаченный архив распаковываем в любое удобное для вас место. Запускаем игру, запускаем трейнер. Именно игру, а потом трейнер. Функции Трейнера: 1) Бесконечная жизнь. 2) Без отдачи оружия. 3) Улучшенная точность. 4) Супер Прыжок. 5) Бесконечные патроны. 6) Супер скорость. 7) Заморозить таймер. 8) Бесконечные гранаты. 9) Бесконечный двойной прыжок. 10) Бесконечные поинты. 11) Заморозить время (временного уменя) 12) Проход по координатам сквозь стены,закрытые двери и так далее. 13) Скорострельность оружия. PS: Клавиши в трейнере парные до клавиши (O), зажимаем Shift и жмем клавиши указанные на панели трейнера. Работать должно на двух версиях игры. А то есть и на вулкане. Demo: Добавил LIRW Добавлено 04.02.2018 Категория Трейнеры для PC игр
    1 балл
  5. Я просто учил в ютубе а нет ли обучение? с cheat engine (ну asm)
    0 баллов
  6. Видимо он из тех людей , кто учит С++ за час и asm за 10 минут
    0 баллов
×
×
  • Создать...

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

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