CELua[RU]
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти
    1. Главная
    2. MasterGH
    3. Темы
    Не в сети
    • Профиль
    • Подписки 1
    • Подписчики 1
    • Темы 129
    • Сообщения 252
    • Группы 4

    Темы

    • MasterGHM

      Structure hunter (beta)

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена Плагин-строй
      16
      0 Голоса
      16 Сообщения
      3k Просмотры
      MasterGHM
      Вот детальный анализ недочетов текущего подхода, направления для улучшений и инновационные способы интеграции ИИ: --- 1. Что не учли в текущей реализации 1.1 Динамическое изменение структур - Проблема: Игры с procedural generation (например, Starfield) могут менять расположение полей во время выполнения. - Решение: Добавить мониторинг паттернов доступа: function TrackStructureChanges(baseAddr) while true do local newLayout = AnalyzeStructure(baseAddr) CompareLayouts(lastLayout, newLayout) -- Алерт при изменениях sleep(1000) end end 1.2 Мультиплатформенная поддержка - Упущение: Нет оптимизации под ARM (Android/iOS) и консоли (PS5/Xbox). - Исправление: Добавить детектор ABI: function GetPlatformType() if readMemory(0x10000, 4) == 0x7F454C46 then return "ELF" -- Android/Linux elseif readString(0, 4) == "XBOX" then return "XBOX" end end 1.3 Обработка сетевых структур - Пробел: Не анализируются пакеты сетевого протокола, хотя они часто дублируют игровые структуры. - Доработка: Интеграция сниффера пакетов: function HookNetworkPackets() -- Фильтрация пакетов, содержащих координаты игроков PacketSniffer.filter("PlayerPosition", "xx xx ?? ?? xx FF") end --- 2. Ключевые направления для улучшений 2.1 Гибридный статико-динамический анализ - Идея: Комбинировать результаты CE с Ghidra: graph LR CE[Динамический анализ в CE] -->|Экспорт| Ghidra Ghidra[Статический анализ] -->|Импорт паттернов| CE 2.2 Система предсказания смещений - Метод: Использовать статистику обращений для предсказания важных полей: function PredictImportantOffsets() local stats = CollectAccessStats() return { health = stats.mostAccessed[1].offset, ammo = stats.mostWritten[3].offset } end 2.3 Визуализация в 3D - Инновация: Отображение структур как графа в 3D-пространстве (используя Cheat Engine's OpenGL): function Draw3DStructureGraph() for addr, links in pairs(graph) do RenderNode(addr, links, GetStructureColor(addr)) end end --- 3. Интеграция ИИ: конкретные применения 3.1 Классификация типов данных через ML - Подход: Нейросеть анализирует паттерны памяти: # Образец модели PyTorch class TypeClassifier(nn.Module): def forward(self, x): # x: [значения памяти, контекст инструкций] return torch.softmax(self.layers(x), dim=1) # Вероятности типов - Использование в Lua: function AIDetectType(address) local tensor = MemoryToTensor(address, 64) local result = ExecutePyScript("model.predict", tensor) return {"float", "int", "pointer"}[result] end 3.2 Генерация эксплойтов через ИИ - Пример: Автоматический поиск уязвимостей: function FindVulnerabilities() local patterns = AI_GenerateCrashPatterns() for _, pattern in ipairs(patterns) do if TryCorruptMemory(pattern) then LogExploit(pattern) end end end 3.3 NLP для анализа игрового кода - Применение: Автоматическое комментирование структур: function GenerateComments() local code = Disassemble(0x123456, 50) local comment = AI_AnalyzeCode(code) SetComment(0x123456, comment) -- Например: "Рендеринг частиц, цикл из 12 итераций" end --- 4. Практические примеры улучшений 4.1 Для читеров - Авто-определение уязвимостей: -- ИИ ищет паттерны для телепортации local teleportCheat = AI_FindMemoryPattern({ "float x,y,z", "write frequency > 1Hz", "range -1000..1000" }) 4.2 Для моддеров - Генерация SDK для модов: GenerateModSDK({ structures = analyzed_graph, hooks = FindCodeHooks(), api = AI_GenerateAPI() }) 4.3 Для разработчиков - Детектор багов: -- ИИ находит некорректные указатели local bugReports = AI_ScanFor( "dangling pointers", memory_ranges, expected_patterns ) --- 5. Что еще можно улучшить? 5.1 Оптимизация Проблема Решение Медленный поиск Кэширование + параллельные потоки Ложные срабатывания Ансамбли ИИ-моделей 5.2 Безопасность function AntiAntiCheat() -- Маскировка брейкпоинтов под легитимные вызовы HideDebugger({ stealth_mode = "SYSTEM_CALL", fake_patterns = GetNormalTrafficSamples() }) end 5.3 Пользовательский опыт \-- Голосовое управление читами RegisterVoiceCommand("дай бессмертие", function() SetGodMode(true) end) --- Итог: дорожная карта улучшений Срочные доработки (1-2 недели): Динамический трекинг структур ARM/консольная поддержка Среднесрочные (1-3 месяца): Интеграция ИИ для классификации 3D-визуализация Долгосрочные (6+ месяцев): Полный AI-ассистент для реверса Генерация читов через NLP Пример коммита для начала работ: \+ function AI_Integration() { \+ // Добавляем вызов Python ML-модели \+ local result = ExecutePython("predict_type.py", memoryDump) \+ } Готов реализовать любое из этих улучшений в вашем форке. Какое направление наиболее приоритетно?
    • MasterGHM

      Базовые уроки по node.js

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена MasterGH
      1
      0 Голоса
      1 Сообщения
      72 Просмотры
      Нет ответов
    • MasterGHM

      Сохранение данных в SQL Lite (пример)

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена MasterGH
      1
      0 Голоса
      1 Сообщения
      60 Просмотры
      Нет ответов
    • MasterGHM

      Репутация

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена Новости
      2
      0 Голоса
      2 Сообщения
      2k Просмотры
      MasterGHM
    • MasterGHM

      Как добавлять видео ролики

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена Новости
      2
      0 Голоса
      2 Сообщения
      73 Просмотры
      MasterGHM
      Пример со спойлером ||https://www.youtube.com/watch?v=ATtIG64kKGU||
    • MasterGHM

      Реакции на пост

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена Новости
      2
      0 Голоса
      2 Сообщения
      53 Просмотры
      MasterGHM
    • MasterGHM

      Как менять цвет текста

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена Новости
      1
      1
      0 Голоса
      1 Сообщения
      45 Просмотры
      Нет ответов
    • MasterGHM

      Как делать Spoilers и д.р.

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена Новости
      1
      0 Голоса
      1 Сообщения
      36 Просмотры
      Нет ответов
    • MasterGHM

      Обновление форума

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена Новости
      3
      0 Голоса
      3 Сообщения
      2k Просмотры
      MasterGHM
      Да, нет, наверное. Вчера, что обсуждали.
    • MasterGHM

      Опрос. На чем создаю читы?

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена Новости
      1
      0 Голоса
      1 Сообщения
      167 Просмотры
      Нет ответов
    • MasterGHM

      CE Dissect Data Scaner 1.0.2 (4 hardware breakpoints)

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена Плагин-строй
      6
      2
      0 Голоса
      6 Сообщения
      258 Просмотры
      MasterGHM
      Сегодя или завтра еще выложу исходники на другой аналогичный плагин (не новый). Там breakpoint на область памяти (на структуру). Но это все старые иходники. Видео по нему у меня есть на yutube канале. Если, кто захочет усовершенствовать плагины, то, наверно, я могу создать отдельную ветку репозитория и кто-то сможет коммитить туда изменения. Аналогично используя форум и репозиторий возможна совместная разработка таблиц и исходников на CE для плагинов и для игр. Просто нужно чтобы, кто-то инициировал. Если, кто сможет организовать это все, то смогу дать необходимые права. Временм у меня к сожалению, не много. Но если что-то подсказать, то буду связи.
    • MasterGHM

      CE Plugin: AA Maker 2.4.2

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена Плагин-строй
      7
      2
      1 Голоса
      7 Сообщения
      281 Просмотры
      PitronicP
      Хотя можно добавить в это окно как на скриншоте я стрелкой показал. одновременно и имя в таблице и имя скрипта в асм.
    • MasterGHM

      CE Lua Крестики и нолики

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена MasterGH
      1
      1
      0 Голоса
      1 Сообщения
      39 Просмотры
      Нет ответов
    • MasterGHM

      CE Stack Viewer

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена Плагин-строй
      1
      1
      0 Голоса
      1 Сообщения
      35 Просмотры
      Нет ответов
    • MasterGHM

      CE Tiny Dumper

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена Плагин-строй
      2
      1
      0 Голоса
      2 Сообщения
      57 Просмотры
      MasterGHM
      Пошаговое руководство по Tiny Dumper В этом руководстве по шагам описано как снять дамп со стека и раструктуризовать его. Если лень читать, то предлагаю посмотреть хотя бы последний скрин. Там можно увидеть результат. Это самый важный скрин. Перед запуском CE устанавливаем файлы плагина в папку autorun (frmTinyDumper.xml и TinyDumper.lua) Запускаем игру например "Painkiller - Battle out of Hell 1.64" поставленная в оконный режим через 3DAnalyze. Оконный режим ставить обязательно, т.к. будет пошаговая отладка. В противном случае игра зависнет, а с CE рабтать нельзя будет Запустить CE с установленным плагином и подключиться к игре Ищем адрес здоровья (или брони, или патронов), тип Double (8 байт) 0x24571EA8 = 99.2900238037109 Ставим бряк на доступ или на запись на адрес 0x24571EA8 Идем в игру и встаем под удар персонажем Появляются инструкции и там же нажимаем на кнопку Stop, чтобы бряки не мешались в окне бряков Берем например инструкцию 1015C194 - 89 53 08 - mov [ebx+08],edx По ней идем в дизассемблер и на инструкции жмем F5 - установка бряка на доступ Открываем окно бряков, выделяем инструкцию и пишем условие на прерывание с остановкой процесса EBX==0x24571EA0 (это условие взяли, потому что ebx находится в инструкции, а значение взяли EBX из отладчика) Нажимаем Ок, идем в игру 9. Видим, что произошла остановка игры 10. Открываем окно ТиниДампера Пишем значение регистра esp и название будущей зарегенной метки Нажимаем "Dump and Close" и CTRL+U чтобы видеть под рукой зареганные ваши метки Открываем окно расструктуризации CTRL+D и пишем метку в свободное поле Далее следуем действия как на рисунках Наконец результат Не только сохраняются данные, которые пропадут на следующий такт процессора, но и расструктуризовали и можем сравнивать эти данные с другими дампами стека. Зачем, как и для чего это выходит за рамки этого руководства. Сейчас процесс игры остановлен на бряке кода. Чтобы продолжить игру. Удаляем бряк из окна бряков и отпускаем игру по F9. Теперь снимаем другие дампы на том же адресе для адресов здоровья врагов на предмет отличиях их или для поиска указателей... Во всяком случае сохраненный дамп может дать какие-то подсказки и зацепки. Главное не начать новый уровень игры или не загружать сохранения, т.к. обычно при переходе на новый уровень данные могут измениться... На этом пока все ----- Tiny dumper 1.2 Сравнение структур после перезагрузки. Поиск фильтра свой-чужой-дружественый Запускаем игру, запускаем CE и присоединяем процесс игры к CE Сохраняем игровой слот перед тем как искать структуры Находим три структуры игроков: свой игрок, дружественный, враг Дампим три структуры из пункта 3 указывая: базовый адрес структуры, уникальную метку Игру закрываем, снова открываем, загружаем слот, присоединяем процесс игры к CE В Tiny dumper 1.2 вызываем контекстное меню правой кнопки мышки и вызываем опцию "Rewrite dumps" - дампы из кеша перезаписываются в память в процесса игры Снова находим три структуры игроков: свой игрой, дружественный, враг В окне расструктуризации создаем три группы Группа1 "Свой игрок": -адрес после перезагрузки -метка из тини дампера своего игрока до перезагрузки Группа2 "Чужой игрок": -адрес после перезагрузки -метка из тини дампера чужого игрока до перезагрузки Группа3 "Дружественный игрок": -адрес после перезагрузки -метка из тини дампера дружественного игрока до перезагрузки Если повезет, то находим фильтр - фиолетового цвета строка. Если филетовых строк несколько, то запоминаем их смещения и значения на всякий случай Пишем АА-скрипт со смещением фильтра. Правильно написанный АА-скрипт не будет крешить игру. Активируем АА-скрипт и проверяем в игре, что свой и дружественный игроки не получают урон, а вражеские получают урон. Если это не так, то берем другие смещения из пункта 9 и повторяем 10. Если фильтр найти не удалось, то ищем 3 многоуровневых указателя до верхего статического адреса для своего, для 2-х врагов. Открываем Structure Spider. Указываем в поиске уровень вложенности указателей. Попеременно вводим два статических адреса - начала структур своего и чужих игроков. Правило поиска выбираем исходя из типов игроков. Если это свой и чужой, то искать отличные. Если это чужой и чужой, то искать одинаковые. Перезапускам игру и опять проделываем эти действия. Если не нашлось ничего, то что-то делали не так или отличия между группами игроков нет. Однако графический интерфейс обычно связан только с нашим героем и не связан с другими. Поэтому по связи GUI как минимум фильтр свой-чужой можно сделать всегда. Что касается дружественных игроков, то нужно будет исследовать более углубленно.
    • MasterGHM

      Tool C# Regular Expression

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена MasterGH
      1
      1
      0 Голоса
      1 Сообщения
      29 Просмотры
      Нет ответов
    • MasterGHM

      CE mapbranches

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена Плагин-строй
      1
      4
      0 Голоса
      1 Сообщения
      665 Просмотры
      Нет ответов
    • MasterGHM

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

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена MasterGH
      2
      2
      0 Голоса
      2 Сообщения
      66 Просмотры
      MasterGHM
      Трассеровка по ретам ------- На скриншоте 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 Скорость трассеровки должна в несколько раз увеличиться. К сожалению, смогу это узнать, когда перепишу текущий плагин. Там были уже сделаны изменения (все еще сырое для публикации плагина, пока не публикую) Нумерация ветвей Клик на круг — переход в дефоттный дизассемблер Подсвечивать выбранный круг Перерасчет позиций, когда поменялся размер окна Счетчики выполнений инструкций срабатывающих к обращению на адрес Изменен способ рисования связей между ветвями Контекстное меню Показать ветку Контекстное меню Скрыть ветку На скрытой ветви не показываются связи упрощая обзор. Код поднимается снизу вверх. Если одна ветвь ниже другой, то можно её скрыть. Ориентируемся по счетчикам хитов на инструкции Контекстное меню Сброс хитов Оптимизация поиска корневого цикла Выделение связей Оптимизация рисования новых свзей Контекстное меню пауза/продолжение Запуск из контекстного меню при выделеии адреса в главной таблице При закрытии окна снимаются все брейкпоинты Возможность ставить логи на запись из контекстного меню и на чтение в главной таблице CE
    • MasterGHM

      [CE Lua Plugin] Способ раскраски значений найденных адресов

      Отслеживается Игнорируется Запланировано Прикреплена Закрыта Перенесена MasterGH
      1
      1
      0 Голоса
      1 Сообщения
      27 Просмотры
      Нет ответов
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 2 / 7