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

MasterGH

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

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

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

    113

MasterGH стал победителем дня 7 декабря 2020

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

Репутация

478 Structure hunter

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

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

Информация

  • Пол
    Array

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

65 004 просмотра профиля
  1. Вполне читерская программа Sikulix Помощник для нахождения отличий Исходник: Картинки для тренировки Игра Sikulix Документация Туториалы Sikulix умеет: ждать появления или исчезновения элемента, просто ждать, периодически просматривать область в background (например игрового чата); читать (и писать) текст в(/из) поля ввода, "нажимать на клавиатуру", подсвечивать области, кликать по элементам, удерживать и перетаскивать; перемещаться по окнам по названию процессов; сохранять скриншоты в том числе определенные области; показывать много разных диалогов: ввода, тултипов, сообщений; сравнивать изображения и находить отличные области (пример выше); поиск элементов по маске; поиск групп элементов и перебор их; создание гайдов или руководств Из наиболее интересных применений: 1) в играх где необходим поиск графических элементов с действиями (кликеры, поиск отличий или поиск/подсчет элементов, маджонги и другие); 2) нажать на найденных элементы(кнопки, чек-боксы); 3) найти текстовое значение, перевести в число, посчитать; 4) ожидает выхода человека из скайпа (или что-то вроде мониторинга чатов); Ну и так далее...
  2. Примеры на C#: Принцип связан с условием движения персонажа, временем, углом в радианах, координатами персонажа и некоторыми тригонометрическими функциями. Получается что-то, вроде, двух одновременных движений вперед и относительное влево-вправо по дуге. Ключевые слова для поиска: "camera bob", "walk camera"...
  3. Возможно, надо в кавычки поставить. Это твое
  4. MasterGH

    CE 7.2 Операции с трейслогом

    Я решил рассмотреть три новые функции: Пользовательские типы данных в hex-окне Фильтр на окне определения адресов Поиск данных в окне Tracer 1. Пользовательские тип данных в hex-окне Пример как сделать: Фильтр на окне определения адресов 3. Поиск данных в окне Tracer Обычный поиск, как на прошлых скринах Примеры Ну и более интересная версия перебора и одновременного выделения записей. Здесь нужно открыть окно "Трейсера" и рядом в Lua окне писать свои условия в функции "Compare()", "PrintData()", Selected() Документация Для вывода referencedBytes из трейслога можно использовать byteTableToDword(referencedBytes) (смотрим документации выше) получая из TfrmTracer.Entry[index].referencedBytes или в строке поиска у Трейслога вбить byteTableToDword(referencedBytes) > 0 and print(string.format("0x%08X - 0x%08X", RIP, byteTableToDword(referencedBytes))) == 1 Практическое применение Больше всего могут интересовать реальные практические примеры. Если будет время, желание может быть сделаю, а так просто общий обзор.
  5. Не нашел кода, который рисует 16x16 иконки. Может я проглядел. Я думаю, можно взять код, который рисует стрелочку... и после него сделать цикл с его участием, т.е. им же иконки ресурсов нарисовать. Куски по 1024x1024 разбиваются, скорее всего, из-за dds -формата, большой текстуры и оптимизации. Возможно, поддержка старых видео карт, на которых большие текстуры не залезут. p.s. Картинки не залиты на форум. Будет очень жаль, если пропадут со временем.
  6. MasterGH

    Большой брейкпоинт page exceptions

    Наткнувшись на тему вспомнил, что не все написал. В прошлом посте блога рассматривал бряк через DBVM. К сожалению, та версия dbvm из поста блога пропускала очень много инструкций и практически смысла нет её юзать. Например она определяла 16 инструкций, когда их было несколько тысяч, т.е. например 500 оффестов и на каждой по 10 инструкций. По DBVM надо, конечно, писать Дарк Байту, но желания нет. Так вот. Не только с DBVM можно ставить бряки на участок памяти. Есть еще тип брейкпоинтов page exceptions. О нем давно-давно известно и он как на ладони, но почему-то я пропустил его, когда искал оффсеты в структурах С ним можно работать с lua и без. Ловит огромное количество инструкций. Желательно мощное железо, т.к. игра скорее всего будет очень тормозить по 2-5 fps. Но на короткий запуск сойдет. 5 секунд и достаточно для снятия логов. На пару действий в игре тоже сойдет: выстрел или пермещение персонажа, прыжок или вообще ничего не делаем просто снимаем логи. 1) способ поставить бряк из окна памяти. Подопытная программа "Tutorial-x86_64.exe" Здесь видно, что размер 720 байт Логи из окна инструкций CE 2) Способ через Lua (подробнее в документации) debug_setBreakpoint(structure_address, sizeMemory, bptAccess, bpmException, onBreakpoint) P.S. Я написал про два способа установки брейкпоинта на множество адресов без DBVM. Вручную можно ставить такие брейкпоинты, но дальше уже кропотливый просмотр на предмет того чем это может помочь. Это может помочь определить типы данных и помочь прикинуть размер структуры, а также найти активные оффсеты. Можно на Lua автоматически определять активные offsets по базовому адресу структуры и эту структуру создать и заполнить в dessectData. Если будет время напишу скрипт.
  7. Нет альтернативы в виде одной команды. Можешь посмотреть интеловский мануал, раздел инструкций обмена данных. Зато есть альтернативы с несколькими инструкциями. Например, использовать третий "свободный регистр" xmm с инструкцией mov-подобного перемещения. Если регистр занят, то можно использовать адрес памяти. Есть интересный вариант с двумя регистрами и тремя инструкциям, когда на CPU поддерживает набор инструкций AVX. vpsubd xmm0, xmm1 vpaddd xmm1, xmm0 vpsubd xmm0, xmm1, xmm0 Также можно через xor подобную инструкцию.
  8. Это понятно. Ты попробуй узнать какие байты, в каком модуле и по каким смещениям менять. Чтобы узнать тебе нужен дизассемблер arm, если там на so файлах. Если там java, то ява декомпилятор и компилятор. Если там mono, то декомпилятор и компилятор .net модулей. Это будет так сложно, что может не быть смысла патчить апк. А вот сейв-вайлы из эмулятора более просто. Так же есть рут хаки на иннапы, для тех кто не сделал защиту против них. localhost На видео пример
  9. Чтобы летел вперед нужно найти адрес координат камеры и адрес кватерниона. Этот кватернион умножаем на нормализованный свой эйлеров угол смотрящий по глобальной оси координат "вперед" (например это 0X-ось), который умножаем на скорость движения и дельту времени между кадрами отрисовки. Скорость движения для W положительная, а для S отрицательная. У игрового объекта есть позиция X,Y,Z и углы кватерниона X,Y,Z,W. К позиции прибавляем нормализованный вектор оси вперед. Возьми например 0,1,0. Этот код на C# на CE Lua переписать с таймером и горячими клавишами. Посмотреть как работает.
  10. Перепатчить апк — это непросто. Если приложение сделано на Unity без il2cpp компиляции и без обфускации, то может еще прокатит. Java (скомпилированный) может еще тоже прокатит через декомпиляцию и компиляцию. А вот жесткие so-шки через IDA можно вечно реверсить. Там нужен подход, который я не знаю. Скорее всего, через эмулятор как-то. Проще найти готовые апк моды или искать другой путь. Через взлом сейв файлов, которые можно сделать через взлом на CE как по этой статье (в первом посте) или через взлом на эмуляторе и CE. Через рут эти файлы перенести.
  11. Как минимум два способа. Простой и сложный 1) Менять координаты по горячим клавишам. Тут даже скрипты писать не надо, если на CE делать. 3 координаты найти. И каждой по 2 поведения в опция выставить. 6 горячих клавиш. Три пары увеличивают и три пары уменьшают. Ничего программировать не нужно через CE. 2) Программировать. Аналогично по горячим клавишам писать полет. Язык программирования любой, который лучше всего знаешь и больше подходит. Есть пример на C#, но без записи в память чужого процесса. Можно этот код изучать и поменять Добавить код открытия процесса и добавить чтение и запись координат. MonoBehavior убрать, а update заменить таймером. Там же пример exe полета в том числе с вариантом движения вперед - по направлению камеры (с координатами углов) p.s. Чтобы сделать надо искать и читать документацию как писать код. Ничего сверх сложного нет. И полеты лучше отрабатывать на игровом движке или взять любой готовый пример directX на C++ и поведение камеры сделать в dll. И её уже использовать.
  12. Пример лога снятия данных с брейкпоинта на структуру 0x1000 за 10 секунд. В структуре по смещению 0x2C0 находится здоровье персонажа. На начало этой структуры и был поставлен брейкпоинт . Ниже будет большой кусок опкодов, который работает со структурой. Можно посмотреть в каком порядке опкоды исполняются и с какими смещениями, насколько далеко они друг от друга. Некоторые смещения рядом с известными смещениями могут заинтересовать. Одинаковые опкоды в определенном порядке, но по разным RIP тоже могут заинтересовать. Switch-case могут заинтересоваь в виде cmp [x]. число. Инструкции чтения из структуры больше интересуют, т.к. они могут более вероятно, на что-то влиять - из них читается и для чего-то это нужно. Причем последовательность инструкций идет в порядке вызова, но RIP всегда уникальный (RIP не дублируются). Здесь RIP, т.к. CE 64 разрядный Если последовательность к данным структуры примерно сохраняется, то можно обратить внимание на обращение к адресам в структуре рядом со здоровьем по смещению 2с0: до обращения к адресу здоровья, во время и после. Я выделил их стрелками. Эти смещения могут быть связаны со здоровьем Интересные моменты могут быть с так называемыми switch-case операциями. Можно пытаться их подменить
  13. Обычно, дается 4 аппаратных брейкпоинта на адреса памяти. Их можно включать одновременно и найти инструкции, которые в данный момент срабатывают. Так можно определить тип данных у адресов и найти инструкции. По инструкциям найти смещения внутри дизассемблированной инструкции. По смещениям визуально определить структуры в структурах. Расструтуризовать структуру в dessect data и найти много интересных параметров для читов. Вручную с 4мя бряками делать очень хлопотно. Начинается все с установки огромного бряка на структуру из туториала CE. Логи По логам видим, что какие-то инструкции обращаются и скорее всего обращаются к нашей той самой структуре. Проверим так ли это и заодно увидим к каким другим структурам идет обращение Видим, что одна из инструкций действительно обращается к нашей структуре и далеко за пределам диапазона 4 брейкпоинтов. Т.е. это действительно огромный такой брейкпоинт на всю структуру. Также видим, что инструкция отработала по другим 4 структурам и это могли быть враги и друзья игрока. Также видим, что тип данных автоматически неверно определился в окна DesectData и мы можем его скорективать - это будет 1 байт Вот так можно проводить ручную расструктуризацию. Кропотливо по байтикам на весь размер структуры выставлять коментарий и правильный тип данных - не все типы данных могут подцепиться и при экспериментах с изменением значений могут быть глюки в игре или даже вылеты. После того как вся структура изучена, можно сделать множество читов, которых нет ни в одном трейнере, если их еще не сделали.
  14. Функции: 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"
  15. Мой пример для integer. Его можно прееделать для float и под твой адрес -- ctrl + R - сбросить позицию -- ctrl + X - сохранить в слот X, где X от 1 до 10 -- shift + X - сохранить в слот X, где X от 1 до 10
×
×
  • Создать...

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

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