Java House
Gambino - BinTemplate
Italiano     English
Il logo BinTemplate

BinTemplate

Settembre 2008, by Mario

    Il BinTemplate è principalmente un software di ausilio per il lavoro che svolgo.



Molti dei firmware che realizzo vengono configurati utilizzando dei file in formato binario, questi sono generati dai software sviluppati dai miei colleghi che implementano una complessa struttura client/server. Ogni volta che dovevo effettuare dei test ero costretto a rivolgermi a loro che mi preparavano un database-copia, cambiavano i parametri che gli indicavano e generavano un nuovo file binario.



Stanco di questa dipendenza, ho pensato che sarebbe stato più semplice utilizzare uno dei file in binario già in mio possesso e modificare manualmente i parametri al suo interno. Peccato che non fosse affatto semplice ed ogni volta perdevo molto tempo, specifiche alla mano, per individuare il punto in cui intervenire, inserire i byte corretti e sopratutto calcolare i campi di controllo.



Il passo successivo è stato ovvio: realizzare un software che leggesse il file binario, mi presentasse i dati in un formato ad alto livello (decimale, testo, orario, data, indirizzo ip, coordinate cartesiane) e con delle descrizioni chiare, mi permettesse di modificare i valori e di ricreare un nuovo file binario.

Peccato che i formati utilizzati dall'azienda sono molti e, soprattutto, soggetti a continue personalizzazioni secondo le esigenze dei clienti. Da qui la bella idea, secondo me, di utilizzare fin dall'inizio un file di configurazione che descrivesse il file binario. Così ho raggiunto un triplice risultato:

  • ho un software slegato dai dati che gestisce, quindi compilato e distribuito un'unica volta;
  • ho fornito un file di configurazione descrittivo e facilmente modificabile, fedele alle specifiche tecniche da esso rappresentate;
  • ultimo ma più importante per l'azienda, posso accompagnare le specifiche tecniche con un ausilio utile ed automatizzabile pur restando leggibile dall'uomo.

Così, morale della favola, ho realizzato il BinTemplate e il linguaggio XML "Descrittore di un file" che potete scaricare dalla sezione download.



Fino ad ora, per motivi di copyright, non ho potuto allegare nessuno dei descrittori che ho già scritto perché riguardano i formati utilizzati dall'azienda in cui lavoro, ma adesso posso finalmente darvi la prova della potenza del BinTemplate. Basandomi sulle specifiche della Java Virtual Machine relative al formato dei file Java-class, ho scritto un descrittore che permette di de-assemblare tali file. Per semplicità ho interpretato solo l'attributo "Code" (quello che individua il byte-code) ma potete modificare l'esempio ed aggiungerne altri restando conformi, ovviamente, alle specifiche originali. Nella sessione download potete scarcare l'esempio.

   Il software è distribuito gratuitamente e può essere usato senza limiti di tempo. Poichè non si tratta di un prodotto commerciale non viene offerta nessuna garanzia sul suo utilizzo.



Interfaccia del BinTemplate