Plugin

I plugin estendono VB Decompiler tramite DLL native. I plugin installati sono disponibili dal menu Aggiunte (Plugins). L'API callback fornisce accesso alle informazioni e al codice del progetto recuperato, consentendo a un plugin di ispezionare o modificare le strutture interne supportate.

FRX Image Viewer

FRX Image Viewer 1.2.0 visualizza ed estrae le immagini registrate da VB Decompiler o DE Decompilatore (Decompiler). Usare VB Decompiler per la grafica dei form VB5/6 e .NET e DE Decompilatore per quella dei DFM binari Delphi. Sono supportati BMP, PNG, JPEG, GIF, ICO e CUR.

Installazione e apertura

  1. Copiare FRXViewer.dll nella sottocartella plugins dell’installazione host e riavviare il decompilatore. L’architettura della DLL deve corrispondere all’applicazione host, indipendentemente dall’architettura del file analizzato.
  2. Aprire il file EXE o DLL e decodificarne i form, affinché l’host registri le immagini disponibili.
  3. Selezionare Aggiunte > FRX Image Viewer, quindi scegliere una miniatura.

Il download della versione 1.2.0 contiene una DLL per host x86. Per un host x64 occorre una build corrispondente. Il plugin richiede Windows 10/11; le istruzioni di compilazione sono nel repository del codice sorgente.

Anteprima ed esportazione

La galleria e l’anteprima mostrano le immagini disponibili, inclusi i file ICO/CUR composti. La barra di stato indica elemento, dimensioni, quantità di dati o offset della bitmap sorgente e formato. Il visualizzatore segue il tema dell’host e supporta il tema scuro.

Scegliere Save to file per esportare l’elemento selezionato. Le immagini indipendenti mantengono byte e formato originali. Le singole celle ImageList vengono esportate in ICO con maschere e trasparenza alfa; questi file ICO sono generati dalle bitmap sorgenti.

FRX Image Viewer in DE Decompiler: grafica DFM Delphi e singole icone ImageList.
FRX Image Viewer in DE Decompilatore: grafica DFM Delphi e singole icone ImageList.

ImageList native Delphi e compatibilità

Con un host compatibile, le ImageList native Delphi riconosciute compaiono come icone individuali. Le immagini codificate separatamente negli elementi delle collection restano normali immagini indipendenti. Per i flussi non supportati rimane la visualizzazione dell’intera immagine, ove siano disponibili i dati originali registrati.

La revisione condivisa SDK 26.6, supportata da VB Decompiler 26.6 e DE Decompilatore 26.5, aggiunge i comandi facoltativi GetFrxImageListInfo (63) e GetProductName (64). Gli host precedenti mantengono l’API originale e la visualizzazione dell’intera immagine. Per il rilevamento delle funzionalità e le regole sugli offset, vedere il riferimento SDK.

Visualizzazione ed estrazione non eseguono il file analizzato né ne caricano i componenti. Per le GIF animate viene mostrato il primo fotogramma. Le risorse disponibili dipendono dalle immagini decodificate e registrate correttamente dall’host.

Sviluppo di un plugin

L'SDK include esempi per Visual C++, Rust, Delphi e Free Pascal. Consulta il riferimento VB Decompiler Plugin API per i punti di ingresso esportati, la firma del callback, gli identificatori dei comandi, le rappresentazioni dei dati e i link ai progetti di esempio.

Un plugin DLL fornisce le informazioni sul nome e sull'autore e riceve il callback dell'host tramite VBDecompilerPluginLoad. Il callback viene utilizzato per richiedere o aggiornare i dati del progetto supportati. Segui la convenzione di chiamata, i requisiti su puntatori, codifica delle stringhe e buffer dell'SDK quando implementi questa interfaccia; quando utilizzi un linguaggio gestito, assicurati che il livello di interoperabilità rispetti l'interfaccia nativa.

VB Decompiler inizializza i plugin DLL disponibili all'avvio. Costruisci i plugin per l'architettura dell'host e l'ambiente Windows previsti e verifica la DLL risultante con tale ambiente. L'SDK espone sia il codice della vista attiva che l'accesso al codice a livello di progetto; le operazioni che richiedono tutte le procedure decompilate necessitano di una decompilazione completa piuttosto che solo un elenco on-demand.