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

Блоги

Обработка исключения в Cheat Engine Lua

pcall() функция может вызывать функцию, которая может вызывать исключение. Возвращает статус в виде булевой о том, есть ли исключение или нет и возвращает текст исключения.    Источник   Как этим пользоваться? Если вдруг знаем, что может произойти ошибка, то можно её обработать и выполнить правильное действие не останавливая работу Lua скрипта. Или например если  не выполняется условие, то можем сами создать ошибку с помощью функции error, что остановит скрипт.

MasterGH

MasterGH

Интересные программы

1. WebSite-Watcher позволяет отслеживать изменения на веб-страницах в том числе по по регулярным выражениям. Можно отслеживать изменения на сайтах Cheat Engine и других. Форум отслеживать смысла особого нет. Проще подписаться на обновление и почтовый клиент поставить. 2. Программы тестирования и автоматизации под разные ОС:     Sikuli — открытая кросс-платформенная визуальная среда создания сценариев-скриптов     AirTest IDE — почти как Sikuli и более того, китайские разработчики

MasterGH

MasterGH

CE Lua. Ищем свойства userData.

UserData в Lua это пользовательский тип.  Точно не знаю, но я думаю  в документации в CE Lua (celua.txt или здесь на офф. сайте) тип userData у всех классов или большинства классов. Например,  проверим, что главная форма CE это userData тип local mainFormCE = getMainForm() print(type(mainFormCE)) > userdata (вывод из консоли) Выводим список свойств следующим образом через getmetatable функцию. Метатаблица — это  особая  таблица свойств Lua-переменной (подробнее здесь) local mainF

MasterGH

MasterGH

Cheat Engine 6.8 Beta 1. ShowSelectionList функция

Довольно интересная функция, мне понравилась.  showSelectionList() позволяет просмотреть список класса Strings и выбрать свойство через список.   Как пример посмотрим список свойств главной формы и выберем любое свойство local mainForm = getMainForm() local listProperties = getPropertyList(mainForm) local allowCustomInput = false local id, name = showSelectionList("Title", "Caption", listProperties, allowCustomInput) print ('Index: '..id..", Name: "..name) --> Примеры выполне

MasterGH

MasterGH

Взлом крафта в StarsOne

В оригинале, если нет всех компонентов рецепта, то нельзя скрафтить вещь. Цель: скрафтить без компонетов по нажатию кнопки   Игра на Unity и можно пробовать использовать в dnSpy модифицировать файл Assembly-CSharp.dll Открываем файлик и смотрим на классы связанные с крафтом   Так находим кнопку, которая создаст указанное количество вещей крафта в CreateItem     Задача скрафтить по имеющемуся рецепту любую вещь. Для этого я добавляю проверку количес

MasterGH

MasterGH

Unity набирает обороты

В версии Unity 2018 довольно много интересного.   1. Это Unity Hub. Та штука, которая позволяет быть в курсе новых версий Unity.  2. PackageManager. Покажет пакаджи установленный в проекте. 3. Pro Builder. Довольно интересный инструмент, который позволяет моделить оркужение в Unity и творить простые локации, здания и создавать примитивы с наложением текстур... там очень много чего, я не не смотрел особо. Это альтернатива террейну. Фишка в том, что мы не являясь художниками (2

MasterGH

MasterGH

Не работает плагин сборки Firebase для AirTest IDE

Почти месяц ковыряюсь со сборкой апк, которая не запускается на инструментальном тестировании в Firebase   Рис.1 Сборка апк на инструментальное тестирование TestLab  от Firebase. Окно AirTest IDE   Две апк-шки создается. 1. В Unity, с иvпортом Poco SDK  2. В Плагине как на рисунке   Затем обе апк-шки отправляются на инструметальное тестирование в Firebase  Запускаю тест. Шесть секунд видео со стандартной заставкой и конец теста.  

MasterGH

MasterGH

Lua поиск элемента до и после строки

Была задача получить два списка из документа, в котором было с пару десятков тысяч строк. На практике выяснилось, что искать текст после ключевого слова легче чем искать текст до ключевого слова. Об этом и будет дальше   В утилите, которую я делал "Lua Regular Expressions (v. 1.0)"   Текст во вкладке "gmatch"   Game1 gameCompany DAU 53.21k -20% Game2 gameCompany DAU 20.35k -20%   Поиск элемента после строки   "DAU "DAU%

MasterGH

MasterGH

Python ошибка

Долго не могу решить проблему Traceback (most recent call last): File "C:\air test\plugins\firebase\build.py", line 124, in run self.SIGNAL_INSERT_LOGVIEW.emit(_str.decode("GB2312").encode("utf-8")) UnicodeDecodeError: 'gb2312' codec can't decode bytes in position 11-12: illegal multibyte sequence QObject::~QObject: Timers cannot be stopped from another thread Если кто шарит на питоне просьба помочь. Питон 2.7   Основная строка self.SIGNAL_INSERT_LOGVIEW.emit(_str.deco

MasterGH

MasterGH

[Cheat Engine Lua] Тестирование производительности2

Уже была запись про тестирование производительности. В этом примере тестируем разное обращение к функции со средним арифметическим значением     Результаты при 4-х запусках avg = 0.93333998758048 avg = 1.0322099291325 avg = 0.92657961891689 avg = 1.1883763135947   Вывод. Разница не существенная.

MasterGH

MasterGH

Отладка Lua скриптов и stacktrace функций

Пример, который показывает как снять стек вызовов функций function A0() -- Здесь можно удалить ":gsub('\n','\r\n')", но тогда в консоли текст будет в одну строку print(debug.traceback():gsub('\n','\r\n')) end function A1() A0() end function A2() A1() end function A3() for i=1,3 do A2() end end A3()   Можно поставить пошаговую отладку в консоли Lua (как на скриншоте) и  пройти по шагам

MasterGH

MasterGH

Чтение адресов и записи в адреса

Я обратил внимание на следующие поведения записи и чтения 1. Срабатывают только инструкции чтения до изменения параметра, адрес рабочий С адресом работают инструкции на чтение, но если в друг в этом адресе что-то поменять (например в CE), тот тут же выскочат инструкции на запись. Нельзя однозначно утверждать, что адрес является настроечным параметром, но и нельзя утверждать, что это не рабочий адрес. Какая-то инструкция может жестко менять значение, а может быть будет "стараться" измен

MasterGH

MasterGH

[Cheat Engine] Dissect Data Scaner 1.0.1 beta

Немного комментариев к этой версии.   1. Исправлены смещения 2. Добавлены также инструкции на запись   На скриноте ниже пример сравнения текущей структуры с координатами в СТАЛКЕРЕ Зов Припяти с копией структуры.  

MasterGH

MasterGH

Новости по будущему плагину

Проведено огромное количество опытов над структурами. Много переделок. Очень кратко напишу, что поменялось.   1. Название структуры состоит из адреса, количества адресов в ней и  времени в миллисекундах на один байт в структуре. Подчеркнуто красным   2. Смещения отбираются только те, на которых за X времени не было обнаружено ни одной инструкции на запись. Чем больше та самая чувствительность,  тем точнее результат 3. В именах структур теперь ценная информ

MasterGH

MasterGH

Анализ Dissect Data Structure 2

Охота на структуры и удивительное путешествие в мир структур в L4D2   1. Игру L4D2 в оконный режим 2. Установка плагина (позже) 3. Установка VEH отладчика, иначе вылеты 4. Первая миссия. Ищем адрес патронов. Бряк на адрес. Нашли инструкцию Красным показано, что я не всю структуру проанализирую позже. Долго было ждать. Структура больше 5К байт...   5. Делаем сигнатуру любой инструкции при работе  с патронами на всякий случай, если игра вылетит. se

MasterGH

MasterGH

Анализ Dissect Data Structure

Конечно не секрет, что типы данных не правильно определяются. Вот пример для 50-ти адресов   Слева как определил данные CE. Справа как определил их я по логу ниже Понравились данные с размером в 1 байт, привлекают в нимание. Как только я переключил на ноль или 1, то персонаж перестал двигаться и не реагировал на движение.   Лог инструкций   Пытаюсь по логам определить алгоритм для Lua, чтобы скрипт сам ставил тип и смещение. Конечно есть сюрпризы, когда

MasterGH

MasterGH

Cheat Engine 6.7 и Lua. Часть 4

Решил попробовать написать CE Lua  скрипт, который прочесывает структуру и в Dissect data/structures окне создавал бы структуру только со смещениями, с которыми код работает, т.е. читает или пишет.   Например, мой персонаж прогуливается по городу, а каждые 200 мс ставится брейкпоинт на смещение +1 до гипотетической N границы структуры (например до 4096).   Я не успел сделать определение типа, но смещения внутри структуры получить я успел.   Итак, находим начало стру

MasterGH

MasterGH

Некоторые приемы создания читов

1. Персонаж падает с большой высоты и разбивается   Ищем адрес скорости прыжка прыгая под speedhack. Находим эту скорость. Ставим бряк на доступ. Прыгаем. Инструкции на чтение добавляем в список адресов и там начинаем нопить - Либо по одной - Либо рискнем по половине от половины - Либо рискнем и все сразу занопим   Если повезет, а должно повезти, то инструкция не прочитает то значение скорости, которое уложило бы персонажа на землю и можно будет прыгать на

MasterGH

MasterGH

Cheat Engine 6.7 и Lua. Часть 3

Наконец-то дошли руки до третий части.   Речь пойдет о создании структур программно. Пример, что будет в конце записи     Сразу к делу. Нужен поинтер и процесс. Запустим туториал из Cheat Engine из меню Health->Cheat Engine Tutorial. Прохождение туториала подробно описано здесь     Подключаемся к процессу идем на 8-мой шаг. В руководстве есть поинтер [[[["Tutorial-i386.exe"+XXXXXX]+C]+14]+0]+18   Вместо XXXXXX может быть любое

MasterGH

MasterGH

Cheat Engine 6.7 и Lua. Часть 2

Как контролировать включение и выключение скриптов в таблице   AA или "Autoassembler code" код похожий на язык программирования ассемблера. Обычный АА-скрипт состоит из двух директив и добавляется в таблицу CE как запись // Код срабатывающий как при активации, так и при деактивации [ENABLE] // Код активации [DISABLE] // Код деактивации Чтобы код активировался, нужно включить галку напротив записи в таблице и наоборот выключить. Есть такие директивы как {

MasterGH

MasterGH

Cheat Engine 6.7 и Lua. Часть 1

Где писать Lua код?   Lua Engine окно, которое вызывается из главного окна CE.   Lua Console окно, которое вызывается из окна отладки CE.   Окно Autoassembler скрипта с вставки {$lua}, {$asm}   Lua Engine окно и Autoassembler-ные скрипты могут сохраняться в файлах Cheat Engine *.CT. *.CETRAINER, *.EXE   Lua Console для пошаговой отладки Lua кода и просмотров результатов ошибок и функции print()   Моя первая программа   Сначала узнаем версию для CE 6.7 и это

MasterGH

MasterGH

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

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

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