18

TrueCrypt をコンパイルしようとしています。https://github.com/syglug/truecryptの手順を使用しています。

3 つの環境変数 ( pkcsddkMSVC16_ROOT) を設定し、msvc2008 でプロジェクトを開きました。これは説明書にはありませんでしたが、NASM をインストールする必要があったので、インストールして NASM を PATH に入れました。ビルドすると、以下が得られます。IDE でキャンセル ビルドが選択可能であっても、コンパイラは何もせず、システムはアイドル状態になります。

このステップの後、Crypto.lib は存在します

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)

ハングするだけです。IDEが失敗または停止したことを認識していないように見えるCPUを使用していません。もう一度実行すると、これが得られます

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.

msvc2012 がインストールされているので、それも試してみました。同じ問題が発生します

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

キャンセル/ビルドを再度行うと、以下が表示されます

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>  

ここで何が問題なのですか?TrueCrypt をビルドするにはどうすればよいですか? Windows 7 64ビットを実行しています

4

3 に答える 3

33

https://github.com/syglug/truecryptからすべてのプロジェクトを正常にビルドできました。主にreadme.txtの指示に従いました。説明が十分に詳しくないため、私が行ったすべての手順を以下に説明します。いくつかの手順について追加の質問がある場合は、追加の詳細を含めます。

Windows 7 X64 にインストールされた Visual Studio 2008 を使用しました。必要に応じて、Visual Studio 2010 または 2012 で同じことを再現できます。

  1. MSDN からダウンロードしました (サブスクリプションがあります) Visual C++ 1.52: en_vc152.exe。自己解凍したEXEファイルです。パスをほとんど短く保持し、MSVC15直接抽出したディレクトリ名にスペースを入れないようにC:\. たとえば、16 ビット VC コンパイラの古いバイナリが にありましたC:\MSVC15\BIN
  2. ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20からダウンロードしたすべてのファイルをC:\PKCS-11ディレクトリに配置しました。すべての依存ファイルのC:\PKCS-11\pkcs11.hようなファイルは同じディレクトリにありますC:\PKCS-11
  3. NASMの現在のバージョン 2.10.05 をhttp://www.nasm.us/pub/nasm/releasebuilds/2.10.05/からダウンロードしました。ディレクトリにnasm-2.10.05-win32.zipを解凍しましたC:\nasm-2.10.05。そのため、 で見つけることnasm.exeができますC:\nasm-2.10.05
  4. Windows 用のGzip のバイナリをダウンロードしました。に抽出しました。が含まれています。gzip-1.3.12-1-bin.zipC:\gzip-1.3.12-1-binC:\gzip-1.3.12-1-bin\bingzip.exe
  5. 以前にディレクトリにWindows DDKをインストールしていましたC:\WinDDK\7600.16385.1
  6. https://github.com/syglug/truecryptからtruecrypt-master.zipをダウンロードしました。ディレクトリに抽出しました。そのため、ディレクトリで見つけることができます。C:\truecrypt-masterCrypto.vcprojC:\truecrypt-master\Crypto

グローバル環境変数を変更したくないので、次のバッチ ファイルを作成しました。

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"

バッチ ファイルの最後の行で、Visual Studio 2008 が開始されます ( devenv.exe)。CMD.EXE (Visual Studio 2008 を開始した親プロセス) で設定されたすべての環境変数を継承します。

readmeに記載されているソリューション ファイル「TrueCrypt.sln」は、githubにあるソースには含まれていません。そのため、サブディレクトリで見つけたすべてのプロジェクトファイルを開きC:\truecrypt-master、コンパイルしました。Crypto.vcproj(から) C:\truecrypt-master\CryptoBoot.vcproj(からC:\truecrypt-master\Boot\Windows)、Driver.vcproj(からC:\truecrypt-master\Driver)、Format.vcproj(からC:\truecrypt-master\Format)、Mount.vcproj(からC:\truecrypt-master\Mount)でした。

すべてのプロジェクトを正常にコンパイルできました。唯一の小さな問題は、 と の構築中にFormat.vcprojありMount.slnました。ファイルFormat.tlbサブディレクトリMount.tlbに存在します。だから私はTLBファイルが参照されている行を修正しましたC:\truecrypt-master\Format\Format.rcC:\truecrypt-master\Mount\Mount.rc

IDR_FORMAT_TLB          TYPELIB                 ".\\Format\\Format.tlb"

IDR_MOUNT_TLB           TYPELIB                 ".\\Mount\\Mount.tlb"

後で対応する修正をhttps://github.com/syglug/truecryptにプル リクエストの形式で投稿します。

UPDATEDBuildDriver.cmd : ファイルの行を変更する必要があります

set TC_BUILD_ARCH=x64 WNET

set TC_BUILD_ARCH=x64

ドライバーをビルドできるようにします。

"$(SolutionDir)..\Crypto"さらに、およびのような正しいパスを使用してラインを構築する必要が"$(SolutionDir)..\Common"あります (Visual Studio の nmake オプションを参照してください)。1回使用する場合TrueCrypt.slnC:\TrueCrypt7.1a必要ありません。

UPDATED 2:プロジェクトをコンパイルすると、ファイル内C:\TrueCrypt7.1a\Release\Setup FilesまたはC:\truecrypt-master\Release\Setup Filesファイル内に表示されます

ここに画像の説明を入力

ファイルは(後でコメントに投稿したリンクwww.truecrypt.orgTrueCrypt Setup.exeからダウンロード)にのみ存在します。コメントで述べたように、Visual Studio 2008 を構成して、既定の 6.0a ではなく Windows SDK 7 を使用して、セットアップ プロジェクトを正常にコンパイルできるようにする必要があります。C:\TrueCrypt7.1a

コンパイルされるドライバーは、Microsoft 署名でデジタル署名されていません。そのため、ドライバはデフォルトで Windows 7 によって信頼されません。したがって、ドライバーが機能することを確認するにF8は、コンピューターの起動中に押して、ドライバーの署名を無効にする必要があります。

ここに画像の説明を入力

その後、実行できるようになりますTrueCrypt.exe(C:\TrueCrypt7.1a\Release\Setup Filesたとえば、ディレクトリから)。警告が表示されます

ここに画像の説明を入力

しかし、それTrueCrypt.exeは機能し、あなたは見るでしょう

ここに画像の説明を入力

于 2012-11-16T09:54:42.413 に答える
2

PATH 環境変数を変更したようで、一部のフォルダー パスに引用符 ("") が含まれています。Windows では、スペースとの混同を避けるために引用符が不要になりました。エラー PRJ0002 : エラー結果 255 が 'C:\Windows\SysWow64\cmd.exe' から返されました" は、これを修正すると消えます。

于 2012-11-16T08:37:01.307 に答える