Открываем Lua консоль из дизассемблера
Пишем Lua скрипт
Дальше по шагам как на картинке
Сколько я не пользовался CE я никогда не знал об этом отладчике. Когда я случайно узнал, то был приятно удивлен.
Если мы пишем какую-то функцию и она дает сбой, то её можно отладить как на скриншоте. Это может быть и не функция.
Завтра состоится очень скромная премьера 27 июня в 19.00 (по Московскому времени) видео "Фильтр-свой" чужой.
Почему видео находится не на официальном канале? Какая цель у видео?
Это личное любительское видео-хобби по отладке и изменению игрового кода — взлому игр. Я записываю видео для себя и для желающих.
Приходите смотреть
gta3.CT
Вступление
В CE выделим участок кода и функцию
Sub eax,edx - вычитание и наиболее значимее чем запись и чтение.
После декомпиляции
Если выделили две инструкции
Обращать внимание будем на математику, логику, условия и потом на чтение и запись.
В данном случае, нужно найти вычитание из адреса "eax4->f1152 = eax4->f1152 - (eax3 + 1)"
Как поставить декомпилятор
1. С форума Cheat Engine качаем архив
2. Распаковыв
Пост для тех, кто интересуется Lua в Cheat Engine.
Можно подхватить разные моменты активации и деактивации записи в таблице CE и рассчитать размер кода между метками
1. По шаблону вставляем АА код для туториала Cheat Engine
2. Регистрируем метки-маркеры в АА коде
3. Этими метками в Lua считаем и выводим ""endCode - startCode" размер байтов
Пример, который подсчитал 15 байтов
Пример скрипта
Документация ко
Инфа по совместной работе с гитом. Может быть пригодится кому, а может и нет. Такую систему я использую на работе недавно.
Можно совместно работать над одним большим проектом через git-flow. Возможно, кто-то из форумчан тоже использует git flow на работе.
Кратко. Модель контроля версии построена на 4 ветках
master - релизы
develop - разработка
feature - фичи
hotfix - исравления
С develop начинается разработка через копирования в ветк
UserData в Lua это пользовательский тип. Точно не знаю, но я думаю в документации в CE Lua (celua.txt или здесь на офф. сайте) тип userData у всех классов или большинства классов. Например, проверим, что главная форма CE это userData тип
local mainFormCE = getMainForm()
print(type(mainFormCE))
> userdata (вывод из консоли)
Выводим список свойств следующим образом через getmetatable функцию. Метатаблица — это особая таблица свойств Lua-переменной (подробнее здесь)
local mainF
Источник
Как вступление. Мне нравится Lua, потому что в нем можно писать код в виде строковых данных (и Lua строки, и ассемблерные строки), а затем выполнять эти строки как код. В теории код может по фидбеку делать другой код в автоматическом режиме. Это на мой взгляд неисчерпаемые потенциальные возможности AI ограничивающиеся железом.
В CE 6.7 функция autoAssemble вызываемая в Lua скриптах позволяет включать и теперь выключать скрипт со "своим" dealoc-ом.
При
Репозиторий
1. На адрес устанавливается брейкпоинт.
2. Идем в игру делаем или не делаем что-то
3. Начинают срабатывать инструкции на брейкпоинте
4. От каждой инструкции начинается трейслог, подобный тому, который есть
1. WebSite-Watcher позволяет отслеживать изменения на веб-страницах в том числе по по регулярным выражениям. Можно отслеживать изменения на сайтах Cheat Engine и других. Форум отслеживать смысла особого нет. Проще подписаться на обновление и почтовый клиент поставить.
2. Программы тестирования и автоматизации под разные ОС:
Sikuli — открытая кросс-платформенная визуальная среда создания сценариев-скриптов
AirTest IDE — почти как Sikuli и более того, китайские разработчики
Поиск по модулям
Исходник
Поместить ModuleListRegioScan.lua в autorun.
Что интересно, Дарк Байт решил написать на Lua. Эта функция жестко в CE не впиливается. Можно выбирать, хочу это расширение поставить или нет. Посмотрел, если понравится, то оставил. Cheat Engine перекомплировать не нужно и не нужно в нем делать опции скрывать или показывать функционал.
Источник
Планируется улучшать и дорабатывать плагины, показать как с ними работать.
1. Вывод данных в окно логов: сканирование, подключение к процессу, опции сканирования, состояния активации и деактивации записией в таблице CE и другие
2. Запись действий из пункта 1, сохранение этих действий и воспроизведение по кнопке или горячим клавишам
3. Показ в дизассемблере CE ветвлений кода при проходе потоками разными цветами (можно видеть код, который не был пройден в разных ситуациях)
4. До
Как контролировать включение и выключение скриптов в таблице
AA или "Autoassembler code" код похожий на язык программирования ассемблера.
Обычный АА-скрипт состоит из двух директив и добавляется в таблицу CE как запись
// Код срабатывающий как при активации, так и при деактивации
[ENABLE]
// Код активации
[DISABLE]
// Код деактивации
Чтобы код активировался, нужно включить галку напротив записи в таблице и наоборот выключить.
Есть такие директивы как {
Решил попробовать написать CE Lua скрипт, который прочесывает структуру и в Dissect data/structures окне создавал бы структуру только со смещениями, с которыми код работает, т.е. читает или пишет.
Например, мой персонаж прогуливается по городу, а каждые 200 мс ставится брейкпоинт на смещение +1 до гипотетической N границы структуры (например до 4096).
Я не успел сделать определение типа, но смещения внутри структуры получить я успел.
Итак, находим начало стру
Отличная книга по изучению паттернов проектирования. Ее можно читать со шпаргалкой по паттернам (иллюстрацию по паттернам можно загуглить).
Перед этим еще загуглить SOLID + Unity .
До кучи еще алгоритмы и структуры данных.
Все это пригодится, чтобы пойти работать на программиста игр или приложений с разными типами реальности: дополненная, виртуальная и смешанная. А так же сейчас можно встретить вакансии по программированию не только Android, iOS устройств, шлемов и очков, но раз
Вполне читерская программа Sikulix
Помощник для нахождения отличий
Исходник:
Картинки для тренировки
Игра
Sikulix
Документация
Туториалы
Sikulix умеет:
ждать появления или исчезновения элемента, просто ждать, периодически просматривать область в background (например игрового чата);
читать (и писать) текст в(/из) поля ввода, "нажимать на клавиатуру", подсвечивать области, кликать по элементам, удерживат
Обычно, дается 4 аппаратных брейкпоинта на адреса памяти. Их можно включать одновременно и найти инструкции, которые в данный момент срабатывают. Так можно определить тип данных у адресов и найти инструкции. По инструкциям найти смещения внутри дизассемблированной инструкции. По смещениям визуально определить структуры в структурах. Расструтуризовать структуру в dessect data и найти много интересных параметров для читов. Вручную с 4мя бряками делать очень хлопотно.
Начинается все с
Кому интересно как c помощью инструмента Fuse сделать модель вроде той, что я набросал на скриншоте выше и заставить её бегать, я предлагаю посмотреть в этом видео, незнакомого автора.
Прошлая точка входа запускающая активирующий скрипт не хотела работать, если запустить гигантский трейнер (сгенеренный на CE), а потом игру.
Для работы трейнера точка входа теперь задается вот таким образом после генерации кода трейнера
Подробнее в исходниках (лучше смотреть позже, после просмотра видео, которое еще готовится)
gta3.CT
У версии CE 7.2 есть к сожалению баги.
1. При генерации трейнера нужно вручную править высоту надписей — надписи
Я решил рассмотреть три новые функции:
Пользовательские типы данных в hex-окне
Фильтр на окне определения адресов
Поиск данных в окне Tracer
1. Пользовательские тип данных в hex-окне
Пример как сделать:
Фильтр на окне определения адресов
3. Поиск данных в окне Tracer
Обычный поиск, как на прошлых скринах
Примеры
Ну и более интересная версия перебора и одновременн
Функции:
1) Три типа данных: float, double, integer
2) 10 слотов сохранений
3) Управление горячими клавишами. ctrl+X - где X от 0 до 9 сохраняет позицию, shift + X загружает ранее сохраненную позицию
4) Озвучивание загрузки или сохранения Как пользоваться:
1. Подключаемся к процессу игры любым способом (хоть вручную, хоть на Lua, чем угодно)
2. В CE вставляем Lua скрипт
3. Меняем адрес teleport_address = "03D2C6DC" на тот который нужно.
Здесь