truecrypt - una - veracrypt
¿Cómo construyo TrueCrypt en Windows? (3)
Para todos los que se atasquen en este problema PKEY_AppUserModel_ID: funciona definiendo lo siguiente en Setup.c antes de la primera función ():
EXTERN_C const PROPERTYKEY DECLSPEC_SELECTANY PKEY_AppUserModel_ID =
{ { 0x9F4C2855, 0x9F79, 0x4B39,
{ 0xA8, 0xD0, 0xE1, 0xD4, 0x2D, 0xE1, 0xD5, 0xF3, } }, 5 };
Saludos cordiales
Estoy tratando de compilar TrueCrypt. Estoy usando las instrucciones de https://github.com/syglug/truecrypt .
Establecí las 3 variables de entorno ( pkcs
, ddk
, MSVC16_ROOT
) y abrí el proyecto en msvc2008. Esto no estaba en las instrucciones, pero necesitaba que NASM estuviera instalado, así que lo instalé y puse NASM en la RUTA. Ahora cuando construyo obtengo lo siguiente. Destaca a pesar de que el IDE tiene la construcción de cancelación seleccionable, el compilador no está haciendo nada y el sistema está inactivo.
Crypto.lib existe después de este paso
1>------ Build started: Project: Crypto, Configuration: Release Win32 ------
2>------ Build started: Project: Boot, Configuration: Release Win32 ------
3>------ Build started: Project: Driver, Configuration: Release Win32 ------
2>Performing Makefile project actions
3>Performing Makefile project actions
1>Performing Custom Build Step
3>------ Building truecrypt.sys: Release x86 ------
1>Aes_hw_cpu.asm
2>Microsoft (R) C/C++ Optimizing Compiler Version 8.00c
2>Copyright (c) Microsoft Corp 1984-1993. All rights reserved.
3>The syntax of the command is incorrect.
3>Project : error PRJ0002 : Error result 255 returned from ''C:/Windows/SysWow64/cmd.exe''.
3>Build log was saved at "file://c:/unzipped/tc/Driver/Release/BuildLog.htm"
3>Driver - 1 error(s), 0 warning(s)
1>Performing Custom Build Step
1>Aes_x86.asm
1>Compiling...
1>Whirlpool.c
1>Twofish.c
1>Sha2.c
1>Sha1.c
1>Serpent.c
1>Rmd160.c
1>Des.c
1>Cast.c
1>Blowfish.c
1>Aestab.c
1>Aeskey.c
1>Generating Code...
1>Creating library...
1>Build log was saved at "file://c:/unzipped/tc/Crypto/Release/BuildLog.htm"
1>Crypto - 0 error(s), 0 warning(s)
Simplemente se cuelga. No está utilizando ninguna CPU que el IDE no parece saber que falló o se detuvo. Cuando corro de nuevo me sale esto
1>------ Build started: Project: Boot, Configuration: Release Win32 ------
2>------ Build started: Project: Driver, Configuration: Release Win32 ------
1>Performing Makefile project actions
2>Performing Makefile project actions
2>------ Building truecrypt.sys: Release x86 ------
1>Microsoft (R) C/C++ Optimizing Compiler Version 8.00c
1>Copyright (c) Microsoft Corp 1984-1993. All rights reserved.
2>The syntax of the command is incorrect.
Tengo msvc2012 instalado, así que lo probé también. Tengo los mismos problemas
1>------ Build started: Project: Crypto, Configuration: Release Win32 ------
2>------ Build started: Project: Boot, Configuration: Release Win32 ------
3>------ Build started: Project: Driver, Configuration: Release Win32 ------
1> Performing Custom Build Tools
1> Aes_hw_cpu.asm
3> ------ Building truecrypt.sys: Release x86 ------
2> Microsoft (R) C/C++ Optimizing Compiler Version 8.00c
2> Copyright (c) Microsoft Corp 1984-1993. All rights reserved.
2>
3> The syntax of the command is incorrect.
3>C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V110/Microsoft.MakeFile.Targets(38,5): error MSB3073: The command "echo ------ Building truecrypt.sys: Release x86 ------
3>C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V110/Microsoft.MakeFile.Targets(38,5): error MSB3073: cmd.exe /c BuildDriver.cmd -build -release -x86 "C:/unzipped/tc//Common" "C:/unzipped/tc//Crypto" "C:/unzipped/tc/Driver/"
3>C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V110/Microsoft.MakeFile.Targets(38,5): error MSB3073: if errorlevel 1 exit %errorlevel%
3>C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V110/Microsoft.MakeFile.Targets(38,5): error MSB3073: echo.
3>C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V110/Microsoft.MakeFile.Targets(38,5): error MSB3073: echo ------ Building truecrypt.sys: Release x64 ------
3>C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V110/Microsoft.MakeFile.Targets(38,5): error MSB3073: BuildDriver.cmd -build -release -x64 "C:/unzipped/tc//Common" "C:/unzipped/tc//Crypto" "C:/unzipped/tc/Driver/"" exited with code 255.
1> Performing Custom Build Tools
1> Aes_x86.asm
1> Aeskey.c
1> Aestab.c
1> Blowfish.c
1> Cast.c
1> Des.c
1> Rmd160.c
1> Serpent.c
1> Sha1.c
1> Sha2.c
1> Twofish.c
1> Whirlpool.c
1> Generating Code...
1> Crypto.vcxproj -> C:/unzipped/tc/Crypto/Release/Crypto.lib
Cuando cancelo / compilo de nuevo obtengo el siguiente
1>------ Build started: Project: Boot, Configuration: Release Win32 ------
2>------ Build started: Project: Driver, Configuration: Release Win32 ------
2> ------ Building truecrypt.sys: Release x86 ------
2> The syntax of the command is incorrect.
2>C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V110/Microsoft.MakeFile.Targets(38,5): error MSB3073: The command "echo ------ Building truecrypt.sys: Release x86 ------
2>C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V110/Microsoft.MakeFile.Targets(38,5): error MSB3073: cmd.exe /c BuildDriver.cmd -build -release -x86 "C:/unzipped/tc//Common" "C:/unzipped/tc//Crypto" "C:/unzipped/tc/Driver/"
2>C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V110/Microsoft.MakeFile.Targets(38,5): error MSB3073: if errorlevel 1 exit %errorlevel%
2>C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V110/Microsoft.MakeFile.Targets(38,5): error MSB3073: echo.
2>C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V110/Microsoft.MakeFile.Targets(38,5): error MSB3073: echo ------ Building truecrypt.sys: Release x64 ------
2>C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V110/Microsoft.MakeFile.Targets(38,5): error MSB3073: BuildDriver.cmd -build -release -x64 "C:/unzipped/tc//Common" "C:/unzipped/tc//Crypto" "C:/unzipped/tc/Driver/"" exited with code 255.
1> Microsoft (R) C/C++ Optimizing Compiler Version 8.00c
1> Copyright (c) Microsoft Corp 1984-1993. All rights reserved.
1>
¿Qué está mal aquí? ¿Cómo construyo TrueCrypt? Estoy ejecutando Windows 7 64bits
Parece que ha modificado la variable de entorno PATH y alguna ruta de carpeta contiene comillas (""). Windows ya no necesita citas para evitar confundirse con espacios. Error PRJ0002: El resultado de error 255 devuelto desde ''C: / Windows / SysWow64 / cmd.exe'' "desaparece una vez que arregle esto.
Pude construir con éxito todos los proyectos desde https://github.com/syglug/truecrypt . Seguí principalmente las instrucciones de readme.txt . Debido a que las instrucciones no son lo suficientemente detalladas, describo a continuación todos los pasos que hice. Si tiene preguntas adicionales sobre algunos pasos, incluiré detalles adicionales.
Utilicé Visual Studio 2008 instalado en Windows 7 X64. Si fuera necesario, podría reproducir lo mismo con Visual Studio 2010 o 2012.
- Descargué desde MSDN (tengo suscripción) Visual C ++ 1.52: en_vc152.exe . Es un archivo EXE auto extraído. Para mantener las rutas en su mayoría cortas y sin espacios en los nombres de directorio,
MSVC15
directamente enC:/
. Así que tuve, por ejemplo, binarios antiguos de compilador VC de 16 bits enC:/MSVC15/BIN
. - Coloqué todos los archivos descargados de ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20 en el directorio
C:/PKCS-11
. El archivoC:/PKCS-11/pkcs11.h
como todos los archivos dependientes estará en el mismo directorioC:/PKCS-11
- Descargué la versión actual 2.10.05 de NASM de http://www.nasm.us/pub/nasm/releasebuilds/2.10.05/ . nasm-2.10.05-win32.zip en el nasm-2.10.05-win32.zip
C:/nasm-2.10.05
. Para quenasm.exe
pueda encontrarse enC:/nasm-2.10.05
. - Descargué Binaries of Gzip para Windows .
gzip-1.3.12-1-bin.zip
aC:/gzip-1.3.12-1-bin
. De modo queC:/gzip-1.3.12-1-bin/bin
contienegzip.exe
. - Ya había instalado Windows DDK en el directorio
C:/WinDDK/7600.16385.1
anteriormente. - Descargué truecrypt-master.zip desde https://github.com/syglug/truecrypt . Lo
C:/truecrypt-master
directorioC:/truecrypt-master
. Para poder encontrarC:/truecrypt-master/Crypto
directorioC:/truecrypt-master/Crypto
.
Como no me gusta modificar las variables de entorno global, creé el siguiente archivo por lotes:
SET MSVC16_ROOT=C:/MSVC15
SET PKCS11_INC=C:/PKCS-11
PATH=C:/nasm-2.10.05;C:/gzip-1.3.12-1-bin/bin;%PATH%
"C:/Program Files (x86)/Microsoft Visual Studio 9.0/Common7/IDE/devenv.exe"
En la última línea del archivo por lotes se iniciará Visual Studio 2008 ( devenv.exe
). Hereda todas las variables de entorno establecidas en CMD.EXE (el proceso principal que inició Visual Studio 2008).
El archivo de solución ''TrueCrypt.sln'' descrito en el archivo readme.txt no se incluye en las fuentes que se encuentran en https://github.com/syglug/truecrypt . Así que abrí todos los archivos de Proyecto que encontré en los subdirectorios de C:/truecrypt-master
y los compilé. Era Crypto.vcproj
(de C:/truecrypt-master/Crypto
), Boot.vcproj
(de C:/truecrypt-master/Boot/Windows
), Driver.vcproj
(de C:/truecrypt-master/Driver
), Format.vcproj
(de C:/truecrypt-master/Format
) y Mount.vcproj
(de C:/truecrypt-master/Mount
).
Pude compilar con éxito todos los proyectos. Los únicos pequeños problemas fueron durante la construcción de Format.vcproj
y Mount.sln
. Los archivos Format.tlb
y Mount.tlb
existen en los subdirectorios . Así que arreglé las líneas donde se hace referencia a los archivos TLB en C:/truecrypt-master/Format/Format.rc
y C:/truecrypt-master/Mount/Mount.rc
para
IDR_FORMAT_TLB TYPELIB ".//Format//Format.tlb"
y
IDR_MOUNT_TLB TYPELIB ".//Mount//Mount.tlb"
Posteriormente, publicaré las correcciones correspondientes en https://github.com/syglug/truecrypt en forma de Solicitud de extracción.
ACTUALIZADO : Uno tiene que cambiar en el archivo BuildDriver.cmd
la línea
set TC_BUILD_ARCH=x64 WNET
a
set TC_BUILD_ARCH=x64
para poder construir Driver.
Además, se deben crear líneas que utilicen las rutas correctas como "$(SolutionDir)../Crypto"
y "$(SolutionDir)../Common"
(consulte las opciones de nake en Visual Studio). Si uno usa TrueCrypt.sln
de C:/TrueCrypt7.1a
, no es necesario.
ACTUALIZADO 2 : Después de compilar el proyecto, verá los C:/TrueCrypt7.1a/Release/Setup Files
en C:/TrueCrypt7.1a/Release/Setup Files
o en C:/truecrypt-master/Release/Setup Files
.
El archivo TrueCrypt Setup.exe
solo existe en C:/TrueCrypt7.1a
(descargado del enlace www.truecrypt.org que usted publicó en el comentario más adelante). Como mencioné en el comentario, antes de que necesite configurar Visual Studio 2008 para usar Windows SDK 7 en lugar del 6.0a predeterminado para poder compilar con éxito el proyecto de instalación.
Los controladores que se compilarán no están firmados digitalmente con la firma de Microsoft. Por lo tanto, Windows 7 no confía en los controladores de forma predeterminada. Entonces, para verificar que el controlador funcione, debe presionar F8 durante el inicio de la computadora y deshabilitar la firma del controlador:
Después de eso, podrá ejecutar TrueCrypt.exe
(desde el directorio C:/TrueCrypt7.1a/Release/Setup Files
, por ejemplo). Usted recibirá una advertencia
pero el TrueCrypt.exe
funcionará y verá