如何编译TrueCrypt 7.0a源码
来源:互联网 发布:python 打包安装程序 编辑:程序博客网 时间:2024/06/01 08:31
TrueCrypt是一款开源的虚拟加密磁盘工具,目前最新版本是7.0a,本文以该版本源代
码为基础,介绍了如何在VC2008下进行编译。
环境配置
1. Microsoft Visual Studio 2008 SP1 (VC++ 2008)
2. Microsoft Visual Studio VC++ 1.52
3. NASM version 2.07 compiled on Jul 19 2009
4. gzip 1.2.4 Win32 (02 Dec 97)
5. PKCS11头文件
6. Windows Driver Develop Kit 7600.16385.1
7. TrueCrypt 7.0a Source.zip
准备步骤
1. Microsoft Visual Studio 2008 SP1 (VC++ 2008) ,这个是必需的了
2. 安装Microsoft Visual Studio VC++ 1.52,(这里为了方便管理编译TrueCrypt所
需要的lib,我们可以在c盘建立一个目录,就命名为TrueCrypt)把MSVC++ 1.52安装在
C:\TrueCrypt\MSVC\
3. 下载NASM,解压缩到C:\TrueCrypt\ NASM\
4. 下载gzip,解压缩到C:\TrueCrypt\ NASM\ gzip\
5. 下载PKCS11头文件,解压缩到C:\TrueCrypt\PKCS11_INC\
6. 下载WDK7600.16385.1(这个是目前最新的,更新消息参考微软官网),安装到
E:\WinDDK\7600.16385.1\(这个目录是我这边这么设置的,在下面环境变量设置需要
注意)
7. 下载TrueCrypt 7.0a源代码(http://www.truecrypt.org/downloads2)
环境变量设置
右键我的电脑——属性——高级——环境变量,添加下面几个系统变量:
1. 变量名MSVC16_ROOT,变量值C:\TrueCrypt\MSVC
2. 变量名PKCS11_INC,变量值C:\TrueCrypt\PKCS11_INC
3. 变量名WINDDK_ROOT,变量值E:\WinDDK\7600.16385.1
4. 修改系统Path,在末尾增加C:\TrueCrypt\NASM;C:\TrueCrypt\gzip
环境变量设置完毕后需要重启电脑
源代码修改
1. 修改C:\TrueCrypt\PKCS11_INC\ pkcs11.h,添加
#define CKR_NEW_PIN_MODE 0x000001B0
#define CKR_NEXT_OTP 0x000001B1
可以直接添加在#define __PASTE(x,y) x##y后面一行
2. 修改TrueCrypt 7.0a Source其中的Setup项目中的Setup.h文件,添加
/*---region add by gc---*/
#include "wtypes.h"
const PROPERTYKEY PKEY_AppUserModel_ID = {
{
(unsigned long)2009,/*unsigned long Data1;*/
(unsigned short)12,/*unsigned short Data2;*/
(unsigned short)23,/*unsigned short Data3;*/
0x44,0x55,0x55,0x55,0x55,0x55,0x55,0x55
},/*GUID fmtid;*/
(DWORD)PID_FIRST_USABLE /*DWORD pid;*/
};
/*---endregion---*/
添加在文件的开始处,即
#ifdef __cplusplus
extern "C" {
#endif
后面一行即可。
到此为止,所有配置均设置完毕,打开TrueCrypt.sln解决方案,Build Solution就可
以在Debug目录生成Setup Files目录,其下至少可以看到TrueCrypt.exe,
truecrypt.sys,truecrypt-x64.sys这个三个文件了。
码为基础,介绍了如何在VC2008下进行编译。
环境配置
1. Microsoft Visual Studio 2008 SP1 (VC++ 2008)
2. Microsoft Visual Studio VC++ 1.52
3. NASM version 2.07 compiled on Jul 19 2009
4. gzip 1.2.4 Win32 (02 Dec 97)
5. PKCS11头文件
6. Windows Driver Develop Kit 7600.16385.1
7. TrueCrypt 7.0a Source.zip
准备步骤
1. Microsoft Visual Studio 2008 SP1 (VC++ 2008) ,这个是必需的了
2. 安装Microsoft Visual Studio VC++ 1.52,(这里为了方便管理编译TrueCrypt所
需要的lib,我们可以在c盘建立一个目录,就命名为TrueCrypt)把MSVC++ 1.52安装在
C:\TrueCrypt\MSVC\
3. 下载NASM,解压缩到C:\TrueCrypt\ NASM\
4. 下载gzip,解压缩到C:\TrueCrypt\ NASM\ gzip\
5. 下载PKCS11头文件,解压缩到C:\TrueCrypt\PKCS11_INC\
6. 下载WDK7600.16385.1(这个是目前最新的,更新消息参考微软官网),安装到
E:\WinDDK\7600.16385.1\(这个目录是我这边这么设置的,在下面环境变量设置需要
注意)
7. 下载TrueCrypt 7.0a源代码(http://www.truecrypt.org/downloads2)
环境变量设置
右键我的电脑——属性——高级——环境变量,添加下面几个系统变量:
1. 变量名MSVC16_ROOT,变量值C:\TrueCrypt\MSVC
2. 变量名PKCS11_INC,变量值C:\TrueCrypt\PKCS11_INC
3. 变量名WINDDK_ROOT,变量值E:\WinDDK\7600.16385.1
4. 修改系统Path,在末尾增加C:\TrueCrypt\NASM;C:\TrueCrypt\gzip
环境变量设置完毕后需要重启电脑
源代码修改
1. 修改C:\TrueCrypt\PKCS11_INC\ pkcs11.h,添加
#define CKR_NEW_PIN_MODE 0x000001B0
#define CKR_NEXT_OTP 0x000001B1
可以直接添加在#define __PASTE(x,y) x##y后面一行
2. 修改TrueCrypt 7.0a Source其中的Setup项目中的Setup.h文件,添加
/*---region add by gc---*/
#include "wtypes.h"
const PROPERTYKEY PKEY_AppUserModel_ID = {
{
(unsigned long)2009,/*unsigned long Data1;*/
(unsigned short)12,/*unsigned short Data2;*/
(unsigned short)23,/*unsigned short Data3;*/
0x44,0x55,0x55,0x55,0x55,0x55,0x55,0x55
},/*GUID fmtid;*/
(DWORD)PID_FIRST_USABLE /*DWORD pid;*/
};
/*---endregion---*/
添加在文件的开始处,即
#ifdef __cplusplus
extern "C" {
#endif
后面一行即可。
到此为止,所有配置均设置完毕,打开TrueCrypt.sln解决方案,Build Solution就可
以在Debug目录生成Setup Files目录,其下至少可以看到TrueCrypt.exe,
truecrypt.sys,truecrypt-x64.sys这个三个文件了。
- 如何编译TrueCrypt 7.0a源码
- 如何编译TrueCrypt 7.0a源码
- 如何编译TrueCrypt 7.0a源码
- 如何编译TrueCrypt 7.0a源码
- 如何编译TrueCrypt 7.0a源码
- vs2010 编译 TrueCrypt-7.1a-Source
- TrueCrypt 7.0a的安装
- 怎么编译TrueCrypt
- 编译truecrypt for android
- 编译truecrypt for android
- TrueCrypt编译记录
- 如何使用TrueCrypt加密
- 工作笔记:TrueCrypt编译记录
- truecrypt加密分区的编译
- TrueCrypt 6.2a原理及代码分析
- 如何编译mina源码
- 如何编译Zookeeper源码
- 如何编译Docker源码
- 链接收藏
- cf 168 k-Multiple Free Set bin_search
- 路径API
- js验证密码安全度
- hdu2114 Calculate S(n)
- 如何编译TrueCrypt 7.0a源码
- 多路由表(multiple Routing Tables) 的一篇文章
- 网页及mysql数据库乱码的处理
- 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”
- 绿色软件-vpn客户端最新发布!
- 你应当如何学习C++(以及编程)(rev#1)
- vs c# 调试 C++ dll
- thinkphp3.0,读写分离,同一个方法中跨库操作
- 神经网络5--som