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

Блоги

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

Игра, с которой началось увлечение взломом игр

Legacy of Kain: Defiance   Это старая PC игра выпущена в районе 2003-2004 годах, когда я еще учился в школе в классе 11-ом. В самом конце игры была сложная миссия сражения с боссом, никак не получалось её пройти.   Кстати из этой игры есть персонаж на аватаре у пользователя с форума Cheat Engine   Не мог пройти, как не пытался. То ли руки не из того места, пройти очень хотелось. Было у меня немного журналов игровых и там я много раз видел программу MTC. Ка

MasterGH

MasterGH

FPU инструкция FINCSTP. Очистка ST(0)

FINCSTP     Похожа на FSTP, также вращает стек регистров FPU (я кстати не знал, увидел при тестах в CE), но только не перемещает значение по адресу.   FSTP [здесь указывается адрес или регистр] FINCSTP   Если нужно вытолкнуть значение из ST(0), а адрес куда его выталкивать не нуже

MasterGH

MasterGH

CE Lua выход из рутины до ближайшего цикла

Особенности 1) переход на следующий адрес по инструкциям ветвления вычисляется Lua кодом по ret, jmp, jmp condition до исполнения кода 2) определение опкодов ветвления по readmem без дизассемблериования 3) по тестам последний брейкпоинт снимается на ближайшем цикле   Пример лога до близжайшего цикла, когда поднимается из рутины вверх &#

MasterGH

MasterGH

Часть2. Lua простые регулярные выражения

Если нужно найти начало и конец подстроки. Пример Попробуем найти слово lab в троке gamehacklab.ru print(string.find('gamehacklab.ru', 'lab')) >9 11 Если не найдена подстрока, то вернет nil.   С помощью string.match можем выводить не индексы, а строку print(string.match('gamehacklab.ru', 'lab')) &

MasterGH

MasterGH

Часть1. Lua. Захват выражения в квадратных скобках

Есть такой плагин "AA Maker" и там довольно интересные регулярные выражения на Lua. Разберем некоторые выражения   Выражение ''%[(.*)%]' - захват всего, что в квадратных скобках   Пример local s = 'mov eax, [ecx + 4]' print(string.match(s, '%[(.*)%]')) --> ecx + 4 Символ "%" нужно всегда ставить перед специальными символами такими как ^

MasterGH

MasterGH

Пример. Lua генерируем код

Функция loadstring позволяет исполнять текст как код. Попробуем генерировать числа, сравнения чисел и логику И, ИЛИ. Цель: просто пример.   Создать пары случайных чисел А и Б. Случайно сравнить попарно. Создать случайно логику  "И, ИЛИ" и сравнить результаты сравнения до тех пор, пока не будут истинны    

MasterGH

MasterGH

Notepad++ и CE Lua. Автозавершение строк

  Можно в редакторе сделать автозавершение инструкци для CE Lua и даже для CE Autoassembler.   Накидал пример, может быть, кому интересно будет для других языков. Установка. Поместить файл в директорию на скриншоте   lua.xml   Настройки

MasterGH

MasterGH

Форма Cheat Engine

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

MasterGH

MasterGH

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

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

MasterGH

MasterGH

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

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

MasterGH

MasterGH

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

        Репозиторий   1. На адрес устанавливается брейкпоинт. 2. Идем в игру делаем или не делаем что-то 3. Начинают срабатывать инструкции на брейкпоинте 4. От каждой инструкции начинается трейслог, подобный тому, который есть

MasterGH

MasterGH

Пошаговая отладка Lua скриптов в Cheat Engine

Открываем Lua консоль из дизассемблера Пишем Lua скрипт Дальше по шагам как на картинке   Сколько я не пользовался CE я никогда не знал об этом отладчике. Когда я случайно узнал, то был приятно удивлен. Если мы пишем какую-то функцию и она дает сбой, то её можно отладить как на скриншоте. Это может быть и не функция.

MasterGH

MasterGH

Книга программиста из Electronic Arts (официальная ссылка)

Опубликованная в веб формате книга на официальном сайте. Язык английский   Перейти   Оглавление книги   Книга о приемах программирования больших проектов, в которых огромное количество строк кода. Основная проблема, когда ты уже что-то написал и надо добавить в уже существующий проект внушительный функцио

MasterGH

MasterGH

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

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

MasterGH

MasterGH

Lua Plugin CE Disassembler

Обновление плагина   Установка с репозитория: ссылка     Кратко 1. Добавил сохранение/загрузку параметров. Хранение в текстовом файле в папке autoruns 2. Добавил настройки графического интерфейса (слайдеры, пункт меню) Подбронее  

MasterGH

MasterGH

Исследование условия связанного со спавном

1. Нашел адрес патронов 2. Поставил брейкпоинт 3. Выкинул из рук Калаш с этими патронами 4. Увидел инструкцию, которая срабатывает когда что-то выкидываешь.   Решил зацепиться за эту инструкцию.   Либо спавн до инструкции, либо после. Сделал трейслог из рутины на этой инструкции и

MasterGH

MasterGH

Визуализация графов. Метод связывания ребер

Связь точек линиями и связь через метод описанный в статье   Пример1. Слева линии, справа работа алгоритма     Пример2. Скриншот из pdf документа с разным значением коэфициента     Пример3. С альфа и без альфа канала   &#

MasterGH

MasterGH

CE Lua программа пишет программу

Функция loadstring исполняет строку кода как функцию. f = loadstring ("print 'hello, world'") f () --> hello, world Есть еще и такая функция как string.dump. Она создает строку из функции function f () print "hello, world" end s = string.dump (f) -- Можно строку тут же запустить как код loadstring (s) () --> hello, world Если по обратной связи строить и исполнять строку кода, то

MasterGH

MasterGH

CE Lua ColorPicker (скрытый компонент)

Чтобы получить цвет из компонента нужно найти его на форме CE через Lazarus. Этот компонент нельзя найти визуально, он скрыт. Узнал об этом случайно, когда зашел на форум Cheat Engine в тему расширений на Lua. Теперь в дизассемблере можно будет быстренько цвета менять

MasterGH

MasterGH

Lua ООП конспект

Пригодится для создания больших плагинов в Cheat Engine. Более ~500 строк   Наследование   Инкапсуляция   Полиморфизм   Спасибо автору за исходники.

MasterGH

MasterGH

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

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

MasterGH

MasterGH

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

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

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