# VB Decompiler 26.6: XAML, код форм и обработчики событий

> VB Decompiler 26.6: восстановление XAML и переходы к обработчикам WPF, код инициализации форм, улучшения VB6/WinForms, экспорта проектов и баз VDD.

Canonical HTML: <https://www.dotfix.net/doc/vb_decompiler_266.htm>

**Автор:** **Чубченко Сергей Георгиевич**. **Дата публикации:** 04.11.2026

## VB Decompiler 26.6: восстановление XAML, просмотр кода форм и переходы к обработчикам событий

VB Decompiler v26.6 позволяет подробнее исследовать связь между интерфейсом скомпилированного приложения и кодом, который за ним стоит. В этой версии расширена реконструкция ресурсов и шаблонов WPF, добавлены вкладки с восстановленной разметкой XAML и кодом инициализации Windows Forms, улучшены переходы от элементов WPF к обработчикам событий. Обновление также расширяет визуализацию форм VB6 и Windows Forms, повышает надёжность экспорта проектов и сохранения результатов анализа, улучшает отзывчивость при работе с большими приложениями.

Для специалистов по реверс-инжинирингу, аналитиков вредоносного ПО, экспертов по компьютерной криминалистике и разработчиков эти изменения упрощают сопоставление видимых элементов интерфейса, ресурсов и поведения программы. Они полезны как при первоначальном изучении незнакомого приложения, так и при подробном анализе ссылок и машинных инструкций или сохранении результатов исследования для дальнейшей работы.

### Ресурсы, стили и вложенные пользовательские элементы WPF

Интерфейс WPF часто зависит от ресурсов, определённых за пределами самого окна. В версии 26.6 расширена реконструкция локальных и объединённых словарей ресурсов, словарей, объявленных как классы, наследования стилей через `BasedOn`, встроенных стилей, кистей, шрифтов и скалярных значений. Если ресурс отсутствует в ожидаемом месте, декомпилятор может найти его в единственном подходящем словаре той же сборки. О неоднозначных совпадениях выводится сообщение.

В большем числе случаев восстанавливается представление вложенных пользовательских элементов управления и содержимого локальных шаблонов `ControlTemplate`, в том числе с `TemplateBinding Content`. Декомпилятор выявляет рекурсивные и неоднозначные определения элементов. У неподдерживаемых элементов сохраняются подписи, а у неподдерживаемых контейнеров — вложенное содержимое: это позволяет лучше понять исходный интерфейс.

[![Реконструированный интерфейс WPF со словарями ресурсов, стилями и вложенными пользовательскими элементами управления.](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_wpf_resources.png)](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_wpf_resources.png)
Реконструированный интерфейс WPF со словарями ресурсов, стилями и вложенными пользовательскими элементами управления.

### Более точная компоновка, текст и векторная графика WPF

При визуализации WPF учитывается больше правил компоновки `Grid`, `StackPanel`, `WrapPanel` и `DockPanel`: автоматические и пропорциональные размеры, внешние и внутренние отступы, выравнивание, состояния `Hidden` и `Collapsed`, направление закрепления по умолчанию и `LastChildFill`. Точнее рассчитываются размеры и положение небольших пользовательских элементов, заголовков групп, вкладок и вложенных фреймов.

Улучшено восстановление форматированного текста из элементов `Run` и `Span`. Вместо длинных выражений привязки при визуализации выводятся краткие имена свойств, чтобы текст привязок не искажал компоновку. Упрощённые представления `DataGrid` и Xceed `DataGridControl` используют заголовки и ширину столбцов, сохранённые в приложении.

При визуализации векторной графики теперь поддерживаются двоичные данные BAML для `Path.Data`, прямоугольники, эллипсы и линейные градиенты, в том числе внутри масштабируемого содержимого `Viewbox`. Улучшены сохранение пропорций изображений, обрезка по границам, наложение фона и обработка прозрачности. Фоновые изображения видны сквозь вложенные прозрачные контейнеры, а подписи, рамки и заголовки столбцов остаются на переднем плане.

Группы ленты Ribbon располагаются горизонтально, с более читаемыми подписями и правильными пропорциями значков. При переключении вкладок больше не накапливаются фоновые изображения и значки предыдущих страниц. Невизуальные данные, например всплывающие подсказки и объекты поведения, больше не отображаются как перекрывающиеся элементы управления. В списке форм используются краткие имена классов WPF с исходным регистром символов, а узел приложения больше не дублирует стартовое окно.

[![Компоновка и векторная графика WPF, восстановленные из скомпилированного BAML, включая масштабируемые изображения и градиенты.](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_wpf_vectors.png)](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_wpf_vectors.png)
Компоновка и векторная графика WPF, восстановленные из скомпилированного BAML, включая масштабируемые изображения и градиенты.

### Восстановленная разметка XAML и код инициализации Windows Forms

Новые вкладки кода формы позволяют изучать восстановленную разметку XAML для WPF и код инициализации Windows Forms рядом с визуальным представлением. Подсветка синтаксиса и вхождений выбранного слова, выделение, копирование и поиск помогают подробно исследовать объявления и настройки элементов управления. Блоки XML в разметке WPF можно сворачивать.

`Ctrl+F` открывает поиск с выделенным текстом, а `F3` находит следующее совпадение. При навигации сохраняются активная вкладка с кодом формы и положение курсора. Смена темы обновляет цвета редактора, в том числе подсветку совпадений, свёрнутых блоков и выделения, сохраняя нужный текст и выделенный фрагмент.

При восстановлении XAML расширена обработка типов-владельцев свойств, вложенных и присоединённых свойств, расширений разметки, отложенных ресурсов и пользовательских сериализаторов. Точнее обрабатываются объявления пространств имён, пользовательские элементы, шаблоны, стили, ссылки на ресурсы и коллекции точек. Из восстановленной разметки удаляются повторяющиеся атрибуты, например `AutomationProperties.Name`.

[![Восстановленная разметка XAML в редакторе кода формы с подсветкой синтаксиса, сворачиванием блоков и поиском.](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_wpf_xaml_source.png)](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_wpf_xaml_source.png)
Восстановленная разметка XAML в редакторе кода формы с подсветкой синтаксиса, сворачиванием блоков и поиском.

### Переходы от элементов WPF к обработчикам событий

В версии 26.6 улучшено восстановление связей с обработчиками событий WPF по данным XAML/BAML, сгенерированному коду подключения и декомпилированным подпискам на события. Поддерживаются маршрутизируемые команды и элементы внутри шаблонов. Щелчок по подписи или значку элемента ведёт к его обработчику: связь не теряется из-за того, что щелчок пришёлся на вложенный элемент визуального представления.

При переходах сохраняются точные имена методов и регистр символов. Если целевой обработчик нельзя определить однозначно, переход не назначается. Из свойств формы удаляются повторяющиеся записи событий. Переходы «Назад», «Вперёд» и по Escape между формами, обработчиками, кодом и объявлениями лучше сохраняют контекст исследования: при возвращении к неизменённой форме восстанавливаются выбранный элемент, вкладка и положение прокрутки.

[![Восстановленные связи событий WPF позволяют перейти от выбранного элемента к его обработчику.](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_wpf_events.png)](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_wpf_events.png)
Восстановленные связи событий WPF позволяют перейти от выбранного элемента к его обработчику.

### Расширенная визуализация Windows Forms и сторонних компонентов

Реконструкция Windows Forms улучшена как для старых приложений .NET, так и для более сложных интерфейсов. Точнее учитываются порядок элементов и обхода по Tab, вложенность, видимость, шрифты, цвета, поля пароля и поля только для чтения, сохранённые даты и содержимое списков. Для компонентов DevExpress улучшены выравнивание изображений, настройки внешнего вида и содержимое выпадающих списков.

Поиск изображений охватывает больше общих ресурсов, пользовательских классов ресурсов и ссылок Visual Basic `My.Resources`, в том числе имена с пробелами, знаками пунктуации или цифрой в начале. Неоднозначные или отсутствующие ссылки больше не приводят к подстановке изображений из посторонних ресурсов.

Улучшены растягивание, центрирование и пропорциональное масштабирование изображений `PictureBox`, мозаичный фон, прозрачные надписи и порядок наложения элементов. Исправлены ошибки загрузки JPEG и артефакты масштабирования GIF, точнее сохраняется частичная прозрачность PNG и GIF. Неподдерживаемые элементы сохраняют подписи, а небольшие отдельно расположенные элементы и ползунки — заданные размеры, ориентацию и диапазон значений.

[![Код инициализации Windows Forms на новой вкладке кода формы.](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_winforms_source.png)](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_winforms_source.png)
Код инициализации Windows Forms на новой вкладке кода формы.

### Более подробная реконструкция форм и элементов VB6

При визуализации VB6 используется больше сохранённых данных вкладок, панелей инструментов, строк состояния и форматированного содержимого `RichTextBox`. Точнее восстанавливаются подписи вкладок, выбранная вкладка, изображения и содержимое страниц, включая многострочное расположение заголовков `SSTab`. Невизуальные компоненты `CommonDialog` больше не перекрывают форму.

В представлениях `TreeView`, `ListView` и `ImageCombo` используется больше сведений о внешнем виде и связанных изображениях. Для списков сохраняются подписи, ширина и выравнивание столбцов, значки, режимы выделения и скрытые столбцы. Панель свойств показывает сохранённые настройки элементов и ссылки на списки изображений. При выборе кнопки панели инструментов отображаются её свойства и доступные события.

Расширена поддержка панелей, рамок, флажков, переключателей и кнопок Sheridan 3D: учитываются подписи, шрифты, цвета, состояния и изображения кнопок. Для Microsoft Grid восстанавливаются размеры таблицы, фиксированные строки и столбцы, а также оформление. Дополнительные исправления касаются заполнения и ориентации индикаторов выполнения, коротких подписей панелей, изображений панелей инструментов, шрифтов и ширины полей строки состояния.

Свойства формы корректно обновляются при её загрузке и смене выбранного элемента. Исправлены аварийные завершения при просмотре свойств и закрытии визуального представления. Подписи меню остаются читаемыми даже при большом размере шрифта исходной формы.

[![Реконструированная форма VB6 с вкладками, кнопками панели инструментов, связанными изображениями и восстановленными свойствами элементов.](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_vb6_controls.png)](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_vb6_controls.png)
Реконструированная форма VB6 с вкладками, кнопками панели инструментов, связанными изображениями и восстановленными свойствами элементов.

### Улучшенный экспорт проектов WPF и .NET

При экспорте проекта WPF теперь сохраняются восстановленная разметка XAML и отдельные файлы ресурсов наряду с исходными скомпилированными ресурсами. В сгенерированные файлы C# записываются восстановленные объявления элементов, подключения обработчиков событий и код запуска. Если подключение обработчика восстановить не удалось, уже полученный код сохраняется для анализа.

Точнее определяются целевая версия .NET, архитектура, тип приложения, ссылки на сборки и сведения о продукте. В предупреждениях отмечаются параметры, определённые эвристически. При экспорте ресурсов и значков сохраняются исходные имена ресурсов; о повреждённых или недоступных элементах выводятся сообщения. Предупреждения в восстановленном XAML стали понятнее, а диагностические комментарии записываются на английском языке.

В экспортируемый проект включаются только файлы, успешно сохранённые при текущем экспорте. При повторном экспорте игнорируются оставшиеся от предыдущих операций файлы, а ошибка финального сохранения не повреждает прежний файл проекта. Точнее обрабатываются классы C#, пространства имён, перегрузки методов и имена файлов ресурсов; сохраняются методы, следующие за инициализацией формы. Специальные символы XML в метаданных проекта экранируются без изменения исходных названий продукта.

Экспортированные XAML, C# и структура проекта служат материалом для анализа и дальнейшей ручной доработки. Перед использованием результата в IDE необходимо проверить и вручную исправить неточности восстановленного кода, проверить параметры, определённые эвристически, и разобраться с неразрешёнными связями.

[![Экспорт проекта WPF с восстановленной разметкой XAML, сгенерированными файлами C# и восстановленными ресурсами.](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_wpf_project_export.png)](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_wpf_project_export.png)
Экспорт проекта WPF с восстановленной разметкой XAML, сгенерированными файлами C# и восстановленными ресурсами.

### Большие приложения, потребление памяти и отмена операций

Снято прежнее фиксированное ограничение на количество классов. Улучшена поддержка сборок .NET с большими таблицами типов, полей, методов и строк; большие инициализаторы массивов обрабатываются быстрее и с меньшим потреблением памяти. Расширены дизассемблирование машинного кода, распознавание строк и импортируемых функций, в том числе для 64-разрядных инструкций и неуправляемого кода в приложениях .NET.

Снижено потребление памяти при анализе, переключении проектов и работе HEX-редактора с большими файлами. В HEX-редакторе сохранены редактирование, отмена и повтор действий, сохранение файла. Улучшена обработка повреждённых или усечённых исполняемых файлов и ресурсов, включая некорректные строки .NET; устранена утечка памяти при ошибке сохранения состояния анализа.

Длительное открытие файла, экспорт проекта, листинга, базы VDD и списка процедур можно отменить. Если отмена запрошена во время полной декомпиляции, дальнейшая обработка процедур прекращается. При отмене дополнительного анализа прототипов разобранный файл остаётся открытым, а полученные результаты сохраняются; незавершённые аналитические отчёты не формируются, настройки декодирования восстанавливаются.

Отмена или ошибка сохранения в один файл не повреждает прежний файл. При отмене экспорта в несколько файлов уже сохранённые файлы остаются доступными. После неудачной обфускации машинного кода восстанавливаются исходный файл и состояние проекта либо выводится путь к резервной копии для восстановления.

### Базы VDD: сохранение результатов и продолжение анализа

В больших проектах базы VDD сохраняют больше восстановленного кода, форм, ресурсов и переименованных переменных. Уже декомпилированные методы .NET можно открыть без повторной декомпиляции, а сохранённый код остаётся доступным даже при отсутствии исходного исполняемого файла. Поддержка старых форматов баз сохранена.

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

После загрузки сохранённого анализа корректно восстанавливается список ссылок на строки (String References). Переход по ссылке выполняет поиск в активном представлении кода, раскрывает свёрнутые блоки с совпадениями и сохраняет позицию поиска в списке. В Lite листинги Native Code и P-Code остаются видимыми после полного прохода или открытия сохранённого кода. В режиме быстрой декомпиляции снова выводится предупреждение, если полный список ссылок на строки недоступен.

[![Сохранённый анализ в базе VDD: восстановленный код, формы и ресурсы доступны для продолжения исследования.](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_vdd_snapshot.png)](https://www.dotfix.net/images/doc/vb_decompiler_266/vb_decompiler_266_vdd_snapshot.png)
Сохранённый анализ в базе VDD: восстановленный код, формы и ресурсы доступны для продолжения исследования.

### Навигация, поиск и SDK плагинов

При переключении между декомпилятором и дизассемблером синхронизируются адреса. Если для инструкции нет отображаемого соответствия в восстановленном коде, переход выполняется к ближайшему показанному адресу. Полные 64-разрядные адреса сохраняются в HEX-редакторе, представлениях кода, списках ссылок и экспортируемых списках процедур TXT, MAP, HIEW и IDC. Скрипты IDC сохраняют уже существующие в IDA инструкции и данные.

Команды поиска учитывают свёрнутый код и раскрывают блоки с совпадениями. При поиске, копировании и отправке кода в AI Helper сохраняется текст из блоков с большой глубиной вложенности. Улучшены поиск процедур и ссылок, переименование переменных и переходы из результатов поиска. Пустой результат или ошибка поиска больше не оставляет на экране устаревшие результаты.

В общий SDK плагинов добавлены команды для определения отображаемой формы или процедуры, установки и снятия отметок функций, поиска функций по виртуальному адресу, в том числе 64-разрядному. Чтение кода процедуры через плагин больше не меняет активный редактор, процедуру и позицию в HEX-редакторе. Улучшены переименование форм и процедур VB6 и обработка ошибок нативных и Python-плагинов. Подробности разработки расширений приведены в [справочнике SDK плагинов](https://www.vb-decompiler.org/plugins_sdk.htm).

### Повседневная работа и обновлённые языки интерфейса

VB Decompiler теперь распознаёт исполняемые файлы запуска приложений .NET и автоматически открывает связанную управляемую DLL, если она доступна. Повышена надёжность обработки Unicode в списке недавних файлов, ярлыках Windows и путях перетаскиваемых файлов, в том числе при работе с недавними файлами в Wine и на Steam Deck. В HEX-редакторе и представлении кода открывается один и тот же выбранный файл.

Другие улучшения касаются диагностики запуска, отсутствующих настроек или баз сигнатур, вызова контекстных меню дерева с клавиатуры, диалогов выбора папок на нескольких мониторах и восстановления фокуса после закрытия окон прогресса. Команды контекстного меню дерева применяются к элементу под указателем мыши. Escape сначала закрывает открытый выпадающий список и только затем позволяет выйти из визуального представления формы.

В AI Helper улучшены обработка адреса сервера и отмена запросов; при закрытии приложение дожидается безопасного завершения активного запроса. Если выбранный перевод справки недоступен, открывается английский PDF или сайт. Если локальный PDF или CHM не удалось открыть, используется соответствующий раздел онлайн-справки.

Обновлены локализации на следующих языках: арабский, португальский (Бразилия), упрощённый и традиционный китайский, чешский, датский, нидерландский, английский, французский, немецкий, греческий, иврит, индонезийский, итальянский, японский, курдский (сорани), персидский, польский, португальский, русский, словацкий, испанский, турецкий и украинский. Дополнены отсутствовавшие переводы, переведены оставшиеся сообщения и исправлен текст, не помещавшийся на кнопках.

### Версия 26.6 доступна для загрузки

VB Decompiler v26.6 доступен в [разделе загрузки](https://www.vb-decompiler.org/download.htm). Возможности бесплатной Lite описаны на [странице Lite](https://www.vb-decompiler.org/vb6-decompiler-lite.htm), а средства анализа и декомпиляции платных редакций — в [сравнительной таблице лицензий](https://www.vb-decompiler.org/order.htm#detailed-features). Все изменения перечислены в [полном списке изменений версии](https://www.vb-decompiler.org/news.htm#release-266).

© Чубченко Сергей Георгиевич, ведущий разработчик [VB Decompiler](https://www.dotfix.net/vb_decompiler.htm)

### Материалы по теме

- [Визуальная реконструкция форм WPF из BAML и расширенный анализ интерфейсов в VB Decompiler v26.5](https://www.dotfix.net/doc/vb_decompiler_265.htm)

- [Искусство редактирования интерфейса программ на VB](https://www.dotfix.net/doc/reversing_vb_form.htm)
