Пример лога снятия данных с брейкпоинта на структуру 0x1000 за 10 секунд.
В структуре по смещению 0x2C0 находится здоровье персонажа. На начало этой структуры и был поставлен брейкпоинт .
Ниже будет большой кусок опкодов, который работает со структурой. Можно посмотреть в каком порядке опкоды исполняются и с какими смещениями, насколько далеко они друг от друга. Некоторые смещения рядом с известными смещениями могут заинтересовать. Одинаковые опкоды в определенном порядке, но
Я обратил внимание на следующие поведения записи и чтения
1. Срабатывают только инструкции чтения до изменения параметра, адрес рабочий
С адресом работают инструкции на чтение, но если в друг в этом адресе что-то поменять (например в CE), тот тут же выскочат инструкции на запись. Нельзя однозначно утверждать, что адрес является настроечным параметром, но и нельзя утверждать, что это не рабочий адрес. Какая-то инструкция может жестко менять значение, а может быть будет "стараться" измен
Нет времени, пока напишу заметки.
1. Можно сделать плагин с визуализацией счетчиков обращений к видимым данным в MemoryView с подключенным DBVM.
2. По аналогии в Dessect Data Scanner сделать выбор DBVM режима.
DBVM позволяет обойти ограничение в 4 аппаратных брейкопинта и в реальном времени визуализировать данные, которые обращаются к памяти на чтение, запись. Показывать счетчик обращения и даже показывать спискок инструкций при наведении курсором на байт или иные да
Для тех кому интересно, вопрос к ним. Какие критерии можно добавить спрашивая оценку плагина?
Например, по 5-ти бальной шкале спрашивать оценку у пользователей:
Необходимость плагина в Cheat Engine
Работает без ошибок
Понятно как пользоваться
Интерфейс плагина
Удобство плагина
Нравится
Простая установка
Думаю, прикрутить аналитику прямо в плагины. Там будет как аналитика использования плагина, та
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" может попадать некоторая другая функция с аргументом найденного слова (тогда будет вызов этой другой функции при каждом захвате символа или
Опубликованная в веб формате книга на официальном сайте.
Язык английский
Перейти
Оглавление книги
Книга о приемах программирования больших проектов, в которых огромное количество строк кода. Основная проблема, когда ты уже что-то написал и надо добавить в уже существующий проект внушительный функцио
В игровом движке может быть следующая архитектура
Менеджер сцен
Список сцен
Сцена1
Менеджер игровых объектов
Список игровых объектов
Игровой объект1
Игровой объект2
Игровой объект3
Сцена2
Менеджер игровых объектов
Список игровых объектов
С точностью до тысячной доли секунды можно посчитать задержку выполнения кода, что можно применить как счет производительности.
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 секунд, то это вероятно корневой цикл, а если менее, то
Установка:
1. Файл GHL_ClassSettings.lua закинуть в autorun (нужен для сохранения и загрузки данных формы)
2. Двойной клик на Lua Regular expression.CETRAINER вызовет это окно
Описание:
- Для тренировки и проверки написания регулярных выражений
- Выбор извлечения строк в виде одной или в виде последовательности
- При нажатии на кнопку или при вводе текста в memo вычисляется выражение
Lua Regular expression.CETRAINER
GHL_ClassSettings.lua
На видео показано рисование через поток и рисование без потока
Когда происходит рисование без потока, то окно нельзя подвинуть, не работает кнопка и даже не возможно работать с Cheat Engine
Код:
&
Наткнувшись на тему вспомнил, что не все написал. В прошлом посте блога рассматривал бряк через DBVM. К сожалению, та версия dbvm из поста блога пропускала очень много инструкций и практически смысла нет её юзать. Например она определяла 16 инструкций, когда их было несколько тысяч, т.е. например 500 оффестов и на каждой по 10 инструкций. По DBVM надо, конечно, писать Дарк Байту, но желания нет.
Так вот. Не только с DBVM можно ставить бряки на участок памяти. Есть еще тип брейкп
В этой записи блога не будет чего-то, что показало бы "вау, это что-то новое и есть результат". Все сырое и результат пока мне только снится — быстрый поиск условий и включение, и выключение ветвей по этим условиям. Мыслю я не инструкциями, не группой инструкций, а ветвлениями кода и условиями, которые их запускают. Проще 20 ветвлений по 5 окон, чем тонна инструкций... Жаль пока теория, практики с результатом нет.
Рисунок. На нем слева п
Уже была запись про тестирование производительности.
В этом примере тестируем разное обращение к функции со средним арифметическим значением
Результаты при 4-х запусках
avg = 0.93333998758048
avg = 1.0322099291325
avg = 0.92657961891689
avg = 1.1883763135947
Вывод. Разница не существенная.
Нажали checkbox — заполнились данные по базовому адресу
Отжали checkbox — удалились данные
Если проще руками забить и поставить опцию раскрытия, то можно и без скрипта.
В версии Unity 2018 довольно много интересного.
1. Это Unity Hub. Та штука, которая позволяет быть в курсе новых версий Unity.
2. PackageManager. Покажет пакаджи установленный в проекте.
3. Pro Builder. Довольно интересный инструмент, который позволяет моделить оркужение в Unity и творить простые локации, здания и создавать примитивы с наложением текстур... там очень много чего, я не не смотрел особо. Это альтернатива террейну. Фишка в том, что мы не являясь художниками (2
Был вопрос на форуме о том, как узнать, а куда смотрит игрок и как нарисовать линию в экранных координатах.
Я не нарисую отрезки в окне игры в экранных координатах, но могу отобразить точки одного отрезка для одного глаза 2д-панельками в экранных координатах (хотя визуально, у Unity экранные координаты связаны с 3д координатами по масштабу пикселя на метр на сцене). Для наглядности все же в окнах сцены будут отрезки в 3д-координатах.
Чтобы посмотреть
Дополненная реальность похоже на спецэффекты в кино, только на экране видим изображение получаемое с видео камеры, которой управляет пользователь.
Что интересно. Камера, которая есть у многих на телефоне и допустим некоторая программа с API(какой-нибудь дополненной реальности написанная вами) определяет, что происходит на изображении и по этим данным можно
1) определить плоскости реальные в нашем мире
2) определить положение объектов относительно друг друга в нашем
В архиве два файла. Функции
1. Контекстное меню. Компактное/ не компактное окно CE
2. Сохранение и загрузка положения и размера формы CE
3. Сохранение и загрузка компактного состояния формы или не компактного
Сделано на энтузиазме после написания класса сохранения и загрузки параметров.
После запуска, CE будет там, где её (CE) закрыли с по
На скриншоте 22 ветви трассеровки от адреса патронов не входя в call-ы до корневого цикла. Корневой цикл определяется, когда поиск происходит более трех секунд и не находит ничего. Вполне хватает этого времени. Буду еще повторно тестить и проверять доходит ли он цикла или надо еще что-то придумывать.
Желтым выделяется точка, вертикальная полоса ветви и связи с такими же узлами. Узел это адрес выхода из ret
Unity + ARKit 2.0 + Apple Device + iOS > 12.x позволят сканировать через визуальную одометрию реальный мир и расставлять в нем виртуальные объекты и загружать их в точные места, куда раньше поставили. Особенность в том, что чем больше информации собрали физической камерой из разных положений и углов, тем больше шансов, что увидим объекты именно там куда их поставили. Это еще классно тем, что карту мира можно расширять, сохранять, загружать, передавать в реальном времени на разные устройства
Сложность: 1/5.
В этом видео рассматривается самый простой способ взлома игр "Заморозка значения".
Ссылка на скачивание Cheat Engine
Ссылка на типы данных