Crear una librería dinámica LibEWF para acceder al Formato de Compresión de Encasillamiento Experto (Expert Witness Compression Format) *.EWF

IsoBuster 3.4 y versiones superiores incluyen la posibilidad de cargar la Librería LibEWF de forma dinámica. LibEWF ya estaba incluida/construida en IsoBuster, pero desde la versión 3.4 de IsoBuster usted ya puede cargar una versión más moderna de la librería de 'open source' si lo desea.

LibEWF es una librería para acceder al Formato de Compresión de Encasillamiento Experto (Expert Witness Compression Format). Esto permite a IsoBuster abrir los archivos *.EWF.

En este artículo le mostraremos cómo construir su propia versión de LibEWF.dll, usando dos compiladores existentes, MinGW y Compilador libre Borland C++ 5.5 (BCC32)

Sin embargo, es importante indicarle que el archivo compilado dll usando Borland C++ 5.5 solamente funcionará con las versiones 3.6 y superiores de IsoBuster. La razón está en que MinGW y VC++ exportan nombres de funciones 'as is' y además Borland añade un carácter de subrayado al nombre. Las versiones 3.4 y 3.5 de Isobuster buscan una función sin el carácter del subrayado. Las versiones 3.6 y superiores de IsoBuster prueban la existencia o no del carácter del subrayado, y usan aquella función que esté disponible.

Crear una librería dinámica LibEWF library (LibEWF.dll) con MinGW

+

Descargar la última (o preferida) librería LibEWF

El proyecto LibEWF se encuentra disponible actualmente en GitHub pero los archivos que se necesiten para construir la dll no deben ser descargados desde esta localización. En vez de ello, desde la LibEWF wiki, descargue un proyecto desde esta localización de Google drive

Durante la composición de este artículo yo descargué y usé libewf-20140608.tar.gz

Descargar e instalar MinGW

Descargar MinGW e iniciar la instalación:

Instalación de MinGW Administrador de la Instalación de MinGW

Al final de la instalación se lanza el Administrador de Instalación. No instale nada de esta forma. Usted podría hacerlo, pero le demostraré una forma más fácil para asegurarse de que se han instalado todos los paquetes requeridos

Instalar los Paquetes de MinGW requeridos

En el Indicador de Comandos (CMD, hay quienes le llaman caja de DOS), navegar hasta la carpeta \bin\ donde usted instaló MinGW. Yo lo instalé en M:\MinGW, así que yo necesito ir hasta cd M:\MinGW\bin

M:
cd M:\MinGW\bin

Copie y pegue la siguiente línea al indicador de comandos (CMD, indicador de comandos) y presione [Intro]:

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

Todos los paquetes requeridos ahora se instalarán

Instalación de los paquetes de MinGW por medio de la línea de comandos
Construir LibEWF.dll con MinGW

Desempaquetar el proyecto LibEWF. Para este artículo yo desempaqueté libewf-20140608.tar.gz con un programa de realizar unzip hacia mi mostrador (C:/Users/Peter/Desktop/libewf-20140608)

Iniciar la aplicación de la consola de MinGW (llamada MSYS) por medio del indicador de comandos (CMD), ejecutando:

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

MSYS se iniciará y aparecerá lo siguiente:

MinGW MSYS

Como usted deseará copiar y pegar líneas en MSYS usted necesitará cambiar sus propiedades (ciertamente después de una instalación nueva).

Oprima con el botón derecho del ratón en la barra de títulos de la ventana de MSYS y seleccione 'Properties', seleccione la pestaña de 'Options' y marque el casillero 'Quick Edit mode', y a continuación presione 'OK'. Usted comprobará que al presionar con el botón derecho del ratón sobre MSYS es, de hecho, una operación de PEGAR

Consola MinGW / Propiedades MSYS

Asegúrese de que el directorio MinGW está montado. Para hacer esto, introduzca (o copie y pegue = presionando el botón derecho del ratón) en MSYS:

mount M:\\MinGW /mingw

Continúe en MSYS y navegue hasta la carpeta de LibEWF. Yo desempaqueté mi proyecto en mi escritorio, así que copié y pegué:

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

Continúe en MSYS y copie / pegue la siguiente línea:

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

Después de unos pcos minutos de la construcción, ahora necesita ejecutar make en MSYS:

make

&invexcl; Terminado ! El dll resultanta (libewf-2.dll) aparecerá en la carpeta del proyecto \libewf\.libs\

Compruebe el proyecto con un comprobador de dependencias para ver cuáles son los dlls que usa para la instalación de MinGW. Yo comprobé lo que conseguí, por supuesto, y usted necesitará copiar zlib1.dll y libgcc_s_dw2-1.dll desde la carpeta de instalación de MinGW, hacia la carpeta en donde usted guarda el dll libewf

Por último, para usar el dll obtenido con IsoBuster, renómbrelo de libewf-2.dll a libewf.dll y copiélo, junto con zlib1.dll y libgcc_s_dw2-1.dll, hacia la carpeta de instalación de IsoBuster /Plugins/. Una vez colocado allí, IsoBuster cargará libewf.dll en el momento que lo necesite.

LibEWF.dll compilado con MinGW para IsoBuster

Crear una librería dinámica LibEWF (LibEWF.dll) con Borland C++ 5.5

+

Descargar la última (o preferida) librería LibEWF

Este paso es igual al que se ha explicado anteriormente, pero si usted comenzó desde este punto:

El proyecto LibEWF está actualmente disponible en GitHub pero los archivos necesarios para construir le dll no deben descargarse desde esta localización. En su lugar, debe hacerse desde la wiki de LibEWF, descargue el proyecto desde esta localización de Google drive

Durante la composición de este artículo yo descargué y usé libewf-20140608.tar.gz

Descargar e instalar Borland C++ 5.5

Descargar Borland C++ 5.5 e instalarlo en a las localizaciones predeterminadas sugeridas C:\Borland\BCC55 porque los siguientes scripts y generación de código dependen de dicha localización.

Descargar otros archivos y herramientas requeridas

Descargar la libería zlib
Descargar este proyecto master.zip, ábralo y extraiga generate_bcc32.sh del mismo (nada más que este archivo)
Descargar libewf-20140608-bcc.patch desde esta localización de Google drive, pero si usted está usando una versión diferente del proyecto necesitará encontrar un archivo de parcheado para dicho proyecto. También es posible que los futuros paquetes de LibEWF ya no necesiten el archivo de parcheo nunca más, ya veremos.

Debido a que el script *.sh necesita ser ejecutado, y que el archivo *.patch tiene que ser aplicado primeramente, se necesitan herramientas Unix. Si usted no tiene instalado nada que pueda hacerlo (p.e. CygWin), Le sugiero el uso de MinGW. La instalación y el uso de MinGW ya se explicó en una parte anterior de este artículo. Déjeme que le guíe en lo que usted necesita realizar:

Si MinGW todavía no está instalado, haga exactamente lo que se describió en la "Descargar e instalar MinGW" parte de este artículo.

En el Indicador de Comandos (CMD, algunos le llaman caja de DOS), navegue hasta la carpeta \bin\ donde usted instaló MinGW. Yo lo instalé en M:\MinGW, así que yo necesito ir hasta cd M:\MinGW\bin

M:
cd M:\MinGW\bin

Copie y pegue la siguiente línea en el indicador de comandos (CMD, indicador de comandos) y presione [Intro]:

mingw-get install msys-patch

Un Parche se necesita para poder aplicar el archivo *.patch que usted descargó anteriormente

Construir LibEWF.dll con BCC32

Cree una nueva carpeta (yo creé /bcc_compile/ en mi mostrador) y desempaquete las dos librerías zlib-1.2.8.tar.gz y libewf-20140608.tar.gz dentro de esa carpeta. Si usted está usando diferentes versiones de esas librerías sus nombres pueden ser diferentes.

Renombre la sub carpeta zlib-1.2.8 como simplemente zlib

Copie generate_bcc32.sh y libewf-bcc.patch dentro de la sub carpeta libewf-20140608.

Configuración de archivos Borland BCC 5.5

Inicie la aplicación de la consola de MinGW (llamada MSYS) desde el indicador de comandos (CMD), ejecutando:

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

Para mayor información sobre MinGW y cómo configurarlo para que pueda soportad COPIAR y PEGAR, le indico que vea la parte anterior de este artículo.

Continúe en MSYS y navegue hasta la capeta LibEWF. Yo desempaqueté el proyecto en /bcc_compile/ de mi mostrados, así que yo copié y pegué lo siguiente:

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

Continúe en MSYS y copie / pegue la siguiente línea:

patch -p1 < libewf-20140608-bcc.patch

Y a continuación:

sh generate_bcc32.sh

El siguiente paso actualmente es el de hacer la dll, pero antes de hacerlo usted debe considerar algunas cosas. Make.bat se generó y se colocó en la carpeta del proyecto (\bcc_compile\libewf-20140608\). Ábralo con un wditor de textos y notará los paths hasta la carpeta de de instalación de BCC32 (C:\Borland\BCC55\). De aquí la razón de que yo le dijera que lo instalara en esta carpeta. Los archivos *.bcc generados también apuntan hacia la carpeta de instalación de BCC installation para sus inclusiones. Si usted conoce lo que está haciendo, podrá cambiar esos paths a diferentes localizaciones, tanto en los archivos .bat como en los archivos *.bcc. O, en el caso de los archivos .bat, simplemente hacer que estén relativos y confiar en los valores del PATH. Sin embargo, el PATH es otro tema a considerar. Si usted tiene otro compilador Borland/CodeGear/Embarcadero instalado, el PATH puede variar y apuntar a diferentes binarios que se ejecutarán antes de que los binarios BCC 5.5 sean considerados. Así que usted puede desear editar la segunda línea del archivo .bat para que solamente use los binarios de BCC 5.5: set PATH=C:\Borland\BCC55\bin.

Cuando usted está preparado para continuar, navegue hasta la carpeta del proyecto en el indicador de comandos (CMD, indicador de comandos)

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

Y a continuación, todavía en CMD, ejecute el archivo make.bat

make.bat

Todo se compilará y el resultante archivo libewf.dll aparecerá en \libewf-20140608\libewf\ (c:\users\peter\desktop\bcc_compile\libewf-20140608\libewf\ en mi sistema)

Borland BCC 5.5

Con un comprobador de dependencias usted podrá ver que la dll requiere zlib.dll que usted encontrará en la carpeta \zlib\ (c:\users\peter\desktop\bcc_compile\zlib\ en mi sistema)

Para usar el archivo dll con IsoBuster, cópielo, junto con zlib.dll, a la carpeta de instalación \Plugins\. Una vez localizado allí, IsoBuster cargará libewf.dll en el momento que lo necesite.

LibEWF.dll compilado con BCC32 para IsoBuster

Como nota personal, yo posiblemente cambiaré a un dll compilado con Borland, ya que es de menor tamaño, requiere menos dlls adicionales, y su uso es gratuito, mientras que el compilador MinGW implica ciertas restricciones. Sin embargo, tal como he explicado, los dlls creados con el compilador Borland se exportan con un carácter de subrayado, así que se necesita por lo menos la versión 3.6 de IsoBuster. Un dll credo con Borland (BCC) no funcionará con una versión de IsoBuster inferior a la 3.6

Usted puede descargar los dlls que yo he creado usando los métodos explicados aquí FYI:

Descargar libewf-20140608 creado con MinGW
Descargar libewf-20140608 creado con BCC32