我在study TrueCrypt當時是6.3a的版本,現在它已經推出7.0的版本,因為support多平台的關係,裡面用的source code 全部用c來寫,所以要在做資料轉換的時候就不能用MFC的 Cstring,這時就要查一些古老的c library 了,所以改起來可說是一把眼淚一把鼻涕的查資料到三更半夜。
要build TrueCrypt 之前有以下幾樣東西要準備
1. Microsoft Visual Studio 2008 SP1
2. Microsoft Visual C++ 1.52
3. Windows Driver Developer Kit (7600.16385.0)
4. NASM (2.09)
5. GZIP
6. PKCS11 (Cryptographic Token Interface)
7. Microsoft Windows SDK for Windows 7 (如果你是在Windows 7 build的話可以不用裝)
1. Microsoft Visual Studio 2008 SP1
我沒在VS2005 與 VS2010試過,理論上VS2010應該沒啥大問題
2. 安裝Microsoft Visual C++ 1.52
將這個package解開到c:\MSVC 下
3. 安裝Windows Driver Developer Kit (7600.16385.0)
預設的安裝會是在 c:\WinDDK 下
4. 安裝NASM (2.09)
解壓縮後把 nasm.exe copy到c:\windows\system32 下
5. 安裝GZIP
解壓縮後把 gzip.exe copy到 c:\windows\system32 下
6. 下載 PKCS11
下載點
下載這三個header檔 pkcs11.h, pkcs11f.h 以及 pkcs11t.h 至 c:\PKSC11_INC 目錄下
7. 安裝Microsoft Windows SDK for Windows 7
預設安裝目錄在是 c:\Program Files\Microsoft SDKs\Windows\v7.0
下載 TrueCrypt source code 與設定編譯環境
1. 下載 TrueCrypt source code
2. 設定作業系統環境變數
在環境變數內把以下的目錄加進去系統變數內
變數名:MSVC16_ROOT 變數值: c:\MSVC
變數名:WINDDK_ROOT 變數值: c:\WinDDK\7600.16385.0
變數名:PKCS11_INC 變數值: c:\PKCS11_INC
基本上這樣就已經ok了,現在打開 TrueCrypt.sln 的solution 檔來編譯看看吧。
TrueCrypt 的solution 包含了6個project,裡面比較重要的是 Crypto, Driver, Format跟Mount這四個projects. 基本上 Crypto是不會去做太多的更動,因為裡面大多是很標準的encryption library。 Driver的project可以build出32 bit與64 bit的driver,不過64 bits的driver沒sign 過是沒法load起來。
如果你想要讓你TrueCrypt 認不得你所create的decryption volume的話你必去要在 Driver project下去修改Volumes.c 檔0x54525545 這個offset值,不過一旦你修改這個值,所有reference 這個值的檔案都要修改。
我動最多的project是Format這個project,我大概改了約一半左右的檔案,特別是Tcformat.c 這個檔幾乎是被我改到面目全非了..
TrueCrypt 的solution 包含了6個project,裡面比較重要的是 Crypto, Driver, Format跟Mount這四個projects. 基本上 Crypto是不會去做太多的更動,因為裡面大多是很標準的encryption library。 Driver的project可以build出32 bit與64 bit的driver,不過64 bits的driver沒sign 過是沒法load起來。
如果你想要讓你TrueCrypt 認不得你所create的decryption volume的話你必去要在 Driver project下去修改Volumes.c 檔0x54525545 這個offset值,不過一旦你修改這個值,所有reference 這個值的檔案都要修改。
我動最多的project是Format這個project,我大概改了約一半左右的檔案,特別是Tcformat.c 這個檔幾乎是被我改到面目全非了..
沒有留言:
張貼留言