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

MasterGH

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

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

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

    129

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

  1. Игра на движке Unity. Можно через Cheat Engine Mono найти функции и с ними работать. Можно встроить или модифицировать код, как здесь в примере через dnSPY.
  2. Пошаговая отладка в Cheat Engine подскажет что не так. Заранее вручную создаем newMem-память, метку и вручную запускаем поток и там делаем пошаговую отладку. Разбираемся в причинах. Правим. Проверяем и так пока не будет работать.
  3. Видео-то не плохое, хорошее. Все подробно изложено и работает. Что можно улучшить до идеала. Попробовать кому-нибудь аналитику прикрутить с проверкой нашлась сигнатура или нет. Результат попробовать отправлять в сервис аналитики. Возможно Firebase или что-то похожее
  4. Принцип: SOLID, KISS, DRY 1) через OOP в Lua 2) через вложенные функции в Lua 3) через "код пишет код"
  5. Сканер запускаем в таком виде. Потом выставляем настройки. Потом идем сразу в игру, чем быстрее тем лучше и делаем так, чтобы значения в структуре менялись с бОльшей вероятностью. Потом ищем структуру Общая картина для Tutorial-i86. Так что работает Это логи, когда сканер ставил брейкпоинт на адрес структуры на доступ. В конце показывается на каких смещениях сработал брейкпоинт Структуру смотреть. Там параметры, которые читались. Если стоит WRITE, то записывались
  6. Dissect Data Scaner должен идти на 6.8.1. Развивать были планы. Как я понял в DBVM, в CE 6.8.X появилась возможность ставить брейкпоинт на всю структуру сразу, а не довольствоваться аппаратными брейкпоинтами из которых плагин использует только 1-аппартный брейкпоинт на настраиваемую пользователем X—задержку, на +1 байт по всей структуре.
  7. Да, нельзя, я посмотрел. Прошу прощения, что ввел в заблуждение. Сам не проверил. Тогда остается писать Lua плагин в том же TinyDumper-е по сохранению и восстановлению многоуровневых структур. К сожалению, пока некогда им заняться и не понятно когда будет время. Там по циклу получается определять структуры через autoguess и делать рекурсию по X вложенности при этом сохраняя значения. Потом придумать формат сохранения бинарный, т.к. строками — будет много. Потом придумать как это обратно восстановить через alloc() -и в памяти. Поменяются поинтеры и Spider может их показывать как результат сканирования, это может мешать... Довольно это трудоемко, пока не планирую этим заниматься, но могу подсказать как это написать на Lua в TinyDmper-е, на какие функции внимание обратить и как реализовать.
  8. Через АА примерно так делать можно, где в originalbytes будет адрес Через Lua:
  9. Делать инъекцию ниже где идет xmm0 438F5884: 66 0F D6 45 A8 - movq [ebp-58],xmm0 так проще. Ну а чтобы до того адреса добраться, то на АА разные варианты подбирать либо быстрее на Lua через поиск сигнатуры и + смещение. Либо через поиск сигнатуры и дизассемблирование
  10. Для +1 уровня в Spider-е не должно быть очень долго для структуры размером с 0x1000. Долго начинается +3 и выше. Я все-таки предлагаю помучиться со сканированием в Spider-е. 1. Ищем первый раз + 1lvl Pointer, пишем в файл дамп 2. Меняем значение в игре. Если оно редко меняется, то делаем так чтобы менялось чаще. Например, загрузка игры с разными сохранениями. 3. Делаем отсев "изменилось" по адресу структуры (он поменяется, его заново найти) в новый файл. На этом шаге уже будет результат отсева, а не весь дамп в отдельном файле как дамп из пункта1. Отсев дальше быстрее пойдет Ну и так далее...
  11. Говоришь полный мануал и чтобы все функции были написаны. Тогда качай исходники Cheat Engine Lock не сохраняет копии вложенных структур. Тут ничего не подскажу, кроме как свой плагин CE Lua писать. К сожалению, не запоминает. Не обещаю, что сделаю эту функцию В каких случаях это могло бы пригодится? Можно же сравнить не Lock структуру с не Lock структурой и никаких проблем. А вот со стеком, возможно бы пригодилось как эксперимент. Вообще лучше Dark Byte напиши предложение об этом, чтобы над lock recursive подумал стоит делать или нет для стека как минимум. Уже есть 6.8.1 и там были фиксы
  12. Ну и накатал же я пост. Давно счеты со Spider-ом. Толком им не пользовался. Я не уверен, что знаю все о Spider-е. Поскольку возник такой вопрос, то решил снова им заняться, но уже более детально. Пришлось кучу скринов наделать. Со "structure spider" более менее разобраться можно на практике и 9-тым туториалом. has shadow — адрес структуры—копии. Можно сделать поставив галку Lock в окне Dessect Data на адресе. Делает копию структуры (например стека или данных игрока до перезагрузки уровня) Сравнивать можно как в Desssect Data так и в Spider-е. Смотря что и как ищешь. Определяется экспериментально. *Если поставить Lock и вызывать Spider, то данные о Shadow адресе сами заполнятся. Можешь попробовать, самому их можно не заполнять. Но Dissect Data — для ручного визуального сравнения. Запускаем 9-тый туториал и пытаемся понять. Слева окно с Lock адресами. А в окне справа поставлены их shadow copy (их можно посмотреть как на примере, на скрине выше строка "Lock (Shadowcopy at 00350000)") Там, где мелкие стрелки и если там удалять адреса, то обновляется значения shadow и не shadow (синий цвет текста и данные будут появятся в таблице результатов). Т.е. можно сравнивать как копии, так и не копии очищая и возвращая значения в полях ввода. Shadow рекомендуется для сравнения дампов стеков Но есть более лучшее средство чем Spider. Я писал о нем у себя в блоге Scan for commonalites на окне определения проскакивающих адресов Разница в значениях по EBX с типом float Разница в группах (для потенциального фильтра) с типом 4 byte (опция Only find matching groups) Все три инструмента: DissectData, Spider и Structure Compare могут помочь что-то сравнить и найти. Structure Compare появился в версии CE 6.8
  13. Сканер памяти, брейкпоинты, дизассемблер. Пошаговая отладка или трейслог. Возможно сравнения дампов стека. Cheat Engine и IDA в помощь
  14. Первые hex-коды опкодов остаются, остальные заменяются звездами, чтобы была совместимость с бОльшим количеством сборок игр. Не факт что это прокатит, совсем не факт. Оригинальные опкоды, которые затираются звездами лучше не затирать, т.к. инъекция кода может не работать с тем, что под звездами оригинальных окодов. Объяснил как смог. Короче, лучше на всякий случай без звезд делать инъекцию так как делает обычный шаблон Cheat Engine. Потенциал от ААMaker все же есть — это генерировать АА по своему шаблону, но с сигнатурой косяк вышел (см. выше). У AAMaker есть альтернативы на сайте Cheat Engine. AAMaker не планировал обновлять, но все возможно
  15. Кстати да. В той теме есть скриптец
  16. Есть класс "Edit Class" в справочнике. Я бы обрабатывал через OnKeyDown function CEEdit1KeyDown(sender, key) -- тут читаем key и возвращаем его, можем править, если key не подходит return key end Поменять VK_3 на тот, что ввел пользователь. Может быть не один KEY createHotkey(function, {keys, ...}) Потом еще нужно ключи сохранить в файл, чтобы не вводить их вновь и читать из файла.
  17. Можно. Открываем celua.txt и смотрим на: "GenericHotkey Class" для привязки по горячим клавишам getAddressSafe("[[здесь указатель+]+]+..") для чтения указателя writeFloat(address,value) для записи значения по адресу "Timer Class" для того чтобы значение морозилось в функции таймера Я думаю, с этими функциями и классами можно написать на Lua.
  18. Тут ничего не подскажешь. Нужно название игры, версия и название чита
  19. Lua скрипт добавить в таблицу. CE будет будет подключаться к процессам по имени и искать уникальную сигнатуру. После того как сигнатура будет найдена подключение к процессам остановится.
  20. Теперь понятно. Там куча процессов. Выбираем последний как на картинке слева Будет работать и поиск и скрипт
  21. Спасибо за логи. Это информация поможет в улучшении плагина. Что можно сделать судя по логам Вариант 1 1) Можно искать не известный тип: 4 байта, float, 1 байт, 2 байта, Double. Либо попробовать сначала сразу все типы: Value type "All" (если это не очень долгий поиск) 2) Затем отсеивание "Увеличилось", "Уменьшилось" пока не найдется адрес Поиск может быть от минуты и более. Вариант 2 с типами данных (4 байта, float, 1 байт, 2 байта, Double) , что и выше, только наоборот, когда значение уменьшается в игре, то искать увеличилось, когда увеличилось в игре — уменьшилось при отсеве. Вариант 3 с типами данных(4 байта, float, 1 байт, 2 байта, Double), что и выше искать изменилось, не изменилось. Вариант 4 искать адрес текста. Ставить брейкопинт на запись и исследовать код. Если не получится найти, как будет время посмотрю игру
  22. MasterGH

    GUI CE

    Вариант. Углы убираются в графическом редакторе у картинки трейнера. Загрузить её в TCEImage. Растянуть TCEImage на всю форму. По ссылке выше есть пример такой подложки, её можно сделать другой. В таблице CE ниже можно заменить картинку на другую с закругленными углами Пример *.CT: transparent.CT
  23. Предлагаю поискать заново с моим плагином логов и эти логи выложить Установка: скопировать GHL_log.lua в директорию Cheat Engine "/autorun"
  24. MasterGH

    GUI CE

    В функциях-обработчиках событий менять картинку на картинку: OnMouseEnter() и OnMouseLeave() на TCEImage компоненте. Отказаться от панели 1. Использовать на форме TCEImage и прозрачность, 2. Использовать UDF1.DragNow() в обработчике OnMouse для TCEImage
×
×
  • Создать...

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

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