Eine dynamische LibEWF Bibliothek erstellen , um auf das Expert Witness Compression Format (*.EWF) zuzugreifen

IsoBuster 3.4 und höhere Versionen beinhalten die Funktion, die LibEWF Bibliothek dynamisch zu laden. LibEWF ist bereits in IsoBuster eingebaut, aber seit IsoBuster 3.4 ist es auch möglich, eine andere oder neuere Version von LibEWF dynamisch zu laden.

LibEWF ist eine Bibliothek für den Zugriff auf das Expert Witness Compression Format. Es erlaubt IsoBuster, *.EWF Dateien zu öffnen.

In diesem Artikel werden wir Ihnen zeigen, wie Sie Ihre eigene Version von LibEWF.dll erzeugen können mit der Hilfe zweier Compiler, MinGW und der kostenlose Borland C++ 5.5 Compiler (BCC32)

Es ist jedoch wichtig, darauf hinzuweisen, dass die mit Borland C++ kompilierte dll nur mit IsoBuster 3.6 und höher funktionieren wird. Der Grund dafür ist, dass MinGW und VC++ Funktionsnamen ohne weiteren Zusatz exportiert, während Borland einen Unterstrich an den Funktionsnamen hinzufügt. IsoBuster-Versionen 3.4 und 3.5 sucht die Funktionen ohne Unterstrich. IsoBuster Version 3.6 und höher sucht nach beiden, mit oder ohne Unterstrich, und nutzt dann das, was verfügbar ist.

Eine dynamische LibEWF Bibliothek (LibEWF.dll) erstellen mit MinGW

+

Laden Sie die neueste (oder die gewünschte) LibEWF Bibliothek herunter

Das LibEWF Projekt wird derzeit gehostet von GitHub, aber Sie sollten die benötigten Dateien zum Erstellen der dll nicht von diesem Ort herunterladen. Stattdessen, gehen Sies zur LibEWF wiki und laden Sie das Projekt von diesem Google Drive Speicherort herunter.

Beim Schreiben dieses Artikel habe ich folgende Version genutzt: libewf-20140608.tar.gz

Download und Installation von MinGW

Laden Sie MinGW herunter und starten Sie die Installation:

MinGW Installation MinGW Installation Manager

Am Ende der Installation startet der Installation Manager. Installieren Sie nichts auf diese Weise. Sie können dies zwar tun, aber ich werde Ihnen einen einfacheren Weg zeigen, bei dem sichergestellt ist, dass alle benötigten Pakete installiert werden.

Installieren der benötigten MinGW Pakete

In der Kommandozeile (CMD, auch DOS Box genannt), navigieren Sie zum \bin\ Ordner in welchen Sie MinGW installiert haben. Ich habe es installiert in M:\MinGW, also navigiere ich zu cd M:\MinGW\bin

M:
cd M:\MinGW\bin

Kopieren Sie folgende Zeile, fügen Sie sie in die Kommandozeile (CMD) ein und drücken Sie [Enter]:

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

Alle benötigten Pakete werden nun installiert

MinGW Pakete - Installation über die Kommandozeile
LibEWF.dll mit MinGW erstellen

Entpacken Sie das LibEWF Projekt. Für diesen Artikel habe ich libewf-20140608.tar.gz mit einem Entpackprogramm auf meinen Desktop entpackt (C:/Users/Peter/Desktop/libewf-20140608)

Starten Sie die MinGW Konsole (MSYS genannt) über die Kommandozeile (CMD), indem Sie eingeben:

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

MSYS wird starten. Das sieht dann etwa so aus:

MinGW MSYS

Da Sie Zeilen in MSYS kopieren und einfügen möchten, müssen die Einstellungen geändert werden (besonders nach einer neuen Installation).

Klicken Sie mit Rechts auf die Titelleiste des MSYS-Fensters und wählen Sie 'Properties', dann gehen Sie auf den Reiter 'Options' und setzen Sie den Haken bei 'QuickEdit mode', anschließend klicken Sie auf 'OK'. Sie werden merken, dass ein Rechtsklick auf MSYS dem Einfügen entspricht.

MinGW Konsole / MSYS Eigenschaften

Stellen Sie sicher, dass das MinGW Verzeichnis gemountet ist. Um das zu tun, geben Sie folgende Zeile in MSYS ein (oder Sie kopieren und fügen es ein; Einfügen = Rechtsklick):

mount M:\\MinGW /mingw

Navigieren Sie in MSYS zum LibEWF Ordner. Ich habe das Projekt nach auf meinen Desktop entpackt, also habe ich Kopieren und Einfügen benutzt:

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

Weiter geht es in MSYS. Kopieren und fügen Sie folgende Zeile ein:

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

Nach einigen Minuten des Buildens müssen Sie noch make in MSYS ausführen:

make

Das wars ! Die erstellte dll (libewf-2.dll) wird im Projekt-Ordner \libewf\.libs\ abgelegt.

Prüfen Sie die dll mit einem Dependency Checker, um zu sehen, welche dlls aus der MinGW Installation benötigt werden. Dies habe ich natürlich bereits nachgeprüft. Sie benötigen die Dateien zlib1.dll und libgcc_s_dw2-1.dll aus dem MinGW Installationsordner. Kopieren Sie diese Dateien in den Ordner, in welchem Sie die libewf dll haben.

Zuletzt benennen Sie noch libewf-2.dll nach libewf.dll um und kopieren Sie sie zusammen mit zlib1.dll und libgcc_s_dw2-1.dll in den IsoBuster \Plugins\ Ordner. Einmal dort abgelegt, wird IsoBuster libewf.dll bei Bedarf laden.

Mit MinGW kompilierte LibEWF.dll für IsoBuster

Eine dynamische LibEWF Bibliothek (LibEWF.dll) erstellen mit Borland C++ 5.5

+

Laden Sie die neueste (oder die gewünschte) LibEWF Bibliothek herunter

Dieser Schritt wurde bereits hier beschrieben, aber wenn Sie hier beginnen möchten:

Das LibEWF Projekt wird derzeit gehostet von GitHub, aber Sie sollten die benötigten Dateien zum Erstellen der dll nicht von diesem Ort herunterladen. Stattdessen, gehen Sies zur LibEWF wiki und laden Sie das Projekt von diesem Google Drive Speicherort herunter.

Beim Schreiben dieses Artikel habe ich folgende Version genutzt: libewf-20140608.tar.gz

Herunterladen und Installieren von Borland C++ 5.5

Laden Sie Borland C++ 5.5 herunter und installieren Sie es am vorgeschlagenen Speicherort C:\Borland\BCC55, denn die nachfolgende Prozedur bezieht sich immer auf diesen Speicherort.

Download anderer benötigter Dateien und Tools

Laden Sie die zlib Bibliothek herunter.
Laden Sie diese master.zip Projektdatei herunter, öffnen Sie sie und extrahieren Sie daraus nur generate_bcc32.sh, sonst keine anderen Dateien.
Laden Sie libewf-20140608-bcc.patch von diesem Google Drive Speicherort herunter. Sollten Sie jedoch eine andere Version des Projektes nutzen, müssen Sie eine passende Patch-Datei finden. Es kann auch sein, dass LibEWF Packages in Zukunft diese Patch-Datei gar nicht mehr brauchen.

Da das *.sh Skript ausgeführt werden muss und weil die *.patch Datei zuerst angewandt werden muss, werden Unix tools benötigt. Wenn Sie nichts installiert haben, was mit solchen Dateien umgehen kann (bspw. CygWin), empfehle ich Ihnen MinGW. Installation und Benutzung von MinGW wurde in diesem Artikel weiter oben bereits beschrieben. Ich erkläre Ihnen kurz die nötigen Schritte:

Sollte MinGW noch nicht installiert sein, befolgen Sie genau die Schritte, die in diesem Artikel beschrieben sind "Download und Installation von MinGW".

In der Kommandozeile (CMD, auch DOS Box genannt), navigieren Sie zum \bin\ Ordner in welchen Sie MinGW installiert haben. Ich habe es installiert in M:\MinGW, also navigiere ich zu cd M:\MinGW\bin

M:
cd M:\MinGW\bin

Kopieren Sie folgende Zeile, fügen Sie sie in die Kommandozeile ein und drücken Sie [Enter]:

mingw-get install msys-patch

Patch wird benötigt, um die heruntergeladene *.patch Datei anwenden zu können

LibEWF.dll mit BCC32 erstellen

Erstellen Sie einen neuen Ordner (Ich habe /bcc_compile/ auf meinem Desktop erstellt) und entpacken Sie die zwei Bibliotheken zlib-1.2.8.tar.gz und libewf-20140608.tar.gz in diesen Ordner. Wenn Sie unterschiedliche Versionen dieser Bibliotheken nutzen, werden die Namen entsprechend anders lauten.

Bennenen Sie den Unterordner zlib-1.2.8 um nach zlib

Kopieren Sie generate_bcc32.sh und libewf-bcc.patch in den libewf-20140608 Unterordner.

Borland BCC 5.5 Datei Setup

Starten Sie die MinGW Konsole (MSYS genannt) über die Kommandozeile (CMD), indem Sie eingeben:

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

Für nähere Informationen zu MinGW und wie es eingerichtet werden kann, dass es Kopieren und Einfügen unterstützt, beziehe ich mich auf einen bereits behandelten Abschnitt in diesem Artikel.

Navigieren Sie in MSYS zum LibEWF Ordner. Ich habe das Projekt nach /bcc_compile/ auf meinen Desktop entpackt, also habe ich Kopieren und Einfügen benutzt:

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

Weiter geht es in MSYS. Kopieren und fügen Sie folgende Zeile ein:

patch -p1 < libewf-20140608-bcc.patch

Und anschließend:

sh generate_bcc32.sh

Der nächste Schritt erstellt die eigentliche dll, aber bevor Sie weitermachen, gibt es einige Dinge zu bedenken. Make.bat wurde generiert und in den Projekt-Ordner (\bcc_compile\libewf-20140608\) abgelegt. Öffnen Sie die Datei mit einem Texteditor und Sie werden die fest hinterlegten Pfade zum BCC32 Installationsordner (C:\Borland\BCC55\) finden. Aus diesem Grund hatte ich Ihnen empfohlen, in diesen Ordner zu installieren. Die generierten *.bcc Dateien zeigen ebenfalls auf den BCC Installationsordner für die Include-Anweisungen. Wenn Sie wissen, was Sie tun, können Sie diese Pfade natürlich auf einen anderen Speicherort zeigen lassen, in der .bat und den *.bcc Datei(en). Im Falle der .bat Datei, können Sie die Pfade auch relativ angeben und den Wert von PATH anpassen. Bei der Anpassung von PATH gibt jedoch noch Folgendes zu bedenken: Wenn Sie noch einen anderen Borland/CodeGear/Embarcadero Compiler installiert haben, kann PATH durchaus zu verschiedenen Binaries zeigen, welche ausgeführt werden, bevor die BCC 5.5 Binaries bedacht werden. Überlegen Sie deshalb, ob Sie nicht auch die zweite Zeile in der .bat Datei ändern, damit nur die BCC 5.5 Binaries verwendet werden: set PATH=C:\Borland\BCC55\bin.

Wenn Sie bereit sind, weiterzumache, navigieren Sie mit Hilfe der Kommandozeile (CMD) in den Projekt-Ordner

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

Als Nächstes, immer noch in CMD, führen Sie die make.bat Datei aus

make.bat

Alles wird kompiliert und die resultierende libewf.dll wird in \libewf-20140608\libewf\ abgelegt (auf meinem System in: C:\users\peter\desktop\bcc_compile\libewf-20140608\libewf\ )

Borland BCC 5.5

Mithilfe eines Dependency Checkers können Sie sehen, dass zlib.dll benötigt wird, welche im \zlib\ Ordner liegt (auf meinem System in: C:\users\peter\desktop\bcc_compile\zlib\ )

Um die erzeugte dll mit IsoBuster zu nutzen, kopieren Sie sie zusammen mit zlib.dll, in den IsoBuster \Plugins\ Ordner. Einmal dort abgelegt, wird IsoBuster libewf.dll bei Bedarf laden.

Mit BCC32 kopmpilierte LibEWF.dll für IsoBuster

Ich persönlich bevorzuge die mit Borland erstellte dll, denn sie ist kleiner, benötigt weniger andere dlls und der Borland Compiler ist kostenlos. Der MinGW Compiler hat einige Einschränkungen. Bedenken Sie jedoch, dass der Borland Compiler die Funktionen mit einem Unterstrich exportiert und Sie deshalb IsoBuster 3.6 oder neuer benötigen. Die mit Borland (BCC) erstellte dll funktioniert nicht mit IsoBuster Versionen unterhalb von 3.6.

Sie können die dll-Dateien, welche ich mit den oben beschriebenen Methoden erstellt habe, gerne hier herunterladen:

Download libewf.dll Version 20140608, erstellt mit MinGW
Download libewf.dll Version 20140608, erstellt mit BCC32