# Визуальная реконструкция форм WPF из BAML и расширенный анализ интерфейсов в VB Decompiler v26.5

> Рады сообщить о выпуске VB Decompiler версии 26.5. Главная возможность этого релиза — визуальная реконструкция интерфейсов WPF в скомпилированных…

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

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

## Визуальная реконструкция форм WPF из BAML и расширенный анализ интерфейсов в VB Decompiler v26.5

Рады сообщить о выпуске [VB Decompiler](https://www.dotfix.net/vb_decompiler.htm) версии 26.5. Главная возможность этого релиза — визуальная реконструкция интерфейсов WPF в скомпилированных .NET-приложениях. Теперь VB Decompiler может восстанавливать окна, страницы и пользовательские элементы управления из ресурсов скомпилированной разметки XAML (BAML) и показывать их структуру в виде формы, избавляя исследователя от необходимости вручную разбирать данные ресурсов.

Версия 26.5 также существенно расширяет существующие средства просмотра форм Windows Forms и Visual Basic 5.0/6.0, улучшает реконструкцию `Select Case` в VB Native Code, поддерживает больше функций библиотек времени выполнения VB5 и VB6 и завершает масштабное обновление терминологии в 22 локализациях интерфейса.

### Визуальная реконструкция форм WPF из скомпилированного BAML

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

VB Decompiler v26.5 читает такие ресурсы и восстанавливает визуальное представление окон, страниц и пользовательских элементов управления WPF. Распространённые элементы отображаются в ожидаемых местах: кнопки, надписи, поля ввода, флажки, переключатели, раскрывающиеся и обычные списки, изображения. Исследователь сразу получает общее представление об интерфейсе и может быстрее понять назначение и внутреннюю организацию незнакомого .NET-приложения.

[![VB Decompiler восстанавливает окно приложения WPF из скомпилированного BAML](https://www.dotfix.net/images/doc/vb_decompiler_265/vb_decompiler_265_wpf_overview.png)](https://www.dotfix.net/images/doc/vb_decompiler_265/vb_decompiler_265_wpf_overview.png)
Окно WPF, восстановленное непосредственно из BAML-ресурсов скомпилированного приложения.

### Реконструкция реальной компоновки WPF

Интерфейсы WPF редко состоят из элементов, размещённых по фиксированным координатам. Их внешний вид определяется контейнерами компоновки и правилами изменения размеров и выравнивания каждого элемента. Поэтому новый движок реконструкции понимает основные системы компоновки WPF:

- **Grid**, включая строки и столбцы фиксированного размера, `Auto` и пропорционального размера (`*`).

- **StackPanel** с горизонтальной и вертикальной ориентацией.

- **DockPanel** с учётом направления стыковки отдельных элементов.

- **Canvas** для элементов интерфейса с явно заданным положением.

- Вложенные контейнеры, сочетающие несколько способов компоновки в одном окне.

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

[![Сложная компоновка WPF восстановлена VB Decompiler из вложенных контейнеров Grid и других элементов компоновки](https://www.dotfix.net/images/doc/vb_decompiler_265/vb_decompiler_265_wpf_layouts.png)](https://www.dotfix.net/images/doc/vb_decompiler_265/vb_decompiler_265_wpf_layouts.png)
Вложенная компоновка реального WPF-приложения: элементы размещены согласно сохранённым правилам размеров и выравнивания.

### Меню, вкладки, деревья, списки и сложные элементы интерфейса

Средство просмотра WPF не ограничивается простыми элементами ввода. Версия 26.5 восстанавливает и те структуры интерфейса, которые часто лучше всего раскрывают порядок работы с программой:

- элементы с вкладками, группы и разворачиваемые панели;

- главные меню с исходной иерархией, вложенными пунктами и разделителями;

- строки состояния и встроенные в них панели;

- элементы `ListView` с заголовками столбцов и поддерживаемыми статически заданными данными;

- элементы `TreeView` со статически заданными узлами;

- статически заданные пункты раскрывающихся списков;

- упрощённые представления ленточных интерфейсов, областей навигации и закрепляемых панелей.

Даже если сложный интерфейс, зависящий от конкретной библиотеки, невозможно воспроизвести во всех деталях, восстановленная иерархия всё равно показывает, какие компоненты навигации и представления данных присутствовали в исходном приложении.

[![VB Decompiler визуализирует меню WPF, дерево, вкладки и элементы представления данных](https://www.dotfix.net/images/doc/vb_decompiler_265/vb_decompiler_265_wpf_controls.png)](https://www.dotfix.net/images/doc/vb_decompiler_265/vb_decompiler_265_wpf_controls.png)
Восстановленный интерфейс WPF, сочетающий меню, дерево, вкладки, группы элементов управления и средства представления данных.

### Восстановленные свойства, изображения и пользовательские элементы управления

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

Приложения могут использовать собственные либо сторонние элементы WPF, недоступные средству просмотра. VB Decompiler не скрывает такие элементы, а выводит замещающие области с указанием исходных типов WPF. Исследователь видит место неподдерживаемого элемента и понимает, какой тип следует изучить отдельно.

[![VB Decompiler отображает встроенное прозрачное изображение в восстановленной форме WPF](https://www.dotfix.net/images/doc/vb_decompiler_265/vb_decompiler_265_wpf_images.png)](https://www.dotfix.net/images/doc/vb_decompiler_265/vb_decompiler_265_wpf_images.png)
Встроенная графика, прозрачность и фон формы сохраняются в восстановленном интерфейсе WPF.

### Практическая реконструкция, а не снимок экрана

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

Прямой переход от элементов WPF к обработчикам их событий пока недоступен, поскольку модель событий WPF существенно отличается от Windows Forms. В текущей версии средство просмотра WPF сосредоточено на восстановлении внешнего вида и структурной организации интерфейса.

### Расширенная реконструкция Windows Forms и форм VB6

Движок визуальной реконструкции .NET Windows Forms, появившийся в версии 26.4, также получил существенное расширение совместимости:

- полная поддержка иерархии меню, включая контекстные меню;

- щелчок по пункту меню в визуальном представлении теперь открывает соответствующее событие `Click`;

- поддержка пользовательских событий Windows Forms, отображаемых в списке с префиксом `@`, и более точное сопоставление стандартных событий;

- правильная обработка `MinimumSize` без замены значения `ClientSize`;

- поддержка логических свойств ресурсов и корректно экранированных кавычек в текстовых свойствах;

- наследование окружающих значений `ForeColor` и `BackColor`, разбор цветов из `Color.FromArgb` и числовых битовых масок `FontStyle`;

- правильный учёт порядка наложения элементов .NET, благодаря которому небольшие элементы не скрываются за крупными при отсутствии явно заданного контейнера.

[![Средство просмотра Windows Forms в VB Decompiler показывает восстановленное меню и события выбранной формы](https://www.dotfix.net/images/doc/vb_decompiler_265/vb_decompiler_265_winforms_events.png)](https://www.dotfix.net/images/doc/vb_decompiler_265/vb_decompiler_265_winforms_events.png)
Расширенное средство просмотра Windows Forms восстанавливает иерархию меню и показывает стандартные и пользовательские события.

Теперь также поддерживаются объекты VB6 `SSTab`, `MSComctlLib.StatusBar`, `MSComctlLib.ListView`, `MSComctlLib.ProgressBar` и `MSComctlLib.TreeView`, а там, где это применимо, — их аналоги в .NET. Индикаторы выполнения могут отображаться как самостоятельные элементы VB6 и как части строки состояния .NET.

[![VB Decompiler восстанавливает сложную форму Visual Basic 6 с ListView, TreeView, строкой состояния и индикаторами выполнения](https://www.dotfix.net/images/doc/vb_decompiler_265/vb_decompiler_265_vb6_controls.png)](https://www.dotfix.net/images/doc/vb_decompiler_265/vb_decompiler_265_vb6_controls.png)
Сложная форма VB6 с новыми поддерживаемыми элементами, строкой состояния и индикатором выполнения.

### Улучшенная декомпиляция VB Native Code

Версия 26.5 заметно улучшает реконструкцию блоков `Select Case` в Visual Basic Native Code. Кроме того, расширена и исправлена эмуляция функций среды выполнения, через которые компилятор Visual Basic реализует высокоуровневые операции языка.

[![Блок Select Case из Visual Basic Native Code восстановлен VB Decompiler 26.5](https://www.dotfix.net/images/doc/vb_decompiler_265/vb_decompiler_265_select_case.png)](https://www.dotfix.net/images/doc/vb_decompiler_265/vb_decompiler_265_select_case.png)
Блок `Select Case`, восстановленный улучшенным движком декомпиляции из скомпилированного VB Native Code.

Для `msvbvm60.dll` улучшена обработка `rtcVarBstrFromByte`, `__vbaVarIdiv`, `__vbaR8Str` и `__vbaR4Str`, а также исправлена обработка `__vbaObjIs` и `__vbaFileSeek`.

Добавлена поддержка функций `msvbvm50.dll`: `__vbaAryRebase1Var`, `__vbaChkstk`, `__vbaNew`, `__vbaStrI2` и `__vbaStrI4`. Исправлена обработка `rtcCurrentDir`, `rtcIRR`, `rtcMIRR`, `rtcR8ValFromBstr`, `rtDecFromVar`, `__vbaFreeObj`, `__vbaAryCopy`, `__vbaFileLock`, `__vbaFileSeek`, `__vbaLateMemSt`, `__vbaLateMemStAd`, `__vbaNextEachCollVar` и `__vbaVarIndexStore`.

Исправлены ещё две редко встречающиеся проблемы движка: теперь правильно обрабатываются индексы VTable в таблицах методов Native Code и одномерные массивы, у которых число ячеек совпадает с максимальным целым значением.

### Обновление терминологии локализованных интерфейсов

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

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

### Версия уже доступна

VB Decompiler v26.5 расширяет визуальный анализ приложений от Windows Forms и классических форм VB до скомпилированных интерфейсов WPF и одновременно продолжает совершенствовать движок Native Code и повседневную работу исследователей. Новую версию можно скачать [на странице загрузки](https://www.vb-decompiler.org/download.htm). Владельцы лицензий с действующей подпиской на обновления могут установить её в рамках своей текущей лицензии.

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

Visual Basic, Visual Studio, .NET, WPF и Windows являются зарегистрированными товарными знаками корпорации Microsoft.

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

- [Визуальная реконструкция форм .NET и новый workflow на горячих клавишах в VB Decompiler v26.4](https://www.dotfix.net/doc/vb_decompiler_264.htm)

- [Улучшенная декомпиляция Native Code в VB Decompiler v26.2](https://www.dotfix.net/doc/vb_decompiler_262.htm)

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