Creare la libreria LibEWF per accedere al formato compresso Expert Witness *.EWF

A partire dalla versione 3.4 Isobuster consente di caricare la libreria LibEWF in maniera dinamica. La libreria LibEWF è già inclusa in IsoBuster, ma, a partire dalla versione 3.4 del programma, è possibile caricare una versione più recente di tale libreria, se lo si desidera.

LibEWF è una libreria che consente di accedere al formato compresso Expert Witness e consente a IsoBuster l'apertura dei file *.EWF.

In questo articolo illustreremo come creare una propria versione della libreria LibEWF.dll utilizzando il compilatore MinGW ed il compilatore gratuito Borland C++ 5.5 (BCC32)

È importante sottolineare che la libreria compilata con Borland C++ 5.5 funzionerà solamente con Isobuster v3.6 e versioni successive. Il motivo è che MinGW e VC++ esportano i nomi delle funzioni 'così come sono', mentre Borland aggiunge un underscore davanti ai nomi delle funzioni. IsoBuster v3.4 e v3.5 cercano i nomi delle funzioni senza underscore iniziale; IsoBuster v3.6 e versioni successive cercano i nomi delle funzioni indipendentemente dalla presenza o meno dell'underscore ed utilizzano la prima funzione disponibile che trovano.

Creare la libreria LibEWF (LibEWF.dll) con MinGW

+

Scaricare la libreria LibEWF più recente (o quella preferita)

Il progetto LibEWF è attualmente ospitato su GitHub, ma è preferibile non scaricare i file necessari per creare la libreria da tale locazione. Come riportato sulla pagina wiki di LibEWF, scaricare il progetto da questo drive Google

Durante la stesura di qeusto articolo ho scaricato ed utilizzato il file libewf-20140608.tar.gz

Download e installazione di MinGW

Scaricare MinGW ed avviare l'installazione:

Installazione di MinGW MinGW Installation Manager

Al termine dell'installazione, viene eseguito il programma Installation Manager di MinGW. A questo punto, non installate alcun elemento: sebbene sia possibile, vi illustrerò un metodo più semplice per installare tutti i pacchetti necessari.

Installare i pacchetti necessari per MinGW

Tramite riga di comando (CMD), spostarsi nella sottocartella \bin\ presente nella cartella di installazione di MinGW. Nel mio caso, ho installato MinGW nel percorso M:\MinGW, quindi devo spostarmi in tale cartella con il comando cd M:\MinGW\bin

M:
cd M:\MinGW\bin

Copiare ed incollare sulla riga di comando (CMD) la seguente istruzione e premere [Invio]:

mingw-get install binutils mingw-runtime w32api libgmp libmpc libiconv pthreads gettext libz gcc-core mingw32-make msys gcc-c++

Verranno installati tutti i pacchetti necessari.

Installazione dei pacchetti di MinGW tramite riga di comando
Creare la libreria LibEWF.dll con MinGW

Decomprimere il progetto LibEWF. Per questo articolo, ho decompresso l'archivio libewf-20140608.tar.gz sul mio Desktop (C:/Users/Peter/Desktop/libewf-20140608)

Avviare l'applicazione console di MinGW (chiamata MSYS) tramite riga di comando (CMD):

M:\MinGW\msys\1.0\msys.bat

MSYS sarà avviato ed apparirà come di seguito:

MinGW MSYS

Per consentire le operazioni di copia ed incolla in MSYS, è necessario modificare le impostazioni del programma (le opzioni devono comunque essere impostate dopo un'installazione nuova).

Fare clic con il pulsante destro del mouse sulla barra del titolo della finestra di MSYS e selezionare 'Properties', scegliere la scheda 'Options' e selezionare la casella di controllo 'QuickEdit mode', quindi fare clic su 'OK'. Noterete che fare clic con il pulsante destro del mouse su MSYS corrisponde all'operazione INCOLLA.

Console di MinGW / Opzioni di MSYS

Assicurarsi che la cartella di MinGW sia montata. Per fare questo, digitare (oppure copiare ed incollare = pulsante destro del mouse) in MSYS:

mount M:\\MinGW /mingw

Continuare in MSYS e spostarsi nella cartella LibEWF. Poiché ho decompresso il progetto sul mio desktop, ho copiato ed incollato il seguente comando:

cd C:/Users/Peter/Desktop/libewf-20140608

Continuare in MSYS e copiare / incollare il seguente comando:

CPPFLAGS=-DWINVER=0x0501 ./configure --prefix=/mingw

Dopo alcuni minuti di attività è necessario eseguire il comando make in MSYS:

make

Fatto! La libreria risultante (libewf-2.dll) comparirà nella cartella del progetto \libewf\.libs\.

Con un programma per il controllo delle dipendenze potete verificare tutte le librerie richieste da MinGW. Naturalmente ho già effettuato il controllo ed è necessario copiare i file zlib1.dll e libgcc_s_dw2-1.dll dalla cartella di installazione di MinGW nella cartella dove è presente il file libewf.dll

Infine, per utilizzare la libreria con IsoBuster, rinominare libewf-2.dll in libewf.dll e copiare il file, assieme ai file zlib1.dll e libgcc_s_dw2-1.dll nella sottocartella /Plugins/ presente nella cartella di installazione di IsoBuster. Una volta trovata la libreria libewf.dll, IsoBuster la caricherà ogni qualvolta risulti necessario.

LibEWF.dll compilata con MinGw per IsoBuster

Creare la libreria LibEWF (LibEWF.dll) con Borland C++ 5.5

+

Scaricare la libreria LibEWF più recente (o quella preferita)

Questo passaggio è identico a quello spiegato sopra, ma se inziate da questo punto:

Il progetto LibEWF è attualmente ospitato su GitHub, ma è preferibile non scaricare i file necessari per creare la libreria da tale locazione. Come riportato sulla pagina wiki di LibEWF, scaricare il progetto da questo drive Google

Durante la stesura di questo articolo ho scaricato ed utilizzato il file libewf-20140608.tar.gz

Scaricare e installare Borland C++ 5.5

Scaricare Borland C++ 5.5 ed installarlo nel percorso predefinito consigliato C:\Borland\BCC55 poiché lo script seguente ed il codice generato dipendono da quel percorso.

Scaricare altri file e strumenti necessari

Scaricare la libreria zlib.
Scaricare il progetto master.zip, aprirlo ed estrarre il file generate_bcc32.sh.
Scaricare il file libewf-20140608-bcc.patch da questo drive Google, ma, se si sta utilizzando una versione differente del progetto, è necessario utilizzare una patch adatta per tale progetto. Comunque, è possibile che i pacchetti LibEWF futuri non richiedano più file patch.

Poiché lo script *.sh richiede di essere eseguito e poiché è necessario applicare prima il file *.patch, sono necessari degli stumenti Unix. Se non avete strumenti installati adatti allo scopo (es. CygWin), suggerisco di utilizzare MinGW. L'installazione e l'uso di MinGW è stato descritto nella parte precedente di questo articolo. Consentitemi di guidarvi ai passaggi necessari:

Se MinGW non è ancora installato, seguite quanto descritto nella sezione "Scaricare e installare MinGW" di questo articolo.

Tramite riga di comando (CMD), spostarsi nella cartella \bin\ dove è installato MinGW. Nel mio caso, l'ho installato in M:\MinGW, quindi devo spostarmi in tale cartella con il comando cd M:\MinGW\bin

M:
cd M:\MinGW\bin

Copiare ed incollare sulla riga di comando (CMD) la seguente istruzione e premere [Invio]:

mingw-get install msys-patch

È necessario applicare la patch per poi applicare il file *.patch scaricato precedentemente

Creare la libreria LibEWF.dll con BCC32

Creare una nuova cartella (io ho creato la cartella /bcc_compile/ sul mio desktop) e decomprimere le due librerie zlib-1.2.8.tar.gz e libewf-20140608.tar.gz in tale cartella. Se si utilizzano versioni differenti di queste librerie, i nomi saranno conseguentemente differenti.

Rinominare la sottocartella zlib-1.2.8 in zlib.

Copiare i file generate_bcc32.sh e libewf-bcc.patch nella sottocartella libewf-20140608.

Installazione dei file di Borland BCC 5.5

Avviare la console di MinGW (chiamata MSYS) tramite la riga di comando (CMD) ed eseguire:

M:\MinGW\msys\1.0\msys.bat

Per maggiori informazioni su MinGW e su come configurarlo per attivare le funzionalità COPIA ed INCOLLA, consultare la parte precedente di questo articolo.

Tramite MSYS spostarsi nella cartella LibEWF. Ho decompresso il progetto nella cartella /bcc_compile/ sul mio desktop ed ho copiato ed incollato il seguente comando:

cd C:/Users/Peter/Desktop/bcc_compile/libewf-20140608

Continuare in MSYS e copiare / incollare la seguente riga:

patch -p1 < libewf-20140608-bcc.patch

Quindi:

sh generate_bcc32.sh

Il passaggio successivo crea la libreria, ma, prima di procedere, ci sono alcune considerazioni da fare. Il file Make.bat è stato creato e memorizzato nella cartella del progetto (\bcc_compile\libewf-20140608\). Aprendo il file con un editor di testo salta subito all'occhio che il percorso della cartella di installazione in cui è presente il file BCC32 è impostato manualmente (C:\Borland\BCC55\). Questo è il motivo per cui ho suggerito di installare il programma in quella cartella. I file generati *.bcc puntano pure loro a quella cartella di installazione, dove cercano i file da includere. Se sapete cosa state facendo, potete modificare i percorsi e farli puntare a cartelle differenti, sia nei file *.bat, sia nei file *.bcc. Nel caso del file *.bat, potete rendere relativi i percorsi e farli dipendere dalla variabile di sistema PATH. C'è un'altra considerazione da tenere conto per quanto riguarda la variabile PATH. Se avete installato un altro compilatore Borland/CodeGear/Embarcadero, la variabile PATH potrebbe puntare a file binari differenti che verrebbero eseguiti prima dei file binari di BCC 5.5. Quindi, è possibile modificare la seconda riga del file *.bat in modo da utilizzare solamente i file binari di BCC 5.5: set PATH=C:\Borland\BCC55\bin.

Quando siete pronti a procedere, spostatevi nella cartella del progetto tramite riga di comando (CMD)

cd c:\users\peter\desktop\bcc_compile\libewf-20140608

E, successivamente, sempre tramite riga di comando, eseguite il file make.bat

make.bat

Verranno compiltati tutti file e la libreria risultante libewf.dll comparirà nella cartella \libewf-20140608\libewf\ (nel caso del mio sistema, la cartella è c:\users\peter\desktop\bcc_compile\libewf-20140608\libewf\)

Borland BCC 5.5

Con un programma per il controllo delle dipendenze potete verificare tutte le librerie richieste da zlib.dll che potete trovare nella cartella \zlib\ (nel mio sistema, il percorso della cartella è c:\users\peter\desktop\bcc_compile\zlib\)

Per usare la libreria con IsoBuster, copiarla assieme al file zlib.dll nella sottocartella \Plugins\ presente nella cartella di installazione di IsoBuster. Una volta trovata la libreria libewf.dll, IsoBuster la caricherà ogni qualvolta risulti necessario.

Libreria LibEWF.dll compilata con BCC32 per IsoBuster

A livello personale, preferisco la libreria compilata con Borland, poiché ha dimensioni ridotte, dipende da meno librerie e l'utilizzo è gratuito, a differenza del compilatore MinGW che impone maggiori restrizioni. Come detto, però, la libreria compilata con Borland esporta i nomi delle funzioni anteponendo il carattere underscore, quindi è necessario utilizzare almeno la versione 3.6 di IsoBuster. La libreria creata con Borland (BCC) non funziona con le versioni di IsoBuster inferiori alla 3.6.

Di seguito, potete scaricare le librerie che ho creato con i passaggi illustrati in questo articolo:

Scarica la libreria libewf-20140608 compilata con MinGW
Scarica la libreria libewf-20140608 compilata con BCC32