1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2025-11-11 11:08:02 -06:00
Files
VeraCrypt/doc/html_zh-cn/CompilingGuidelineWin.html

1226 lines
54 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<style>
.textbox {
vertical-align: top;
height: auto !important;
font-family: Helvetica,sans-serif;
font-size: 20px;
font-weight: bold;
margin: 10px;
padding: 10px;
background-color: white;
width: auto;
border-radius: 10px;
}
.texttohide {
font-family: Helvetica,sans-serif;
font-size: 14px;
font-weight: normal;
}
</style>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>VeraCrypt - 为偏执者提供强大安全保障的免费开源磁盘加密工具</title>
<meta name="description" content="VeraCrypt是一款适用于Windows、Mac OS X和Linux的免费开源磁盘加密软件。若攻击者迫使您透露密码VeraCrypt可提供似是而非的否认性。与文件加密不同VeraCrypt执行的数据加密是实时即时、自动、透明的仅需极少内存且不涉及临时未加密文件。"/>
<meta name="keywords" content="加密, 安全"/>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div>
<a href="Documentation.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
</div>
<div id="menu">
<ul>
<li><a href="Home.html">主页</a></li>
<li><a href="Code.html">源代码</a></li>
<li><a href="Downloads.html">下载</a></li>
<li><a class="active" href="Documentation.html">文档</a></li>
<li><a href="Donation.html">捐赠</a></li>
<li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">论坛</a></li>
</ul>
</div>
<div>
<p>
<a href="Documentation.html">文档</a>
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
<a href="Technical%20Details.html">技术细节</a>
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
<a href="CompilingGuidelines.html">从源代码构建VeraCrypt</a>
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
<a href="CompilingGuidelineWin.html">Windows构建指南</a>
</p></div>
<div class="wikidoc">
本指南介绍了如何设置一个能够编译VeraCrypt的Windows系统。此外还描述了如何编译VeraCrypt。 <br>
这里以Windows 10系统为例进行说明但其他Windows系统的操作过程类似。
</div>
<div class="wikidoc">
编译VeraCrypt需要以下组件
<ol>
<li>Microsoft Visual Studio 2010微软Visual Studio 2010</li>
<li>Microsoft Visual Studio 2010 Service Pack 1微软Visual Studio 2010服务包1</li>
<li>NASM</li>
<li>YASM</li>
<li>Visual C++ 1.52</li>
<li>Windows SDK 7.1Windows软件开发工具包7.1</li>
<li>Windows Driver Kit 7.1Windows驱动程序开发工具包7.1</li>
<li>Windows 8.1 SDKWindows 8.1软件开发工具包)</li>
<li>gzip</li>
<li>upx</li>
<li>7zip</li>
<li>Wix3</li>
<li>Microsoft Visual Studio 2019微软Visual Studio 2019</li>
<li>Windows 10 SDKWindows 10软件开发工具包</li>
<li>Windows Driver Kit 1903Windows驱动程序开发工具包1903</li>
<li>Visual Studio构建工具</li>
</ol>
</div>
<div class="wikidoc">
以下是操作步骤。点击任何链接可直接跳转到相关步骤:
<ul>
<li><strong><a href="#InstallationOfMicrosoftVisualStudio2010">安装Microsoft Visual Studio 2010</a></li></strong>
<li><strong><a href="#InstallationOfMicrosoftVisualStudio2010ServicePack1">安装Microsoft Visual Studio 2010 Service Pack 1</a></li></strong>
<li><strong><a href="#InstallationOfNASM">安装NASM</a></li></strong>
<li><strong><a href="#InstallationOfYASM">安装YASM</a></li></strong>
<li><strong><a href="#InstallationOfVisualCPP">安装Microsoft Visual C++ 1.52</a></li></strong>
<li><strong><a href="#InstallationOfWindowsSDK71PP">安装Windows SDK 7.1</a></li></strong>
<li><strong><a href="#InstallationOfWDK71PP">安装Windows Driver Kit 7.1</a></li></strong>
<li><strong><a href="#InstallationOfSDK81PP">安装Windows 8.1 SDK</a></li></strong>
<li><strong><a href="#InstallationOfGzip">安装gzip</a></li></strong>
<li><strong><a href="#InstallationOfUpx">安装upx</a></li></strong>
<li><strong><a href="#InstallationOf7zip">安装7zip</a></li></strong>
<li><strong><a href="#InstallationOfWix3">安装Wix3</a></li></strong>
<li><strong><a href="#InstallationOfVS2019">安装Microsoft Visual Studio 2019</a></li></strong>
<li><strong><a href="#InstallationOfWDK10">安装Windows Driver Kit 2004</a></li></strong>
<li><strong><a href="#InstallationOfVisualBuildTools">安装Visual Studio构建工具</a></li></strong>
<li><strong><a href="#DownloadVeraCrypt">下载VeraCrypt源代码文件</a></li></strong>
<li><strong><a href="#CompileWin32X64">编译VeraCrypt的Win32/x64版本</a></li></strong>
<li><strong><a href="#CompileARM64">编译VeraCrypt的ARM64版本</a></li></strong>
<li><strong><a href="#BuildVeraCryptExecutables">构建VeraCrypt可执行文件</a></li></strong>
<li><strong><a href="#ImportCertificates">导入证书</a></li></strong>
<li><strong><a href="#KnownIssues">已知问题</a></li></strong>
</ul>
</div>
<div class="wikidoc">
<div class="textbox" id="InstallationOfMicrosoftVisualStudio2010">
<a href="#InstallationOfMicrosoftVisualStudio2010">安装Microsoft Visual Studio 2010</a>
<div class="texttohide">
<p>
<ol>
<li>
访问以下微软网站,使用免费的微软账户登录: <br>
<a href="https://my.visualstudio.com/Downloads?q=Visual%20Studio%202010%20Professional&pgroup=" target="_blank">https://my.visualstudio.com/Downloads?q=Visual%20Studio%202010%20Professional&pgroup=</a>
</li>
<li>
请下载“Visual Studio Professional 2010”的试用版本 <br>
<img src="CompilingGuidelineWin/DownloadVS2010.jpg" width="80%">
</li>
<li>
双击下载的ISO文件进行挂载
</li>
<li>
以管理员身份运行“autorun.exe”文件
</li>
<li>
使用默认设置安装Microsoft Visual Studio 2010
</li>
</ol>
Microsoft SQL Server 2008 Express Service Pack 1 (x64)的安装可能会失败但这对于编译VeraCrypt不是必需的。
</p>
</div>
</div>
<div class="textbox" id="InstallationOfMicrosoftVisualStudio2010ServicePack1">
<a href="#InstallationOfMicrosoftVisualStudio2010ServicePack1">安装Microsoft Visual Studio 2010 Service Pack 1</a>
<div class="texttohide">
<p>
注意:微软官方安装程序试图下载的内容已不再可用。因此,需要使用离线安装程序。
<ol>
<li>
访问互联网档案馆的网站下载Microsoft Visual Studio 2010 Service Pack 1的ISO镜像<br>
<a href="https://archive.org/details/vs-2010-sp-1dvd-1" target="_blank">https://archive.org/details/vs-2010-sp-1dvd-1</a>
</li>
<li>
双击下载的ISO文件进行挂载
</li>
<li>
以管理员身份运行“Setup.exe”文件
</li>
<li>
使用默认设置安装Microsoft Visual Studio 2010 Service Pack 1
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="InstallationOfNASM">
<a href="#InstallationOfNASM">安装NASM</a>
<div class="texttohide">
<p>
<ol>
<li>
在以下链接下载“nasm-2.08-installer.exe” <br>
<a href="https://www.nasm.us/pub/nasm/releasebuilds/2.08/win32/" target="_blank">https://www.nasm.us/pub/nasm/releasebuilds/2.08/win32/</a>
</li>
<li>
以管理员身份运行该文件
</li>
<li>
使用默认设置安装NASM
</li>
<li>
将NASM添加到路径变量中。这将使该命令在命令行中全局可用。 <br>
<ol style="list-style-type: upper-roman;">
<li>
打开文件资源管理器
</li>
<li>
在左侧文件树中,右键单击“此电脑”并选择“属性” <br>
<img src="CompilingGuidelineWin/SelectThisPC.jpg" width="40%">
</li>
<li>
在右侧菜单中,点击“高级系统设置” <br>
<img src="CompilingGuidelineWin/SelectAdvancedSystemSettings.jpg" width="50%">
</li>
<li>
请点击“环境变量” <br>
<img src="CompilingGuidelineWin/SelectEnvironmentVariables.jpg" width="17%">
</li>
<li>
在系统变量区域内请选择“Path”变量并点击“编辑...” <br>
<img src="CompilingGuidelineWin/SelectPathVariable.jpg" width="25%">
</li>
<li>
点击“新建”并添加以下值: <br>
<p style="font-family: 'Courier New', monospace;">C:\Program Files (x86)\nasm</p>
</li>
<li>
点击“确定”关闭窗口
</li>
</ol>
</li>
<li>
要检查配置是否正常工作,请打开命令提示符并查看以下命令的输出: <br>
<p style="font-family: 'Courier New', monospace;">nasm</p> <br>
<img src="CompilingGuidelineWin/NasmCommandLine.jpg" width="50%">
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="InstallationOfYASM">
<a href="#InstallationOfYASM">YASM的安装</a>
<div class="texttohide">
<p>
<ol>
<li>
请创建以下文件夹: <br>
C:\Program Files\YASM
</li>
<li>
请在以下链接下载“Win64 VS2010 .zip”文件 <br>
<a href="https://yasm.tortall.net/Download.html" target="_blank">https://yasm.tortall.net/Download.html</a>
</li>
<li>
由于下载率较低或连接未加密,您的浏览器可能会提示该文件存在安全风险。不过,官方网站是该文件最可靠的来源,因此我们建议允许下载
</li>
<li>
解压ZIP文件并将文件复制到“C:\Program Files\YASM”
</li>
<li>
请在以下链接下载“Win64 .exe”文件 <br>
<a href="https://yasm.tortall.net/Download.html" target="_blank">https://yasm.tortall.net/Download.html</a>
</li>
<li>
由于下载率较低或连接未加密,您的浏览器可能会提示该文件存在安全风险。不过,官方网站是该文件最可靠的来源,因此我们建议允许下载
</li>
<li>
将文件重命名为“yasm.exe”并复制到“C:\Program Files\YASM”
</li>
<li>
将YASM添加到路径变量中并为YASM创建一个新的系统变量。这样可以使该命令在命令行中全局可用。 <br>
<ol style="list-style-type: upper-roman;">
<li>
打开文件资源管理器
</li>
<li>
在左侧文件树中,右键单击“此电脑”并选择“属性” <br>
<img src="CompilingGuidelineWin/SelectThisPC.jpg" width="40%">
</li>
<li>
在右侧菜单中,请点击“高级系统设置” <br>
<img src="CompilingGuidelineWin/SelectAdvancedSystemSettings.jpg" width="50%">
</li>
<li>
请点击“环境变量” <br>
<img src="CompilingGuidelineWin/SelectEnvironmentVariables.jpg" width="17%">
</li>
<li>
在系统变量区域内请选择“Path”变量并点击“编辑...” <br>
<img src="CompilingGuidelineWin/SelectPathVariable.jpg" width="25%">
</li>
<li>
点击“新建”并添加以下值: <br>
<p style="font-family: 'Courier New', monospace;">C:\Program Files\YASM</p>
</li>
<li>
点击“确定”关闭顶部窗口
</li>
<li>
在系统变量区域内,请点击“新建...” <br>
<img src="CompilingGuidelineWin/AddNewSystemVar.jpg" width="25%">
</li>
<li>
使用以下值填写表单: <br>
<p style="font-family: 'Courier New', monospace;">变量名YASMPATH<br> 变量值C:\Program Files\YASM</p>
</li>
<li>
点击“确定”关闭窗口
</li>
</ol>
</li>
<li>
要检查配置是否正常工作,请打开命令提示符并查看以下命令的输出: <br>
<p style="font-family: 'Courier New', monospace;">yasm</p> <br>
以及 <br>
<p style="font-family: 'Courier New', monospace;">vsyasm</p> <br>
<img src="CompilingGuidelineWin/YasmCommandLine.jpg" width="50%">
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="InstallationOfVisualCPP">
<a href="#InstallationOfVisualCPP">Microsoft Visual C++ 1.52的安装</a>
<div class="texttohide">
<p>
<ol>
<li>
可以通过付费的Microsoft MSDN订阅获取Visual C++ 1.52。如果您没有订阅可以通过互联网档案馆下载ISO镜像 <br>
<a href="https://archive.org/details/ms-vc152" target="_blank">https://archive.org/details/ms-vc152</a>
</li>
<li>
创建文件夹“C:\MSVC15”
</li>
<li>
挂载ISO文件并将“MSVC”文件夹的内容复制到“C:\MSVC15”
</li>
<li>
为Microsoft Visual C++ 1.52创建一个系统变量 <br>
<ol style="list-style-type: upper-roman;">
<li>
打开文件资源管理器
</li>
<li>
在左侧文件树中,右键单击“此电脑”并选择“属性” <br>
<img src="CompilingGuidelineWin/SelectThisPC.jpg" width="40%">
</li>
<li>
在右侧菜单中,请点击“高级系统设置” <br>
<img src="CompilingGuidelineWin/SelectAdvancedSystemSettings.jpg" width="50%">
</li>
<li>
请点击“环境变量” <br>
<img src="CompilingGuidelineWin/SelectEnvironmentVariables.jpg" width="17%">
</li>
<li>
在系统变量区域内,请点击“新建...” <br>
<img src="CompilingGuidelineWin/AddNewSystemVar.jpg" width="25%">
</li>
<li>
使用以下值填写表单: <br>
<p style="font-family: 'Courier New', monospace;">变量名MSVC16_ROOT<br> 变量值C:\MSVC15</p>
</li>
<li>
点击“确定”关闭窗口
</li>
</ol>
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="InstallationOfWindowsSDK71PP">
<a href="#InstallationOfWindowsSDK71PP">Windows SDK 7.1的安装</a>
<div class="texttohide">
<p>
安装程序需要 .Net Framework 4不是像 .Net Framework 4.8 这样的较新版本。由于Windows 10已经预装了较新版本因此必须欺骗安装程序
<ol>
<li>
点击开始按钮并搜索“regedit.msc”。启动第一个搜索结果。
</li>
<li>
导航到“HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\”
</li>
<li>
更改“Client”文件夹的权限以便您可以编辑键 <br>
<ol style="list-style-type: upper-roman;">
<li>
右键单击子文件夹“Client”并选择“权限...”
</li>
<li>
点击“高级” <br>
<img src="CompilingGuidelineWin/RegeditPermissions-1.jpg" width="17%">
</li>
<li>
将所有者更改为您的用户并点击“添加” <br>
<img src="CompilingGuidelineWin/RegeditPermissions-2.jpg" width="35%">
</li>
<li>
将主体设置为您的用户,选择“完全控制”并点击“确定” <br>
<img src="CompilingGuidelineWin/RegeditPermissions-3.jpg" width="35%">
</li>
<li>
在“Client”文件夹中记录“Version”条目的值
</li>
<li>
双击“Version”条目并将值更改为“4.0.30319” <br>
<img src="CompilingGuidelineWin/RegeditPermissions-4.jpg" width="30%">
</li>
</ol>
</li>
<li>
更改“Full”文件夹的权限以便您可以编辑密钥 <br>
<ol style="list-style-type: upper-roman;">
<li>
右键单击子文件夹“Full”然后选择“权限...”
</li>
<li>
点击“高级” <br>
<img src="CompilingGuidelineWin/RegeditPermissions-1.jpg" width="17%">
</li>
<li>
将所有者更改为您的用户,然后点击“添加” <br>
<img src="CompilingGuidelineWin/RegeditPermissions-2.jpg" width="35%">
</li>
<li>
将主体设置为您的用户,选择“完全控制”,然后点击“确定” <br>
<img src="CompilingGuidelineWin/RegeditPermissions-3.jpg" width="35%">
</li>
<li>
在“Full”文件夹中记下“Version”条目的值。
</li>
<li>
双击“Version”条目并将值更改为“4.0.30319” <br>
<img src="CompilingGuidelineWin/RegeditPermissions-4.jpg" width="30%">
</li>
</ol>
</li>
<li>
从以下链接下载 Windows SDK 7.1 <br>
<a href="https://www.microsoft.com/en-us/download/details.aspx?id=8279" target="_blank">https://www.microsoft.com/en-us/download/details.aspx?id=8279</a>
</li>
<li>
以管理员身份运行下载的文件,并使用默认设置安装应用程序。
</li>
<li>
安装完成后,还原在注册表编辑器中所做的更改。 <br>
<b>注意:</b> 可以通过搜索“NT Service\TrustedInstaller”来恢复所有者“TrustedInstaller”。
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="InstallationOfWDK71PP">
<a href="#InstallationOfWDK71PP">安装 Windows 驱动工具包 7.1</a>
<div class="texttohide">
<p>
<ol>
<li>
请从以下链接下载 Windows 驱动工具包 7.1 的 ISO 文件: <br>
<a href="https://www.microsoft.com/en-us/download/details.aspx?id=11800" target="_blank">https://www.microsoft.com/en-us/download/details.aspx?id=11800</a>
</li>
<li>
双击下载的 ISO 文件进行挂载。
</li>
<li>
以管理员身份运行“KitSetup.exe”文件。在安装过程中选择安装所有功能。 <br>
<b>注意:</b> 安装过程中可能会提示您安装 .NET Framework 3.5。在这种情况下,请点击“下载并安装此功能”。
</li>
<li>
将驱动工具包安装到默认位置。
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="InstallationOfSDK81PP">
<a href="#InstallationOfSDK81PP">安装 Windows 8.1 SDK</a>
<div class="texttohide">
<p>
<ol>
<li>
请从以下链接下载 Windows 8.1 SDK 的 ISO 文件: <br>
<a href="https://developer.microsoft.com/de-de/windows/downloads/sdk-archive/" target="_blank">https://developer.microsoft.com/de-de/windows/downloads/sdk-archive/</a>
</li>
<li>
以管理员身份运行下载的文件,并使用默认设置安装 Windows 8.1 SDK。
</li>
<li>
为 Windows 8.1 SDK 创建一个系统变量 <br>
<ol style="list-style-type: upper-roman;">
<li>
打开文件资源管理器。
</li>
<li>
在左侧文件树中,右键单击“此电脑”,然后选择“属性” <br>
<img src="CompilingGuidelineWin/SelectThisPC.jpg" width="40%">
</li>
<li>
在右侧菜单中,点击“高级系统设置” <br>
<img src="CompilingGuidelineWin/SelectAdvancedSystemSettings.jpg" width="50%">
</li>
<li>
点击“环境变量” <br>
<img src="CompilingGuidelineWin/SelectEnvironmentVariables.jpg" width="17%">
</li>
<li>
在系统变量区域,点击“新建...” <br>
<img src="CompilingGuidelineWin/AddNewSystemVar.jpg" width="25%">
</li>
<li>
使用以下值填写表单: <br>
<p style="font-family: 'Courier New', monospace;">变量名WSDK81<br> 变量值C:\Program Files (x86)\Windows Kits\8.1\</p>
</li>
<li>
点击“确定”关闭窗口。
</li>
</ol>
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="InstallationOfGzip">
<a href="#InstallationOfGzip">安装 gzip</a>
<div class="texttohide">
<p>
<ol>
<li>
请创建以下文件夹: <br>
C:\Program Files (x86)\gzip
</li>
<li>
请从以下链接下载 gzip 版本: <br>
<a href="https://sourceforge.net/projects/gnuwin32/files/gzip/1.3.12-1/gzip-1.3.12-1-bin.zip/download?use-mirror=netix&download=" target="_blank">https://sourceforge.net/projects/gnuwin32/files/gzip/1.3.12-1/gzip-1.3.12-1-bin.zip/download?use-mirror=netix&download=</a>
</li>
<li>
将下载的 ZIP 文件内容复制到“C:\Program Files (x86)\gzip”。
</li>
<li>
将 gzip 添加到路径变量中。这样可以使该命令在命令行中全局可用。 <br>
<ol style="list-style-type: upper-roman;">
<li>
打开文件资源管理器。
</li>
<li>
在左侧文件树中,右键单击“此电脑”,然后选择“属性” <br>
<img src="CompilingGuidelineWin/SelectThisPC.jpg" width="40%">
</li>
<li>
在右侧菜单中,点击“高级系统设置” <br>
<img src="CompilingGuidelineWin/SelectAdvancedSystemSettings.jpg" width="50%">
</li>
<li>
点击“环境变量” <br>
<img src="CompilingGuidelineWin/SelectEnvironmentVariables.jpg" width="17%">
</li>
<li>
在系统变量区域选择“Path”变量然后点击“编辑...” <br>
<img src="CompilingGuidelineWin/SelectPathVariable.jpg" width="25%">
</li>
<li>
点击“新建”,并添加以下值: <br>
<p style="font-family: 'Courier New', monospace;">C:\Program Files (x86)\gzip\bin</p>
</li>
<li>
点击“确定”关闭窗口。
</li>
</ol>
</li>
<li>
要检查配置是否正常工作,请打开命令提示符,并查看以下命令的输出: <br>
<p style="font-family: 'Courier New', monospace;">gzip</p> <br>
<img src="CompilingGuidelineWin/gzipCommandLine.jpg" width="50%">
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="InstallationOfUpx">
<a href="#InstallationOfUpx">安装 upx</a>
<div class="texttohide">
<p>
<ol>
<li>
请创建以下文件夹: <br>
C:\Program Files (x86)\upx
</li>
<li>
请从以下链接下载最新的 upx-X-XX-win64.zip 版本: <br>
<a href="https://github.com/upx/upx/releases/tag/v3.96" target="_blank">https://github.com/upx/upx/releases/tag/v3.96</a>
</li>
<li>
将下载的 ZIP 文件内容复制到“C:\Program Files (x86)\upx”。
</li>
<li>
将 gzip 添加到路径变量中。这样可以使该命令在命令行中全局可用。 <br>
<ol style="list-style-type: upper-roman;">
<li>
打开文件资源管理器。
</li>
<li>
在左侧文件树中,右键单击“此电脑”,然后选择“属性” <br>
<img src="CompilingGuidelineWin/SelectThisPC.jpg" width="40%">
</li>
<li>
在右侧菜单中,请点击“高级系统设置” <br>
<img src="CompilingGuidelineWin/SelectAdvancedSystemSettings.jpg" width="50%">
</li>
<li>
请点击“环境变量” <br>
<img src="CompilingGuidelineWin/SelectEnvironmentVariables.jpg" width="17%">
</li>
<li>
在系统变量区域内请选择“Path”变量并点击“编辑...” <br>
<img src="CompilingGuidelineWin/SelectPathVariable.jpg" width="25%">
</li>
<li>
点击“新建”并添加以下值: <br>
<p style="font-family: 'Courier New', monospace;">C:\Program Files (x86)\upx</p>
</li>
<li>
点击“确定”关闭窗口
</li>
</ol>
</li>
<li>
要检查配置是否正常工作,请打开命令提示符并查看以下命令的输出: <br>
<p style="font-family: 'Courier New', monospace;">upx</p> <br>
<img src="CompilingGuidelineWin/upxCommandLine.jpg" width="50%">
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="InstallationOf7zip">
<a href="#InstallationOf7zip">7-Zip 的安装</a>
<div class="texttohide">
<p>
<ol>
<li>
请从以下链接下载最新版本的 7-Zip <br>
<a href="https://www.7-zip.de/" target="_blank">https://www.7-zip.de/</a>
</li>
<li>
以管理员身份运行下载的文件,并使用默认设置安装 7-Zip
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="InstallationOfWix3">
<a href="#InstallationOfWix3">WiX 3 的安装</a>
<div class="texttohide">
<p>
<ol>
<li>
请从以下链接下载 wix311.exe <br>
<a href="https://github.com/wixtoolset/wix3/releases" target="_blank">https://github.com/wixtoolset/wix3/releases</a>
</li>
<li>
以管理员身份运行下载的文件,并使用默认设置安装 WiX 工具集
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="InstallationOfVS2019">
<a href="#InstallationOfVS2019">Microsoft Visual Studio 2019 的安装</a>
<div class="texttohide">
<p>
<ol>
<li>
访问以下 Microsoft 网站,并用免费的 Microsoft 账户登录: <br>
<a href="https://my.visualstudio.com/Downloads?q=visual%20studio%202019%20Professional" target="_blank">https://my.visualstudio.com/Downloads?q=visual%20studio%202019%20Professional</a>
</li>
<li>
请下载最新的试用版“Visual Studio Professional 2019” <br>
<img src="CompilingGuidelineWin/DownloadVS2019.jpg" width="80%">
</li>
<li>
以管理员身份运行下载的文件,并完成安装向导。 <br>
选择以下工作负载进行安装: <br>
<ol style="list-style-type: upper-roman;">
<li>
Desktop development with C++
</li>
<li>
.NET desktop development
</li>
</ol>
选择以下单个组件进行安装:
<ol style="list-style-type: upper-roman;">
<li>
.NET
<ol style="list-style-type: upper-roman;">
<li>
.NET 6.0 Runtime
</li>
<li>
.NET Core 3.1 Runtime (LTS)
</li>
<li>
.NET Framework 4 targeting pack
</li>
<li>
.NET Framework 4.5 targeting pack
</li>
<li>
.NET Framework 4.5.1 targeting pack
</li>
<li>
.NET Framework 4.5.2 targeting pack
</li>
<li>
.NET Framework 4.6 targeting pack
</li>
<li>
.NET Framework 4.6.1 targeting pack
</li>
<li>
.NET Framework 4.7.2 targeting pack
</li>
<li>
.NET Framework 4.8 SDK
</li>
<li>
.NET Framework 4.8 targeting pack
</li>
<li>
.NET SDK
</li>
<li>
ML.NET Model Builder (Preview)
</li>
</ol>
</li>
<li>
云、数据库和服务器
<ol style="list-style-type: upper-roman;">
<li>
CLR data types for SQL Server
</li>
<li>
连接和发布工具
</li>
</ol>
</li>
<li>
代码工具
<ol style="list-style-type: upper-roman;">
<li>
NuGet package manager
</li>
<li>
Text Template Transformation
</li>
</ol>
</li>
<li>
编译器、构建工具和运行时
<ol style="list-style-type: upper-roman;">
<li>
.NET Compiler Platform SDK
</li>
<li>
C# and Visual Basic Roslyn compilers
</li>
<li>
C++ 2019 Redistributable Update
</li>
<li>
C++ CMake tools for Windows
</li>
<li>
C++/CLI support for v142 build tools (Latest)
</li>
<li>
MSBuild
</li>
<li>
MSVC v142 - VS 2019 C++ ARM64 build tools (Latest)
</li>
<li>
MSVC v142 - VS 2019 C++ ARM64 Spectre-mitigated libs (Latest)
</li>
<li>
MSVC v142 - VS 2019 C++ x64/x86 build tools (Latest)
</li>
<li>
MSVC v142 - VS 2019 C++ x64/x86 Spectre-mitigated libs (Latest)
</li>
</ol>
</li>
<li>
调试和测试
<ol style="list-style-type: upper-roman;">
<li>
.NET profiling tools
</li>
<li>
C++ AddressSanatizer
</li>
<li>
C++ profiling tools
</li>
<li>
Just-In-Time debugger
</li>
<li>
Test Adapter for Boost.Test
</li>
<li>
Test Adapter for Google Test
</li>
</ol>
</li>
<li>
开发活动
<ol style="list-style-type: upper-roman;">
<li>
C# and Visual Basic
</li>
<li>
C++ core features
</li>
<li>
F# language support
</li>
<li>
智能代码助手IntelliCode
</li>
<li>
JavaScript 和 TypeScript 语言支持
</li>
<li>
实时共享Live Share
</li>
</ol>
</li>
<li>
模拟器
<ol style="list-style-type: upper-roman;">
</ol>
</li>
<li>
游戏与图形
<ol style="list-style-type: upper-roman;">
<li>
DirectX 图形调试器和 GPU 性能分析器
</li>
</ol>
</li>
<li>
软件开发工具包SDK、库和框架
<ol style="list-style-type: upper-roman;">
<li>
C++ ATL for latest v142 build tools (ARM64)
</li>
<li>
C++ ATL for latest v142 build tools (x86 & x64)
</li>
<li>
C++ ATL for latest v142 build tools with Spectre Mitigations (ARM64)
</li>
<li>
C++ ATL for latest v142 build tools with Spectre Mitigations (x86 & x64)
</li>
<li>
C++ MFC for latest v142 build tools (ARM64)
</li>
<li>
C++ MFC for latest v142 build tools (x86 & x64)
</li>
<li>
C++ MFC for latest v142 build tools with Spectre Mitigations (ARM64)
</li>
<li>
C++ MFC for latest v142 build tools with Spectre Mitigations (x86 & x64)
</li>
<li>
Entity Framework 6 tools
</li>
<li>
TypeScript 4.3 SDK
</li>
<li>
Windows 10 SDK (10.0.19041.0)
</li>
<li>
Windows Universal C Runtime
</li>
</ol>
</li>
</ol>
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="InstallationOfWDK10">
<a href="#InstallationOfWDK10">Windows 驱动程序工具包 2004 版本的安装</a>
<div class="texttohide">
<p>
<ol>
<li>
请在以下链接下载 Windows 驱动程序工具包WDK2004 版本:<br>
<a href="https://docs.microsoft.com/en-us/windows-hardware/drivers/other-wdk-downloads" target="_blank">https://docs.microsoft.com/en-us/windows-hardware/drivers/other-wdk-downloads</a>
</li>
<li>
以管理员身份运行下载的文件,并使用默认设置安装 WDK。
</li>
<li>
安装结束时,系统会询问您是否要“安装 Windows 驱动程序工具包 Visual Studio 扩展”。<br>
请确保在关闭对话框之前选择此选项。
</li>
<li>
另一个安装程序将自动启动,并会检测到 Visual Studio Professional 2019 作为该扩展的可能目标。<br>
请选择它并继续进行安装。
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="InstallationOfVisualBuildTools">
<a href="#InstallationOfVisualBuildTools">Visual Studio 构建工具的安装</a>
<div class="texttohide">
<p>
<ol>
<li>
访问以下 Microsoft 网站,并用免费的 Microsoft 账户登录:<br>
<a href="https://my.visualstudio.com/Downloads?q=visual%20studio%202019%20build%20tools" target="_blank">https://my.visualstudio.com/Downloads?q=visual%20studio%202019%20build%20tools</a>
</li>
<li>
请下载最新版本的“Visual Studio 2019 构建工具”<br>
<img src="CompilingGuidelineWin/DownloadVSBuildTools.jpg" width="80%">
</li>
<li>
以管理员身份运行下载的文件,并通过向导进行安装。选择以下单个组件进行安装:
<ol style="list-style-type: upper-roman;">
<li>
.NET
<ol style="list-style-type: upper-roman;">
</ol>
</li>
<li>
云、数据库和服务器
<ol style="list-style-type: upper-roman;">
</ol>
</li>
<li>
代码工具
<ol style="list-style-type: upper-roman;">
</ol>
</li>
<li>
编译器、构建工具和运行时
<ol style="list-style-type: upper-roman;">
<li>
C++/CLI support for v142 build tools (Latest)
</li>
<li>
MSVC v142 - VS 2019 C++ ARM64 build tools (Latest)
</li>
<li>
MSVC v142 - VS 2019 C++ ARM64 Spectre-mitigated libs (Latest)
</li>
<li>
MSVC v142 - VS 2019 C++ x64/x86 build tools (Latest)
</li>
<li>
MSVC v142 - VS 2019 C++ x64/x86 Spectre-mitigated libs (Latest)
</li>
</ol>
</li>
<li>
调试和测试
<ol style="list-style-type: upper-roman;">
</ol>
</li>
<li>
开发活动
<ol style="list-style-type: upper-roman;">
</ol>
</li>
<li>
软件开发工具包SDK、库和框架
<ol style="list-style-type: upper-roman;">
<li>
C++ ATL for latest v142 build tools (ARM64)
</li>
<li>
C++ ATL for latest v142 build tools (x86 & x64)
</li>
<li>
C++ ATL for latest v142 build tools with Spectre Mitigations (ARM64)
</li>
<li>
C++ ATL for latest v142 build tools with Spectre Mitigations (x86 & x64)
</li>
</ol>
</li>
</ol>
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="DownloadVeraCrypt">
<a href="#DownloadVeraCrypt">下载VeraCrypt源代码文件</a>
<div class="texttohide">
<p>
<ol>
<li>
访问VeraCrypt的Github仓库<br>
<a href="https://github.com/veracrypt/VeraCrypt" target="_blank">https://github.com/veracrypt/VeraCrypt</a>
</li>
<li>
点击绿色的“Code”按钮并下载代码。<br>
你可以将仓库下载为zip文件但也可以考虑使用git协议以便跟踪更改。
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="CompileWin32X64">
<a href="#CompileWin32X64">编译VeraCrypt的Win32/x64版本</a>
<div class="texttohide">
<p>
<ol>
<li>
在Visual Studio <b>2010</b>中打开文件“src/VeraCrypt.sln”
</li>
<li>
选择“All|Win32”作为活动配置<br>
<img src="CompilingGuidelineWin/VS2010Win32Config.jpg" width="80%">
</li>
<li>
点击“Build -> Build Solution”<br>
<img src="CompilingGuidelineWin/VS2010BuildSolution.jpg" width="40%">
</li>
<li>
编译过程应仅出现警告,而无错误。部分项目可能会被跳过。
</li>
<li>
选择“All|x64”作为活动配置<br>
<img src="CompilingGuidelineWin/VS2010X64Config.jpg" width="80%">
</li>
<li>
点击“Build -> Build Solution”<br>
<img src="CompilingGuidelineWin/VS2010BuildSolution.jpg" width="40%">
</li>
<li>
编译过程应仅出现警告,而无错误。部分项目可能会被跳过。<br>
编译完成后请关闭Visual Studio 2010
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="CompileARM64">
<a href="#CompileARM64">编译VeraCrypt的ARM64版本</a>
<div class="texttohide">
<p>
<ol>
<li>
在Visual Studio <b>2019</b>中打开文件“src/VeraCrypt_vs2019.sln”
</li>
<li>
选择“All|ARM64”作为活动配置<br>
<img src="CompilingGuidelineWin/VS2019ARM64Config.jpg" width="80%">
</li>
<li>
点击“Build -> Build Solution”<br>
<img src="CompilingGuidelineWin/VS2019BuildSolution.jpg" width="40%">
</li>
<li>
编译过程应仅出现警告,而无错误。有一个项目可能会被跳过。<br>
编译完成后请关闭Visual Studio 2019
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="BuildVeraCryptExecutables">
<a href="#BuildVeraCryptExecutables">构建VeraCrypt可执行文件</a>
<div class="texttohide">
<p>
<ol>
<li>
以管理员身份打开命令行
</li>
<li>
进入“src/Signing/”文件夹
</li>
<li>
运行脚本“sign_test.bat”
</li>
<li>
你将在“src/Release/Setup Files”文件夹中找到生成的可执行文件
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="ImportCertificates">
<a href="#ImportCertificates">导入证书</a>
<div class="texttohide">
<p> 使用sign_test.bat脚本你刚刚对VeraCrypt可执行文件进行了签名。这是必要的因为Windows仅接受由签名证书颁发机构信任的驱动程序。<br>
由于你没有使用官方的VeraCrypt签名证书来签署代码而是使用了公共开发版本因此你需要导入并信任所使用的证书。
<ol>
<li>
打开“src/Signing”文件夹
</li>
<li>
通过双击以下证书,将它们导入到本地计算机证书存储中:
<ul>
<li>GlobalSign_R3Cross.cer</li>
<li>GlobalSign_SHA256_EV_CodeSigning_CA.cer</li>
<li>TestCertificates/idrix_codeSign.pfx</li>
<li>TestCertificates/idrix_Sha256CodeSign.pfx</li>
<li>TestCertificates/idrix_SHA256TestRootCA.crt</li>
<li>TestCertificates/idrix_TestRootCA.crt</li>
</ul>
注意:如果提示输入密码,.pfx证书的密码为 <b>idrix</b>
</li>
</ol>
</p>
</div>
</div>
<div class="textbox" id="KnownIssues">
<a href="#KnownIssues">已知问题</a>
<div class="texttohide">
<p>
<ul>
<li>
<b>此分发包已损坏</b> <br>
<img src="CompilingGuidelineWin/DistributionPackageDamaged.jpg" width="20%"> <br>
在Windows 10或更高版本上你可能会收到上述错误消息。为避免此问题你需要<br>
<ul>
<li>仔细检查颁发测试代码签名证书的根证书是否已安装在“本地计算机受信任的根证书颁发机构”存储中。</li>
<li>计算测试代码签名证书的SHA512指纹并相应地更新“src/Common/Dlgcode.c”文件中的gpbSha512CodeSignCertFingerprint数组。</li>
</ul>
有关详细信息,请参阅 <a href="https://sourceforge.net/p/veracrypt/discussion/technical/thread/83d5a2d6e8/#db12" target="_blank">https://sourceforge.net/p/veracrypt/discussion/technical/thread/83d5a2d6e8/#db12</a><br>
<br>
另一种方法是在VeraCrypt代码中禁用签名验证。此操作仅应在测试环境中使用切勿用于生产环境
<ol>
<li>
打开“src/Common/Dlgcode.c”文件
</li>
<li>
查找“VerifyModuleSignature”函数
</li>
<li>
替换以下代码行:<br>
查找:<br>
<p style="font-family: 'Courier New', monospace;">
if (!IsOSAtLeast (WIN_10)) <br>
return TRUE;
</p> <br>
替换为:<br>
<p style="font-family: 'Courier New', monospace;">
return TRUE;
</p>
</li>
<li>
再次编译VeraCrypt代码
</li>
</ol>
</li>
<li>
<b>自定义构建的VeraCrypt安装过程中驱动程序安装失败</b> <br>
<img src="CompilingGuidelineWin/CertVerifyFails.jpg" width="20%"> <br>
Windows会验证每个要安装的驱动程序的签名。<br>
出于安全原因Windows仅允许由Microsoft签名的驱动程序加载。<br>
因此,在使用自定义构建时:<br>
<ul>
<li>如果你未修改VeraCrypt驱动程序源代码则可以使用VeraCrypt源代码中包含的由Microsoft签名的驱动程序位于“src\Release\Setup Files”下</li>
<li>如果你进行了修改,<strong>你需要将Windows启动到“测试模式”</strong>。此模式允许Windows加载未由Microsoft签名的驱动程序。但是即使在“测试模式”下签名也有特定要求并且由于以下原因仍可能会失败。</li>
</ul>
“测试模式”下安装失败的潜在原因:
<ol>
<li>
<b>用于签名的证书不受Windows信任</b><br>
你可以通过检查可执行文件的属性来验证是否受影响:
<ol>
<li>
右键单击VeraCrypt安装可执行文件“src/Release/Setup Files/VeraCrypt Setup 1.XX.exe”
</li>
<li>
点击“属性”
</li>
<li>
转到顶部菜单“数字签名”。在这里,你会在签名列表中找到两个签名
</li>
通过双击勾选这两个签名。如果标题显示“无法验证签名中的证书”,则相应的签名证书未正确导入。<br>
点击“查看证书”,然后点击“安装证书...”,将证书导入到本地计算机证书存储区。对于根证书,你可能需要选择“将所有证书放入下列存储区”,并选择“受信任的根证书颁发机构”存储区。<br>
<img src="CompilingGuidelineWin/CertificateCannotBeVerified.jpg" width="40%"> <br>
<li>
</ol>
</li>
<li>
<b>驱动程序在签名过程之后被修改。</b> <br>
在这种情况下请使用脚本“src/Signing/sign_test.bat”用测试证书再次对你的代码进行签名
</li>
</ol>
</li>
</ul>
</p>
</div>
</div>
</div>
</body></html>