# Плагины и SDK - DE Decompiler

> Используйте FRX Image Viewer для просмотра и извлечения восстановленной графики форм или разработайте собственный плагин через общий интерфейс SDK.

Canonical HTML: <https://www.de-decompiler.com/help/ru/plugins.htm>

## Плагины и SDK

Используйте FRX Image Viewer для просмотра и извлечения восстановленной графики форм или разработайте собственный плагин через общий интерфейс SDK.

### FRX Image Viewer

FRX Image Viewer 1.2.0 показывает и извлекает изображения, зарегистрированные VB Decompiler или DE Decompiler. VB Decompiler предоставляет графику форм VB5/6 и .NET, а DE Decompiler — изображения из бинарных DFM поддерживаемых VCL-приложений, написанных на Delphi или созданных в C++Builder. Поддерживаются BMP, PNG, JPEG, GIF, ICO и CUR.

#### Установка и запуск

1. Копировать `FRXViewer.dll` в подкаталог установки хоста `plugins` и перезапустите декомпилятор. Архитектура DLL должна соответствовать архитектуре приложения-хоста, независимо от архитектуры анализируемого файла.

2. Откройте EXE или DLL и выполните разбор форм, чтобы декомпилятор зарегистрировал доступные изображения.

3. Выберите **«Плагины» (Plugins)** > **FRX Image Viewer**, затем выберите миниатюру для просмотра изображения.

[Архив версии 1.2.0](https://www.de-decompiler.com/files/frx_image_viewer_1_2.zip) содержит DLL для хоста x86. Для хоста x64 используйте сборку соответствующей архитектуры. Плагину требуется Windows 10/11. Инструкции по сборке доступны в <a href="https://github.com/DotFixSoft/frxviewer" rel="nofollow noopener">репозитории исходного кода</a>.

#### Просмотр и экспорт

Галерея и область предварительного просмотра показывают доступные изображения, в том числе составные ICO/CUR. В строке состояния указаны выбранный элемент, размеры, объём данных или смещение исходного растра и формат. Плагин использует тему декомпилятора и поддерживает тёмное оформление.

Выберите **Сохранить в файл** для экспорта выбранного элемента. Самостоятельные изображения сохраняют исходные байты и формат. Ячейки ImageList экспортируются как файлы ICO с масками и альфа-прозрачностью; эти файлы ICO получены из исходных битовых карт.

![FRX Image Viewer в DE Decompiler, отображающая графику Delphi DFM и отдельные значки ImageList.](https://www.de-decompiler.com/image/help/de_decompiler_images_viewer.png)
FRX Image Viewer в DE Decompiler, отображающая графику Delphi DFM и отдельные значки ImageList.

#### Нативные ImageList Delphi и совместимость

При совместимом хосте распознанные нативные списки изображений VCL отображаются как отдельные значки. Изображения с самостоятельной кодировкой внутри элементов коллекций остаются отдельными обычными изображениями. Для неподдерживаемых потоков сохраняется работа с изображением целиком, если доступны исходные записи изображений.

Ревизия общего SDK 26.6 поддерживается VB Decompiler 26.6 и DE Decompiler 26.6 и добавляет необязательные команды `GetFrxImageListInfo` (63) и `GetProductName` (64). Для старых хостов сохраняются прежний API изображений и просмотр изображения целиком. Обнаружение возможностей и правила интерпретации смещений описаны в [справочнике SDK](https://www.de-decompiler.com/plugins_sdk_rus.htm#native-images-26-6).

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

Меню **«Плагины» (Plugins)** позволяет запускать установленные нативные DLL-плагины. Общий интерфейс обратного вызова предоставляет расширениям поддерживаемые сведения о проекте и коде. Доступные DLL-плагины инициализируются при запуске. Собирайте их для архитектуры и среды Windows, в которых работает приложение-хост.

### Разработка плагина

SDK включает примеры для Visual C++, Rust, Delphi и Free Pascal. Используйте его экспортируемые точки входа и обратный вызов хоста для реализации операций, необходимых вашему рабочему процессу.

Разработку плагина можно поручить ИИ-агенту: предоставьте ссылку на [справочник SDK и API](https://www.de-decompiler.com/plugins_sdk_rus.htm) и опишите требуемое поведение. Затем проверьте и соберите полученный код, протестируйте DLL в DE Decompiler на характерных входных файлах.

### Совместимость интерфейса

Соблюдайте описанные в SDK соглашение о вызовах, имена экспортируемых точек входа и представления данных. Общие идентификаторы API сохраняют прежние имена, включая префикс `VBDecompilerPlugin`. Замена имени продукта в экспортируемом символе нарушит совместимость ABI.

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

### Справочник разработчика

См. [справочник API плагинов](https://www.de-decompiler.com/plugins_sdk_rus.htm) на сайте продукта. В нём описаны экспортируемые точки входа, идентификаторы команд, данные обратного вызова и требования к буферам. SDK предоставляет доступ к коду активного представления и всего проекта. Для операций поиска по всем декомпилированным процедурам необходимы соответствующие листинги. При наличии нужного входного файла обратные вызовы получения кода могут обрабатывать отдельные процедуры.

### Открытые элементы, отметки функций и адреса

Плагины могут определять открытую форму, модуль, класс или процедуру через GetDisplayedTreeItem (65), читать и менять отметки функций через GetModuleFunctionMark (66) и SetModuleFunctionMark (67), а также искать функции по виртуальному адресу через FindModuleFunctionByVA (68). GetModuleFunctionVA (69) возвращает полный виртуальный адрес, включая 64-битный. Существующие сигнатуры callback и номера команд сохранены.
