На нашем форуме вы можете получить приватный чит для игры Euro Truck Simulator 2. Подробности по ссылке ниже:
Тема с читом на Euro Truck Simulator 2

MasterGH

Администраторы
  • Публикаций

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

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

    108

MasterGH стал победителем дня 27 июля

MasterGH имел наиболее популярный контент!

Репутация

471 Structure hunter

Информация о MasterGH

  • Звание
    Сооснователь

Информация

  • Пол
    Мужчина

Посетители профиля

63 996 просмотров профиля
  1. Нет альтернативы в виде одной команды. Можешь посмотреть интеловский мануал, раздел инструкций обмена данных. Зато есть альтернативы с несколькими инструкциями. Например, использовать третий "свободный регистр" xmm с инструкцией mov-подобного перемещения. Если регистр занят, то можно использовать адрес памяти. Есть интересный вариант с двумя регистрами и тремя инструкциям, когда на CPU поддерживает набор инструкций AVX. vpsubd xmm0, xmm1 vpaddd xmm1, xmm0 vpsubd xmm0, xmm1, xmm0 Также можно через xor подобную инструкцию.
  2. Это понятно. Ты попробуй узнать какие байты, в каком модуле и по каким смещениям менять. Чтобы узнать тебе нужен дизассемблер arm, если там на so файлах. Если там java, то ява декомпилятор и компилятор. Если там mono, то декомпилятор и компилятор .net модулей. Это будет так сложно, что может не быть смысла патчить апк. А вот сейв-вайлы из эмулятора более просто. Так же есть рут хаки на иннапы, для тех кто не сделал защиту против них. localhost На видео пример
  3. Чтобы летел вперед нужно найти адрес координат камеры и адрес кватерниона. Этот кватернион умножаем на нормализованный свой эйлеров угол смотрящий по глобальной оси координат "вперед" (например это 0X-ось), который умножаем на скорость движения и дельту времени между кадрами отрисовки. Скорость движения для W положительная, а для S отрицательная. У игрового объекта есть позиция X,Y,Z и углы кватерниона X,Y,Z,W. К позиции прибавляем нормализованный вектор оси вперед. Возьми например 0,1,0. Этот код на C# на CE Lua переписать с таймером и горячими клавишами. Посмотреть как работает.
  4. Перепатчить апк — это непросто. Если приложение сделано на Unity без il2cpp компиляции и без обфускации, то может еще прокатит. Java (скомпилированный) может еще тоже прокатит через декомпиляцию и компиляцию. А вот жесткие so-шки через IDA можно вечно реверсить. Там нужен подход, который я не знаю. Скорее всего, через эмулятор как-то. Проще найти готовые апк моды или искать другой путь. Через взлом сейв файлов, которые можно сделать через взлом на CE как по этой статье (в первом посте) или через взлом на эмуляторе и CE. Через рут эти файлы перенести.
  5. Как минимум два способа. Простой и сложный 1) Менять координаты по горячим клавишам. Тут даже скрипты писать не надо, если на CE делать. 3 координаты найти. И каждой по 2 поведения в опция выставить. 6 горячих клавиш. Три пары увеличивают и три пары уменьшают. Ничего программировать не нужно через CE. 2) Программировать. Аналогично по горячим клавишам писать полет. Язык программирования любой, который лучше всего знаешь и больше подходит. Есть пример на C#, но без записи в память чужого процесса. Можно этот код изучать и поменять Добавить код открытия процесса и добавить чтение и запись координат. MonoBehavior убрать, а update заменить таймером. Там же пример exe полета в том числе с вариантом движения вперед - по направлению камеры (с координатами углов) p.s. Чтобы сделать надо искать и читать документацию как писать код. Ничего сверх сложного нет. И полеты лучше отрабатывать на игровом движке или взять любой готовый пример directX на C++ и поведение камеры сделать в dll. И её уже использовать.
  6. Пример лога снятия данных с брейкпоинта на структуру 0x1000 за 10 секунд. В структуре по смещению 0x2C0 находится здоровье персонажа. На начало этой структуры и был поставлен брейкпоинт . Ниже будет большой кусок опкодов, который работает со структурой. Можно посмотреть в каком порядке опкоды исполняются и с какими смещениями, насколько далеко они друг от друга. Некоторые смещения рядом с известными смещениями могут заинтересовать. Одинаковые опкоды в определенном порядке, но по разным RIP тоже могут заинтересовать. Switch-case могут заинтересоваь в виде cmp [x]. число. Инструкции чтения из структуры больше интересуют, т.к. они могут более вероятно, на что-то влиять - из них читается и для чего-то это нужно. Причем последовательность инструкций идет в порядке вызова, но RIP всегда уникальный (RIP не дублируются). Здесь RIP, т.к. CE 64 разрядный Если последовательность к данным структуры примерно сохраняется, то можно обратить внимание на обращение к адресам в структуре рядом со здоровьем по смещению 2с0: до обращения к адресу здоровья, во время и после. Я выделил их стрелками. Эти смещения могут быть связаны со здоровьем Интересные моменты могут быть с так называемыми switch-case операциями. Можно пытаться их подменить
  7. Обычно, дается 4 аппаратных брейкпоинта на адреса памяти. Их можно включать одновременно и найти инструкции, которые в данный момент срабатывают. Так можно определить тип данных у адресов и найти инструкции. По инструкциям найти смещения внутри дизассемблированной инструкции. По смещениям визуально определить структуры в структурах. Расструтуризовать структуру в dessect data и найти много интересных параметров для читов. Вручную с 4мя бряками делать очень хлопотно. Начинается все с установки огромного бряка на структуру из туториала CE. Логи По логам видим, что какие-то инструкции обращаются и скорее всего обращаются к нашей той самой структуре. Проверим так ли это и заодно увидим к каким другим структурам идет обращение Видим, что одна из инструкций действительно обращается к нашей структуре и далеко за пределам диапазона 4 брейкпоинтов. Т.е. это действительно огромный такой брейкпоинт на всю структуру. Также видим, что инструкция отработала по другим 4 структурам и это могли быть враги и друзья игрока. Также видим, что тип данных автоматически неверно определился в окна DesectData и мы можем его скорективать - это будет 1 байт Вот так можно проводить ручную расструктуризацию. Кропотливо по байтикам на весь размер структуры выставлять коментарий и правильный тип данных - не все типы данных могут подцепиться и при экспериментах с изменением значений могут быть глюки в игре или даже вылеты. После того как вся структура изучена, можно сделать множество читов, которых нет ни в одном трейнере, если их еще не сделали.
  8. Функции: 1) Три типа данных: float, double, integer 2) 10 слотов сохранений 3) Управление горячими клавишами. ctrl+X - где X от 0 до 9 сохраняет позицию, shift + X загружает ранее сохраненную позицию 4) Озвучивание загрузки или сохранения Как пользоваться: 1. Подключаемся к процессу игры любым способом (хоть вручную, хоть на Lua, чем угодно) 2. В CE вставляем Lua скрипт 3. Меняем адрес teleport_address = "03D2C6DC" на тот который нужно. Здесь может быть указатель например -"[[address+XX]+XX]" или через registersymbol() в АА скриптах. Не тестировалось если адрес еще невалидный, т.е. не существует в памяти. По идее слоты проинициализируются с нулевыми координатами по умолчанию. Поэтому лучше Lua скрипт запускать в момент существования адреса. Проверка на существование адреса - getAddressSafe(string, local OPTIONAL, shallow OPTIONAL): returns the address of a symbol, or nil if not found. Similar to getAddress when errorOnLookup is false, but returns nil instead. Проверку можно делать по таймеру. Запуск скрипта это последняя строка 4.Меняем тип данных type_data = 'INTEGER' -- FLOAT, DOUBLE, INTEGER Данный скрипт предоставляется как есть. Сделан для всех пользователей форума и можно использовать его в любых целях: в образовательных, в коммерческих. Если что-то не работает, то придется править вам самим. У меня к сожалению нет времени на оказание помощи. Справочник по луа функциям в файле"celua.txt"
  9. Мой пример для integer. Его можно прееделать для float и под твой адрес -- ctrl + R - сбросить позицию -- ctrl + X - сохранить в слот X, где X от 1 до 10 -- shift + X - сохранить в слот X, где X от 1 до 10
  10. В Cheat Engine есть программа туториал и там должно быть упражнение по поиску указателей как раз через сканер памяти и установку брейкпоинта. На ютубе должны быть наглядные решения этих туториалов. Там ничего сложного нет. Даже можно без сканера пройтись вверх по дизассемблеру и составить указатель. Найти видео можно по фразе "cheat engine tutorials"
  11. Есть очень много руководств, как искать указатели. Я очень и очень редко ищу целые указатели. Проще править код. Если надо структурки сравнивать, то можно поискать и указатели. Самый проверенный и самый сложный через отладчик Cheat Engine или через IDA, или гидру, или любой какой угодно. Смотрим стек, выходим из функций, трейсинг... Если указатель постоянно рассчитывается при обращении, то быстро найдешь. Самый простой способ через сканер памяти и отладчик. В этом случае как повезет + надо записывать разные варианты. Перезагружать процесс. Еще простой способ и долгий автоматический поиск. И еще один способ отказаться от указателей полностью редактируя код или использовать частичные уровни указателей 1,2 уровня (или больше, сколько надо) как для сравнения структур так и для инъекции.
  12. Похоже игра на Mono и Unity. Найти метод по некоторому названию (где-то выше по коду) в CE и скомпилировать это метод по названию (перед активацией скрипта АА) Пример если название функции "TakeDamage" (здесь просто нопинг) Вообще, у @Xipho было видео по Subnautica на канале Gamehacklab[RU]. Там monodessector и там разные подходы. У меня в блоге тоже можно поискать как ломать игры на Unity. Если движок знаешь, да еще и игра на Моно, да еще и без обфускации, то можно что хочешь с ней делать. Документация Unity функций.
  13. unepic.exe+2D455: 8B 15 888C6800 - mov edx,[00688C88] // цветами показан обратный порядок следования байт, просто так инструкции следует "перевернутыми" 8B 15 - это бинарный/байтовый код инструкции mov edx Во многих играх после перекомпиляции кода, инструкции сохраняют последовательность, но меняются смещения и адреса внутри. Можно попробовать в сигнаруте искать по первым начальным байтам последовательность инструкций, но в этом случае нужно умело править код. Т.е. содержимое инструкции, смещения, адреса могут поменяться. Т.е. если mov edx сохранил свое положение в сигнатуре, то вот адрес [00688C88] уже может быть другим, а точнее 90% будет другим и инъекцию кода уже надо делать не зарнее подготовленную, а генерируемую или как-то еще копируя участки кода и т.п. По опыту небольшого исследования, могу сказать есть инструкции, которые очень просто подходит для редактирования с такими "гибкими" сигнатурами: например по смещениям просто, что-то нопить. А есть инструкции, которые не достаточно нопить, а есть типа этой unepic.exe+2D455: 8B 15 888C6800 - mov edx,[00688C88] где нужно танцевать с бубном, т.к. будущая инъекция кода еще не известна, а будет известно на какой-то игре
  14. MasterGH

    "AlphaGo Zero совсем на пальцах"

    За нейронными сетями и быстрыми вычислениями (например на тензорных ядрах видеокарт) скорее всего, огромное будущее и огромный спрос. Стартануть в эту тему можно, изучив статью с хабра о принципах AlphaGo Zero и вот эту. Основные моменты это рекуррентные сети, которые ищут в глубь и сверточные сети, которые чем-то похоже на хеш-сумму (на тензорных ядрах они-то и быстро считаются). На данный момент по своей работе я активно развиваюсь в нескольких направлениях: в многопоточном программировании на CPU/GPU, вычислительных шейдерах, сокетах. Если писать программы на одном CPU ядре, то все чаще этого не хватает по мощности как на ПК так и тем более на мобильных устройствах. Такое ощущение, что без многопоточного программирования скоро нельзя будет никуда устроиться работать. Сейчас тенденция много ядер на CPU и их использовать. А еще лучше и быстрее что-то "тяжелое" отправить вычислять на GPU. Это не говоря по обработке графических данных. С ними очень эффективно работают программы на GPU. А чтобы системы соединялись между собой на расстояниях надо хорошо знать сокеты и многопоточное программирование. Основная фишка в многопоточности это спланировать множество задач из одной точки программы и в другой точке ждать, когда они все одновременно выполнятся. Некоторые, задачи при этом должны синхронизироваться только с основным потоком. Когда все задачи выполняться на разных ядрах CPU, то итоговый результат на каком-то одном ядре уже сделает все что требуется. Бонусом к ускорению на CPU ядрах служат специальные ассемблерные инструкции, которые например, позволяют обрабатывать больше данных за меньшее количество тактов. Интересующимся ссылки в основном по Unity игровом движке