Skip to content
  • Базовые уроки по node.js

    MasterGH
    1
    0 Голоса
    1 Сообщения
    53 Просмотры
    Нет ответов
  • CE Plugin: AA Maker 2.4.2

    Перенесена Плагин-строй
    7
    1 Голоса
    7 Сообщения
    156 Просмотры
    PitronicP

    Хотя можно добавить в это окно как на скриншоте я стрелкой показал. одновременно и имя в таблице и имя скрипта в асм.
    photoeditorsdk-export.png

  • Правила форума

    Прикреплена Новости
    4
    1 Голоса
    4 Сообщения
    2k Просмотры
    PitronicP

    Да я так на будующее.

  • Запустить активирющий скрипт CE 7.5

    Управление
    5
    1 Голоса
    5 Сообщения
    140 Просмотры
    MasterGHM

    Кнопка "^"

  • Выполнение команды lua на кнопках формы

    Решенные Вопросы, комментарии и обратная связь
    23
    0 Голоса
    23 Сообщения
    304 Просмотры
    PitronicP

    Может и я просто забыл. Всё равно работает.

  • Функция autoAssemble

    Приёмы
    2
    1 Голоса
    2 Сообщения
    2k Просмотры
    PitronicP

    Пользователь @MasterGH написал в Функция autoAssemble:

    // Скрипт похожий на таблицу АА

    Маленькое замечание. Два слеша используются для коментариев в асм. На луа используются пунктир не менее двух чёрточек. Если пользователь не разбирается, он не поймёт почему луа выдаёт ошибку. Тему поправил.

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

    MasterGH
    1
    0 Голоса
    1 Сообщения
    37 Просмотры
    Нет ответов
  • Репутация

    Новости
    2
    0 Голоса
    2 Сообщения
    2k Просмотры
    MasterGHM

    image.png

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

    Новости
    2
    0 Голоса
    2 Сообщения
    30 Просмотры
    MasterGHM

    Пример со спойлером

    ||https://www.youtube.com/watch?v=ATtIG64kKGU||

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

    Новости
    2
    0 Голоса
    2 Сообщения
    32 Просмотры
    MasterGHM

    image.png

    image.png

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

    Новости
    1
    0 Голоса
    1 Сообщения
    27 Просмотры
    Нет ответов
  • Как делать Spoilers и д.р.

    Новости
    1
    0 Голоса
    1 Сообщения
    25 Просмотры
    Нет ответов
  • Обновление форума

    Новости
    3
    0 Голоса
    3 Сообщения
    2k Просмотры
    MasterGHM

    Да, нет, наверное. Вчера, что обсуждали.

  • CE Action Logger 1.0 Beta

    Плагин-строй
    4
    0 Голоса
    4 Сообщения
    62 Просмотры
    MasterGHM

    Отправил

  • Безусловные и условные пыжки.

    Обучающие примеры
    1
    1 Голоса
    1 Сообщения
    51 Просмотры
    Нет ответов
  • Ваши группы пользователей

    Прикреплена Не решенные Новости
    5
    0 Голоса
    5 Сообщения
    65 Просмотры
    MasterGHM

    👍 👍

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

    Прикреплена Новости
    1
    0 Голоса
    1 Сообщения
    45 Просмотры
    Нет ответов
  • CE Lua Крестики и нолики

    MasterGH
    1
    0 Голоса
    1 Сообщения
    26 Просмотры
    Нет ответов
  • CE Stack Viewer

    Плагин-строй
    1
    0 Голоса
    1 Сообщения
    20 Просмотры
    Нет ответов
  • CE Tiny Dumper

    Перенесена Плагин-строй
    2
    0 Голоса
    2 Сообщения
    33 Просмотры
    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

    2bf8d038-de92-4de0-88f6-944b9093adf5-image.png

    Идем в игру и встаем под удар персонажем

    Появляются инструкции
    3b2e99be-4a03-455c-a575-28511d347064-image.png
    и там же нажимаем на кнопку Stop, чтобы бряки не мешались в окне бряков

    Берем например инструкцию

    1015C194 - 89 53 08 - mov [ebx+08],edx
    6ad80302-80f1-4905-8bac-bdbfbb930bfd-image.png
    По ней идем в дизассемблер и на инструкции жмем F5 - установка бряка на доступ

    2755fb71-f09c-4815-88c7-191fbfdf2dc7-image.png

    Открываем окно бряков, выделяем инструкцию и пишем условие на прерывание с остановкой процесса

    EBX==0x24571EA0 (это условие взяли, потому что ebx находится в инструкции, а значение взяли EBX из отладчика)

    2c1e1ed4-0df0-4314-981f-f8e31550959d-image.png
    43e9dfd5-1c49-4bf2-bf1a-b588c308181c-image.png

    Нажимаем Ок, идем в игру
    9. Видим, что произошла остановка игры
    148b600b-4ffe-4e2c-893a-df3330aff53f-image.png
    10. Открываем окно ТиниДампера
    6db64901-ca0e-4d32-8be9-2fcb27894556-image.png

    Пишем значение регистра esp и название будущей зарегенной метки
    26586a39-c6f1-40ee-a44b-bd966578e736-image.png

    Нажимаем "Dump and Close" и CTRL+U чтобы видеть под рукой зареганные ваши метки

    7f7a0d40-9107-4c19-b13f-2105a57422a5-image.png

    Открываем окно расструктуризации CTRL+D и пишем метку в свободное поле
    1104aed5-e0c1-45bd-b880-877433c6c1a1-image.png

    Далее следуем действия как на рисунках
    9cac0888-208c-4f0e-9ae2-b53f6c49aeb4-image.png
    7db1307b-9305-4fd6-9b34-e75c2c8cc466-image.png

    Наконец результат
    6d506668-7bed-4cae-9c22-47af124c0c16-image.png

    Не только сохраняются данные, которые пропадут на следующий такт процессора, но и расструктуризовали и можем сравнивать эти данные с другими дампами стека. Зачем, как и для чего это выходит за рамки этого руководства.

    Сейчас процесс игры остановлен на бряке кода. Чтобы продолжить игру. Удаляем бряк из окна бряков и отпускаем игру по 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 как минимум фильтр свой-чужой можно сделать всегда. Что касается дружественных игроков, то нужно будет исследовать более углубленно.