CE disassembler
-
Кратко
-
Добавил сохранение/загрузку параметров. Хранение в текстовом файле в папке autoruns
-
Добавил настройки графического интерфейса (слайдеры, пункт меню)
-
Обновления UI
- Гладкая перерисовка, двойной буфер
- Стрелки прыжков сдвигаются вправо при увеличении их количества
- Слайдер яркости фона
- Слайдер количества адресов в невидимой области от 0 до +1К от верхнего и нижнего адресов. Увеличивает количество стрелок для прыжков.
- Стрелки в невидимой области обозначаются двумя цветами.
Один цвет для тех стрелок, у которых адрес прыжка и адрес назначения не выходят в область видимости.
Второй цвет для тех стрелок, которых адрес прыжка или адрес назначения входят в области видимости.
Видимые стрелки обозначаются белым.
На рисуемые стрелки прыжков влияет слайдер яркости. - Не показывать стрелки прыжков для инструкций типа 'jmp [...]', 'jne [...]'...
-
Сохранение и загрузка при заходе и выходе из CE
- значения слайдеров
- верхнего адреса
- выбранного адреса
- параметры шрифтов и других
С цветами экспериментировал не понравилось, пока оставляю градацию "черный-белый".
Основное назначение его показывать приоритетные инструкции более ярким цветом. Инструкции такие как арифметические и логические. Это первый и второй слайдеры. Третий - инструкции на запись, чтение. Четвертый - инструкции ветвления. Пятый слайдер - остальные инструкции. Остальные слайдеры связаны с настройками. Основные из них размер шрифта, яркость фона, вертикальный отступ между инструкциями и другие.
Также в плагин встроена поддержка работы с окнами трейслогов.
Происходит постоянный поиск новых и отсутствующих окон трейслогов... Делаем трейслоги. Двойной клик по адресам и переходим по адресу в дизассемблер (если он открыт) и видим в нем раскрашенные пути маркерами. Если окон много, то видим пересечения, расхождения путей и видим инструкции, которые не выполнялись...Встроено контекстное меню установки брейкпоинтов на call-ы в трейслоге. Если его вызывать, то после идем в игру и, не делая того, что исследуем, прерываемся на брейкпоинтах и снимаем их. Когда больше не прерываемся, то делаем в игре то, что нужно и прерываемся на оставшемся брейкпоинте. На нем исследуем условие входа в рутину. Тут как бы можно на страх и риск изменить условие, чтобы ветка кода повторила свое выполнение. Если позволяет, то выполнить поток вызвав call... Но я придерживаюсь варианта изменения данных для того чтобы поток сам повторил рутину. Либо подменить параметры функции или подменить параметры после выхода функции. На данный момент показать что-то на практике нечего. Как будет, сделаю и покажу видео.
Встроена поддержка маркирования путей на выбранном участке кода. Это специальное окно в меню "утилитах" в окне дизассемблера его можно найти. Указывается верхний адрес и нижний адрес области кода. Например, функции. При старте начинается логирование уникальных прохождения от начального до конечного адреса и раскраска маркерами. Возможных таких путей 8. Т.е. делая что-то в игре (разовые действия) видим уникальную ветвь, она тут же появляется и на этой ветви можно прерваться поставив опцию, и оттрейсить выход из рутины...
Более подробное описание и скриншоты в закрытом разделе в моем старом блоге. Имеют к нему доступ пользователи со статусом "Разработчики". Новую информацию я буду писать в этой теме.
Плагин сейчас на стадии чернового варианта, кто хочет пробуйте. Установка с репозитория. Чтобы подключить нужно загрузить .CT таблицу. Знаю что не удобно, но пока так.
Плагин планируется развивать дальше, сейчас это черновой вариант
-