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

MasterGH

Ветераны
  • Постов

    2 999
  • Зарегистрирован

  • Победитель дней

    129

Весь контент MasterGH

  1. Возможно так будет работать: LUA_TEST.CT
  2. На скриншоте 22 ветви трассеровки от адреса патронов не входя в call-ы до корневого цикла. Корневой цикл определяется, когда поиск происходит более трех секунд и не находит ничего. Вполне хватает этого времени. Буду еще повторно тестить и проверять доходит ли он цикла или надо еще что-то придумывать. Желтым выделяется точка, вертикальная полоса ветви и связи с такими же узлами. Узел это адрес выхода из ret Внизу ряд счетчиков от 00 до 99. Если более 99 то отсчет заного. Показывает дианамику обращения к ветвям после нахождения корневого цикла Есть еще несколько функций, которых не видно на скриншоте — в контекстном меню. Анализ можно запустить из окна CE из главной таблицы, выделив адрес и опцию либо на чтение, либо на доступ. При тестах увидел, что логи неполные. Например, первый кружок это инструкция читающая патроны очень часто. От этой инструкции идут вверх множество вариантов ветвей,а у меня один вариант — вертикальная полоска с кружками. От первого круга надо сделать ветвление влево и вправо. Занялся модернизацией этого рисования и оптимизацией. Например, чтобы определить является ли проход по ret, то не нужен дизассемблер. Залез в доки и посмотрел опкоды function IsRet(address) local value = readBytes(address,1, false) return value == 0xC3 or value == 0xCB or value == 0xC2 or value == 0xCA end Скорость трассеровки должна в несколько раз увеличиться. К сожалению, смогу это узнать, когда перепишу текущий плагин. Там были уже сделаны изменения (все еще сырое для публикации плагина, пока не публикую)
  3. Если очень и очень требуется. Можно написать стороннюю программу, которая будет отслеживать ввод и дописывать в этом поле строку. Чтобы найти поле можно поискать всякие исследователи иерархии окон. Типа WinScanner. Навести прицел, увидеть hwnd окна и с ним по циклу работать. Можно попробовать пропатчить сам браузер.
  4. Без понятия, т.к .не с чем сравнивать. На практике не делал ни того и ни другого. На Unity в теории можно сделать универсальный вариант. Любой шутер бери и тебе esp и wh. Поискать только компоненты, которые всегда будут на игроках (капсулы, чарконтроллер, аниматор, или еще другие). Или же еще проще, если gameObject двигается по карте, то сразу валхачим его, забираем ссылку на метариал и меняем шейдер. Материал меняешь — изменения на всех сразу.
  5. ESP или WH на Unity около 50 строк кода на C# в dll .net модуле, который надо внедрить в игру своим или чужим .net dll загрузчиком. API Найти все корневые GameoObject Найти все дочерние компоненты SkinMeshRenderer. Собрать Dictonary словарь из материалов Создать через строку шейдер. Подменить в материалах из словаря шейдер. В Update() фукнции прописать сканер объектов, если появился новый и в нем не заменен материал, которого не было в словаре материалов, то заменить. Как-то так.
  6. На видео показано рисование через поток и рисование без потока Когда происходит рисование без потока, то окно нельзя подвинуть, не работает кнопка и даже не возможно работать с Cheat Engine Код:
  7. Репозиторий 1. На адрес устанавливается брейкпоинт. 2. Идем в игру делаем или не делаем что-то 3. Начинают срабатывать инструкции на брейкпоинте 4. От каждой инструкции начинается трейслог, подобный тому, который есть у CE, но менее тормозной 5. Заканчивается трейслог на инструкции, на 100-ом счетчике после ret-а (об этом пункте будет уточнение). Здесь выходим на коневой цикл 6. Трейслог останавливается и ожидание следующей инструкции, которая сработает на брейкпоинте, она должна быть отличной В итоге мы имеем кучу трейслогов начинающихся с адреса работающего с параметром (например, кол-во патронов в обойме) и заканчивающихся на корневом цикле. Также мы собираем данные об адресах с рет-ами и счетчиками. По этим данным можно нарисовать схему, где ret-ы меняют направление пути прохождения потоком дизассемблерного кода На скриншотах ниже Вертикальные линии со кружками -— это ветвь трейслога Белый кружок — адрес ret-a, который не повторялся Пунктирный кружок — адрес ret-а, который повторялся. Стрелка от такого пунктирного круга будет указывать на белый круг. По схеме видим, где ret-ы меняют свое направление поднимаясь по рутине в корневом цикле По плану по визуальной части: 1. Клик на кружок — переход на код 2. Придумать что-то, чтобы стрелки не накладывались друг на друга 3. Установка брейкпоинтов на кружках — становиться красными 4. Легенда. Номер ветви, связанная инструкция, состояние брейкпоинтов. Комментарий к ветви 5. Загрузка/сохранение легенды Для чего нужно. Для поиска условий, которые включают и выключают ветви кода. Т.е. чтобы можно было это условие быстро найти и изменив его, повторить выполнение кода ветви, которая "пробьётся" из корневого цикла. Таким образом попытаться повторить действие в игре, а если не получаться повторить, то определить дополнительные условия.
  8. От всего форума, от всех пользователей большой респект за видео. Супер
  9. Открываем Lua консоль из дизассемблера Пишем Lua скрипт Дальше по шагам как на картинке Сколько я не пользовался CE я никогда не знал об этом отладчике. Когда я случайно узнал, то был приятно удивлен. Если мы пишем какую-то функцию и она дает сбой, то её можно отладить как на скриншоте. Это может быть и не функция. Например, код прочитал какой-то файл с текстом сохраненных параметров и подсмотрели в пошаговой Lua отладке что происходит дальше. *Действуют горячие клавиши. Например, F7— шаг, F9 — запуск без остановки.
  10. Если интересно, набросал инфу 1. Для увеличения скорости записи в файл можно использовать спидхак (тем же Lua) speedhack_setSpeed(speed) : Enables the speedhack if needed and sets the specific speed speedhack_getSpeed(): Returns the last set speed 2. Таймер может проскочить адрес, в этом случае можно вызывать функцию Lua из AA кода. На форуме где-то была тема. Может быть сложно. 3. Вывод в файл может быть с одинаковыми id-шникиами. Возможно, надо исправить 4. Можно использоваться функцию print('запись') для проверки происходящих действий в скрипте Lua. Т.е. пишет в файл ли, выполняются ли условия, что записал в файл и так далее... 5. Можно использовать звуковое оповещение из Lua, в конце расчета
  11. Опубликованная в веб формате книга на официальном сайте. Язык английский Перейти Оглавление книги Книга о приемах программирования больших проектов, в которых огромное количество строк кода. Основная проблема, когда ты уже что-то написал и надо добавить в уже существующий проект внушительный функционал или же наборот его поменять, или убрать. Хватаешься за галову и думаешь, что проще написать проект заного. Автор из числа тех программистов, которые оставляют свой опыт и знания (есть донат). Порой бывает информация более полезной в блогах чем где-либо, редко бывает в виде книг. Про автора книги знаю очень мало, кому надо можете погуглить.
  12. В этой записи блога не будет чего-то, что показало бы "вау, это что-то новое и есть результат". Все сырое и результат пока мне только снится — быстрый поиск условий и включение, и выключение ветвей по этим условиям. Мыслю я не инструкциями, не группой инструкций, а ветвлениями кода и условиями, которые их запускают. Проще 20 ветвлений по 5 окон, чем тонна инструкций... Жаль пока теория, практики с результатом нет. Рисунок. На нем слева прототип, справа текущий сырой вариант 1) ставим брейкпоинт на адрес патронов 2) от него расплетаются ветви кода от каждого хита, от каждой инструкции, и по ретам ветвление выходит из рутины Кружи означают ret-ы. Клик на круг будет переходлм в дизассемблер Стрелки будут показывать входы и выход связанные с соседними рутинами (поиск общих адресов будет стрелками) На экране справа вариант без стрелок, т.к. не успел еще их отладить. 4 ветки трассера по ретам из рутины связанные с адресом патронов, выстрелами. Потом я продолжал стрелять, перезаряжаться, выкидывать и поднимать оружие. В итоге собрал 20 ветвлений по ретам от инструкций связанные с патронами Как видно, довольно все еще сырое, но видно, что все 20 ветвлений по ретам сформировались до корневого цикла. Потом можно будет, я надеюсь, увидеть связи между этим ветвлениями, когда я прикручу стрелки. По кружкам кликать и переходить в дизассемблер и смотреть условия выше. На условии искать другие адреса, которое запускает ветвь кода. На адресах опять делать ветвления (новое окно с ветвлениями о ретам)... На практике будет получаться более двух таких окон (для патронов). Нужно будет искать адреса связанные с условиями в новом окне.
  13. MasterGH

    Lua Plugin CE Disassembler

    Обновление плагина Установка с репозитория: ссылка Кратко 1. Добавил сохранение/загрузку параметров. Хранение в текстовом файле в папке autoruns 2. Добавил настройки графического интерфейса (слайдеры, пункт меню) Подбронее Слайдеров много, сам путаюсь в них, какие за что отвечают. С цветами экспериментировал не понравилось, пока оставляю градацию "черный-белый". Для тех кто видит в первые этот плагин. Плагин планируется развивать дальше, сейчас это черновой вариант
  14. Использование. Код выше вставляем в редактор Lua кода, а ниже пишем -- Инициализация (файл ищем в папке "autorun") classSettings = ClassSettings:New('userdata.txt', '*.txt') -- Пример сохранения параметров "Ключ - Значение" classSettings:Set('Name', 'MasterGH') classSettings:Set('Name2','Xipho') classSettings:Set('Color', 0xFFFFFF) -- Сохраняется так classSettings:Save() -- Пример загрузки print(classSettings:Get('Name')) print(classSettings:Get('Name2')) print(classSettings:Get('Color')) И запускаем. Данные в файле после сохранения Name MasterGH Name2 Xipho Color 16777215 Сохранение по паре "Ключ — Значение", где Ключ должен быть уникальным. Для трейнеров на CE скрипт надо переписать, чтобы путь был не в папке autoruns, а по пути, который выберите. Это может быть директория трейнера или временная папка Windows. ------------- Это пригодится для сохранения таких параметров как цвет, шрифт, чекбоксы, слайдеры, положение и размер элементов. Например, положение формы или другие настройки
  15. MasterGH

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

    Нет. Класс TFontDialog не описан в mainLua. Есть еще два варианта через создание потока. С его помощью вызывать уже готовую функцию создания диалога (еще найти её придется в Lazarus-е в пошаговой отладке), либо на WinAPI через ассемблерный код. С этими двумя вариантами я не могу помочь.
  16. MasterGH

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

    Отличные компоненты в разных версиях
  17. MasterGH

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

    TFormDesigner Его нет и у меня Я просто Дизайнер открыл, когда исполнил скрипт. Вот он и залетел в список, т.к. проинициализировался. Теперь я его закрыл. Выполнил скрипт. Теперь его не видно
  18. MasterGH

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

    Мда, на 6.5 TFontDialog класса нет
  19. MasterGH

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

    Вывести список уникальных классов и версию Cheat Engine
  20. MasterGH

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

    Скорее всего, так у всех Такого компонента нет
  21. MasterGH

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

    В CE 6.6 есть такая кнопочка И она вызывает диалог выбора шрифта. В CE 6.5 возможно его и нет
  22. MasterGH

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

    Еще вариант поиска по названию класса. Ищет по всем доступным окнам CE. Не нужно знать имя компонента. Ну и не нужно теперь лазить в Lazarus-е
  23. MasterGH

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

    Значит нет диалога шрифтов, или у него имя другое, или обращение к нему по имени невозможно. Пока не знаю как решить эту задачу
  24. MasterGH

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

    Вызывать print('Start') print(getSettingsForm()) print('1') print(getSettingsForm().FontDialog1) print('2') print(getSettingsForm().FontDialog1.Font) print('3') Без ошибок будет так (адреса будут отличаться) Start 0989C7F0 1 00324690 2 0B946F40 3 Там где ошибка будет, там проблема и текст дальше выводиться не будет.
×
×
  • Создать...

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

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