Перейти к содержанию
  • записи
    104
  • комментариев
    125
  • просмотров
    31 839

Записи в этом блоге

Lua счет произвиодительности

С точностью до тысячной доли секунды можно посчитать задержку выполнения кода, что можно применить как счет производительности. local x = os.clock() local s = 0 for i=1,100000 do s = s + i end print(string.format("elapsed time: %.3f\n", os.clock() - x)) После выполнения, показывает 2 тысячных секунды или 2 мс elapsed time: 0.002 Можно посчитать прошедшее время для другой цели. Например, если цикл в отладке выполняется более 3 секунд, то это вероятно корневой цикл, а если менее, то

MasterGH

MasterGH

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

Наткнувшись на тему вспомнил, что  не все написал. В прошлом посте блога рассматривал бряк через DBVM.  К сожалению, та версия dbvm из поста блога пропускала очень много инструкций и практически смысла нет её юзать.  Например она определяла 16 инструкций, когда их было несколько тысяч, т.е. например 500 оффестов и на каждой по 10 инструкций. По DBVM надо, конечно, писать Дарк Байту, но желания нет.   Так вот. Не только с DBVM можно ставить бряки на участок памяти.  Есть еще тип  брейкп

MasterGH

MasterGH

Абстрактный игровой движок. Базовая архитектура

В игровом движке может быть следующая архитектура   Менеджер сцен     Список сцен         Сцена1           Менеджер игровых объектов             Список игровых объектов                 Игровой объект1                 Игровой объект2                 Игровой объект3         Сцена2           Менеджер игровых объектов             Список игровых объектов               

MasterGH

MasterGH

CE Lua Оптимизация splitDisassembledString()

Напишем функцию, которая в 3.2 раз быстрее кода ниже splitDisassembledString(disassemble(address))   Сравнивая скорости получаем оптимизацию в ~3.20 раза быстрее.   Пример использования function GetDebugString2(address) local clearString = string.gsub(disassemble(address), '%s','') return string.match(clearString, '^(.-)%-(.-)%-(.-)$') end local address, bytes, opcode = GetDebugString2(0x0045464A) print(address) print(bytes) print(opcode) gsub очищает пробелы

MasterGH

MasterGH

Unreal Engine 4.22. Как захотеть делать игры

У меня бывают такие случаи, когда увидишь простой пример кода после которого захочется заняться разработкой какой-нибудь игры.  Вот один из таких примеров о том, как сделать подъем и опускание предмета и затем его вращение. Это 5 строчек "таких" и 5 строчек "таких", вот подъем и вращение   На видео код можно применять для левитации предметов и вражеских персонажей, которых  можем поднимать, удерживать и бросать. 

MasterGH

MasterGH

Видео 1. Заморозка значений

Сложность: 1/5. В этом видео рассматривается самый простой способ взлома игр "Заморозка значения".   Ссылка на скачивание Cheat Engine Ссылка на типы данных      

MasterGH

MasterGH

CE Lua рисование отдельным потоком

На видео показано рисование через поток и рисование без потока Когда происходит рисование без потока, то окно нельзя подвинуть, не работает кнопка и даже не возможно работать с Cheat Engine           Код:     &

MasterGH

MasterGH

Регулярки на Lua

Добавлен файл [Cheate Engine] Lua Regular expression.CETRAINER. Файл можно скачать в теме по ссылке. Исходники в приватном разделе.  

MasterGH

MasterGH

Lua плагины в CE

Нет времени, пока напишу заметки.   1. Можно сделать плагин с визуализацией счетчиков обращений к видимым данным в MemoryView с подключенным DBVM. 2. По аналогии в Dessect Data Scanner сделать выбор DBVM режима.   DBVM позволяет обойти ограничение в 4 аппаратных брейкопинта и в реальном времени визуализировать данные, которые обращаются к памяти на чтение, запись. Показывать счетчик обращения и даже показывать спискок инструкций при наведении курсором на байт или иные да

MasterGH

MasterGH

Ветвления кода связанные с адресом

В этой записи блога не будет чего-то, что показало бы "вау, это что-то новое и есть результат". Все сырое и результат пока мне только снится — быстрый поиск условий и включение, и выключение ветвей по этим условиям. Мыслю я не инструкциями, не группой инструкций, а ветвлениями кода и условиями, которые их запускают. Проще 20 ветвлений по 5 окон, чем тонна инструкций... Жаль пока теория, практики с результатом нет.   Рисунок. На нем слева п

MasterGH

MasterGH

Составление критериев в к плагинам Cheat Engine

Для тех кому интересно, вопрос к ним. Какие критерии можно добавить спрашивая оценку плагина? Например, по 5-ти бальной шкале спрашивать оценку у пользователей:   Необходимость плагина в Cheat Engine Работает без ошибок                            Понятно как пользоваться Интерфейс плагина Удобство плагина Нравится Простая установка   Думаю, прикрутить аналитику прямо в плагины. Там будет как аналитика использования плагина, та

MasterGH

MasterGH

Форма Cheat Engine

В архиве два файла. Функции 1. Контекстное меню. Компактное/ не компактное окно CE 2. Сохранение и загрузка положения и размера формы CE 3. Сохранение и загрузка компактного состояния формы или не компактного   Сделано на энтузиазме после написания класса сохранения и загрузки параметров. После запуска, CE будет там, где её (CE) закрыли с по

MasterGH

MasterGH

[CE Lua, Plugin] Вывод иерархии компонентов

Скрипт позволит вывести иерархию компонентов CE в виде текста.   Иерархия компонентов CE нужна для написания плагинов.  Например, для ColorPicker и для смены шрифта (подобротнее об этом было где-то было в блоге).   Скрипт:   Для CE 6.7  

MasterGH

MasterGH в CE Lua, Plugin

Tool Lua Regular expressions 2

CT таблица для составления регулярных выражений 4-х функций   string.match (s, pattern [, init]) string.gmatch (s, pattern) string.gsub (s, pattern, repl [, n]) string.find (s, pattern [, init [, plain]]) Функция string.gsub может принимать в аргумент функции "repl" таблицу (тогда будет замена по ключам значений из таблицы ) или в аргумент "repl" может попадать некоторая другая функция с аргументом найденного слова (тогда будет вызов этой другой функции при каждом захвате символа или

MasterGH

MasterGH

Трассеровка по ретам. Скриншот

  На скриншоте 22 ветви трассеровки от адреса патронов не входя в call-ы до корневого цикла. Корневой цикл определяется, когда поиск происходит более трех секунд и не находит ничего. Вполне хватает этого времени. Буду еще повторно тестить и проверять доходит ли он цикла или надо еще что-то придумывать. Желтым выделяется точка, вертикальная полоса ветви и связи с такими же узлами. Узел это адрес выхода из ret

MasterGH

MasterGH

[CE Lua Plugin] Способ раскраски значений найденных адресов

Пример раскрашивания адресов без каких-либо условий source   1) Из прошлой записи блога нашли "MainForm.Foundlist3" для работы с TListView (компонент от Lazarus среды разработки) 2) OnCustomDrawSubItem — функция обработчик раскрашивания вложенных элементов в Item. Не поленитесь, зайдите в файл документации (C:\Program Files\Cheat Engine 7.4\celua.txt) Также есть OnCustomDrawItem — раскрашивание невложенных элементов.   Этот способ раскрашивания можно использо

MasterGH

MasterGH в CE Lua, Plugin

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

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

MasterGH

MasterGH

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

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

MasterGH

MasterGH

[CE Lua Plugin] Компактный режим через ООП в Lua

Ниже находится обучающий пример плагина для CE Lua с установкой компактного режима применяя парадигму ООП — инкапсуляции.   Для программирования плагинов на Lua могут пригодится приемы ООП. Это касается сущностей, их поведений и взаимодействий между ними.  В данном примере CECompactView — описание класса на основе мета-таблицы и оно является сущностью. Функции класса — uncompact() и compact(), которые реализуют поведения этой сущности. Основной скрипт с описанием сущности можно помести

MasterGH

MasterGH в CE Lua, Plugin

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

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

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