-
Постов
2 999 -
Зарегистрирован
-
Победитель дней
129
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент MasterGH
-
Если очень хочется, то можно
-
Запустить игру в оконном режиме Поставить брейкпоинт, задать ему условие прерывания. Прерваться на брейкпоинте по F9: "раз", "два", "Три". Снять брейкпоинт по F5. Выделить следующую инструкцию, которая еще не выполнилась. Поставить трейссер и отпустить по F9. Все
-
Для тех кому интересно, вопрос к ним. Какие критерии можно добавить спрашивая оценку плагина? Например, по 5-ти бальной шкале спрашивать оценку у пользователей: Необходимость плагина в Cheat Engine Работает без ошибок Понятно как пользоваться Интерфейс плагина Удобство плагина Нравится Простая установка Думаю, прикрутить аналитику прямо в плагины. Там будет как аналитика использования плагина, так и будет опросник выше. Ну и пользовательское соглашение об анонимном сборе данных для улучшения качества приложения. Чтобы можно было улучшать только те плагины, которые устанавливают и которыми пользуются.
-
Обновлен и залит плагин "User Action Logger 1.0 Beta"
-
Версия 1.0 Beta
20 раз скачали
Cheat Engine 6.8.3 Cheat Engine Extensions "User actions logger 1.0 Beta" Repository: https://bitbucket.org/MasterGH/ce-lua-user-actions-logger/src/master/ Author: MasterGH Donations: paypal, mastergh.developer@gmail.com Site: https://gamehacklab.ru/ Youtube channel: https://www.youtube.com/gamehacklabru VK: https://vk.com/gamehacklab How to install: Put files in main directory to chate engine Version: Beta 1.0 (22.018.2019) + Add output base information about user actions + Add GHL panel Files: autorun->User actions logger.lua autorun->GHLLogo.lua autorun->forms->GHLLogo.frm На русском: "User actions logger 1.0 Beta" Репозиторий: https://bitbucket.org/MasterGH/ce-lua-user-actions-logger/src/master/ Автор: MasterGH Donations: paypal, mastergh.developer@gmail.com Сайт: https://gamehacklab.ru/ Youtube канал: https://www.youtube.com/gamehacklabru VK: https://vk.com/gamehacklab Как установить: Распаковать файлы в директория Cheat Engine Версия: Beta 1.0 (22.018.2019) + Добавлены базовые действия в логи + Добавлены ссылки на ресурс game hack lab Файлы: autorun->User actions logger.lua autorun->GHLLogo.lua autorun->forms->GHLLogo.frm -
Планируется улучшать и дорабатывать плагины, показать как с ними работать. 1. Вывод данных в окно логов: сканирование, подключение к процессу, опции сканирования, состояния активации и деактивации записией в таблице CE и другие 2. Запись действий из пункта 1, сохранение этих действий и воспроизведение по кнопке или горячим клавишам 3. Показ в дизассемблере CE ветвлений кода при проходе потоками разными цветами (можно видеть код, который не был пройден в разных ситуациях) 4. Дополнительное окно дизассемблера с опциями подсветки инструкций по типу в градации черно-белых цветов: математические инструкции, логические инструкции, инструкции ветвления, на чтение и запись. 5. Улучшение плагина "Dessect Data Scanner" с DBVM или на 4-HW брекйпоинта. В случае DBVM количество брейкпоинтов не ограничено и можно определить тип данных одновременно для каждого байта в структуре по смещениям, а в случае 4-х байтов это в режиме без DBVM одновременно задействуются все 4 hw брейкпоинта, а не 1 hw как сейчас. Extensions:
-
У меня бывают такие случаи, когда увидишь простой пример кода после которого захочется заняться разработкой какой-нибудь игры. Вот один из таких примеров о том, как сделать подъем и опускание предмета и затем его вращение. Это 5 строчек "таких" и 5 строчек "таких", вот подъем и вращение На видео код можно применять для левитации предметов и вражеских персонажей, которых можем поднимать, удерживать и бросать.
-
Программирование с помощью патернов проектирования
MasterGH опубликовал запись в блоге в Блог MasterGH
Отличная книга по изучению паттернов проектирования. Ее можно читать со шпаргалкой по паттернам (иллюстрацию по паттернам можно загуглить). Перед этим еще загуглить SOLID + Unity . До кучи еще алгоритмы и структуры данных. Все это пригодится, чтобы пойти работать на программиста игр или приложений с разными типами реальности: дополненная, виртуальная и смешанная. А так же сейчас можно встретить вакансии по программированию не только Android, iOS устройств, шлемов и очков, но различных устройств и дронов. Об алгоритмах может быть позже напишу -
Вот так заработало (из utf8 в ansi) Если не будет работать тогда проверить путь. local pathRU = "C:\\Текстовый фaйл.txt" local utf8Path = utf8ToAnsi(pathRU) local file, error = io.open(utf8Path) print (file, error) Одинарные символы "\" заменить на "\\". Если и это не поможет, то в текстовым файле (справочнике CE Lua) есть классы для работы с файлами на чтение и запись.
-
Нет времени, пока напишу заметки. 1. Можно сделать плагин с визуализацией счетчиков обращений к видимым данным в MemoryView с подключенным DBVM. 2. По аналогии в Dessect Data Scanner сделать выбор DBVM режима. DBVM позволяет обойти ограничение в 4 аппаратных брейкопинта и в реальном времени визуализировать данные, которые обращаются к памяти на чтение, запись. Показывать счетчик обращения и даже показывать спискок инструкций при наведении курсором на байт или иные данные в MemoryView. В случае c Dessect Data Scanner может ускорить расструктуризацию, а не по 1-ому брейкпоинту снимать показания X секунд пробегаясь по структуре. Кстати, кто-нибудь шарит в алгоритмах, структурах данных и паттернах проектирования? Если шарите, поделитесь в каких задачах применяли.
-
Как вариант поискать и смотреть техническую документацию по компилятору или изучать выполнение декомпилятора под дизассемблером. Там должно быть условие, которое выводит ошибку при парсинге строк кода. Если предположить, то сделали так специально, чтобы не было cmp eax, value je label1 ; альтернатива "switch/case" ; ... label1: sub esp, 4 ; инициализация типа int a = 5 mov [ebp+4], 5 по "протоколу" возможно никогда не делают прыжки на sub esp после прыжка просто так. Это делается, как я предполагаю, в начале функции или в фигурных скобках обозначающих поостранство имен внутри case, или под switch до первого case, или на последнем case... В общем как захотели компилятор написать так и написали. Либо по каким-то причинам техническим, либо по "своим" правилам. А может чтобы упростить разработку и сроки "не дописали", просто ошибку вывели. Статья про switch case под дизассемблером на трех компиляторах. Там, конечно, нет вариантов как в этой теме,но их можно самостоятельно под отладкой посмотреть
-
Менять лого, конечно, бестолковое дело. Допустим это нужно для шутки или для себя лично. Далее меняем лого через файл, поместив его в директорию CE с названием например NewLogo.png local fullpath = getCheatEngineDir()..'/'..'NewLogo.png' SwitchLogo(fullpath) Или меняем через URL (нашел я случайный вариант) Чтобы вручную Lua функции не вызывать, создаем Lua файл и кладем в папку автозапуска и лого будет меняться при запуске CE
-
Весь интерфейс в теории можно сверстать в самом игровом движке. Потом создать специальный модуль (asset) и изнутри игры его загружать в неё саму. Я делал это в Unity играх несколько раз и это было интересно. Фактически всю игру, механику и интерфейс можно контролировать и быстро поменять, но с условием, что в рантайме увидешь быстро игровые обьекты и их свойства. Например можно сделать ассет летающей обзорной камеры. И вроде такие ассеты можно создавать и изнутри игры и их грузить в другие игры
-
Здесь задаются условия срабатывания брейкпоинта (нажать Ctrl + B). Нужно заранее знать EIP или RIP адреса инструкций, которые нужно исключить.
-
try/except на последней версии CE 6.8.3 должно работать {$try} mov eax,[ecx+10] jmp short noerror {$except} xor eax,eax noerror: Может быть, ты свой скрипт покажешь, если хочешь конечно Под except нужно восстановить оригинальное значение. Хотя я думаю, не поможет этот try/catch. Будет вылетать на других инструкциях
-
Алгоритм: 1. Левая часть1 строки из пробелов создается на N-1 символ за проход цикла 2. Правая часть2 из "X" увеличивается на +1 символ за проход цикла 3. Левая и правая части соединяются в строку и выводятся Реализация на CE Lua (знаю, что не на C++, поэтому оффтоп) local N = 30 for i=0,N do print(string.rep('_',N-i)..string.rep('X',i)) end
-
Этот пример стоит попробовать, я и забыл про этот синтаксис, но только исключение может быть в другом участке кода, например, из-за записи значения вместо указателя и другой участок кода вызовет исключение. Так что решили проблему? По Lua я не помогу, т.к. пока очень мало времени. По Lua я бы сделал иначе. Там нужно вызывать Lua функцию через AA. Если будет время, покажу пример.
-
Теоретически. Как пример для любой игры сингловой или мультиплеерной: 1. Ищем адрес координат игрока 2. Ставим брейкпоинт на адрес координат игрока 3. Ищем инструкцию, которая работает со всеми координатами 4. Собираем постоянно в массив самые дальние координаты и узнаем примерную область карты. Вообще зависит от движка игры. Если это Unity, то можно перебрать все коллизии с самым большим размером и дальними положениями, или если есть что-то похожее на Terrain, то найти этот компонент и получить свойства ширины и длинны.