Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Untrue — 用于针对 TrueCrypt 加密卷和磁盘检查密码,以及/或解密数据的工具。 | Kitploit
工具/GitHubGitHub/nccgroup/untrue
加密/解密工具密码攻击数据恢复数字取证密码学
GitHubnccgroup/untrue

Untrue

用于针对 TrueCrypt 加密卷和磁盘检查密码,以及/或解密数据的工具。

查看仓库
4210429年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Untrue

由 NCC Group Plc 发布为开源项目 - http://www.nccgroup.com/

由 Richard Turnbull 开发,richard [dot] turnbull [at] nccgroup [dot] com

http://www.github.com/nccgroup/untrue

依据 AGPL 发布,更多信息请参见 LICENSE

描述

Untrue 是一款用于对照 TrueCrypt 加密卷和磁盘校验密码,和/或解密数据的工具。

系统要求

Windows,需 .NET Framework 4.0 版本。

现有工作

TCHead 也是一款对照卷头校验密码的工具,但其网站似乎已无法访问,而且无论如何,它都不具备解密数据的能力。 Bjrn Edstrm 发布了一些 Python 代码,该代码在校验密码方面很有效,但解密能力有限。

用法

使用 Untrue 可以执行三种不同的任务,每种任务的用法略有不同。 请注意,Untrue 会尽力智能地确定卷头的位置,以及加密区域的位置和大小。但是,如果这不起作用,或者您想要更大的灵活性,可以通过选项来控制这些。

对照 TrueCrypt 加密卷或驱动器校验密码

Untrue.exe [general_options] --password_check_only -p passphrase (--volume_header_file=input_file | --volume_header_hex=hex_string) [algorithm_options] [password_checking_options]

您需要提供卷头。通常您会通过 --volume_header_file 选项指定一个文件来完成此操作(通常该文件是一个 TrueCrypt 加密卷、一个 TrueCrypt 加密驱动器的镜像,或一个 TrueCrypt 救援 CD 的镜像)。 但是,您也可以使用 --volume_header_hex 选项以十六进制字符串(512 字节长)的形式提供卷头。

使用给定密钥解密 TrueCrypt 加密卷或驱动器

Untrue.exe [general_options] -i input_file -o output_file (-k hex_string | --key_file=file_containing_key) [algorithm_options] [decryption_options]

您需要提供卷加密密钥,可以以十六进制字符串的形式(使用 -k 选项),或通过指向包含该密钥的文件(使用 --key_file 选项)来提供。 您还需要指定一个输入文件(即加密卷或驱动器)和一个输出文件。Untrue 将拒绝写入已存在的输出文件(以避免意外覆盖)。

对照 TrueCrypt 加密卷或驱动器校验密码,然后使用所得密钥解密该加密卷或驱动器的内容

Untrue.exe [general_options] -p passphrase -i input_file (--volume_header_file=input_file | --volume_header_hex=hex_string) -o output_file [password_checking_options] [algorithm_options] [decryption options]

您还需要指定一个输入文件(即加密卷或驱动器)和一个输出文件。Untrue 将拒绝写入已存在的输出文件(以避免意外覆盖)。 如果输入文件中不存在卷头(例如,卷头位于救援 CD 镜像上),您可以选择指定包含卷头的文件(使用 --volume_header_file),或提供卷头字节(使用 --volume_header_hex)。如果两者都不做,卷头将从输入文件中读取。 如果密码错误,解密将不会继续。

通用选项

-h, --help          显示用法信息并退出
-V, --version       显示版本并退出
-v, --verbose       详细模式(将详细信息写入标准输出)
-d, --debug         调试模式(将更多信息写入标准输出)
-q, --quiet         静默模式(不向标准输出写入任何内容)

密码校验选项

--volume_header_location=VALUE 卷头文件中卷头的位置。请注意,此处以扇区号指定,假设扇区大小为 0x200 字节。

在大多数情况下,你可以安全地省略此选项——如果未指定,Untrue 会尝试智能猜测。如果未指定卷头文件(即卷头位于输入文件中),则 Untrue 会尝试判断输入文件是加密卷还是加密驱动器镜像,并据此设置卷头位置。如果指定了卷头文件,且该文件看起来是 Rescue CD 镜像,则卷头位置同样会相应设置。否则,卷头位置将默认为 0。

算法选项

你可以指定 Untrue 要尝试的加密算法(注意,TrueCrypt 提供多种加密算法,仅凭检查加密卷无法判断使用了哪一种)。 进行密码检查时,如果未指定以下任何选项,则会尝试所有算法。但是,如果指定了以下任一选项,则只会尝试这些算法。 使用给定密钥解密时,如果未指定以下任何选项,则将使用 TrueCrypt 的默认算法 AES。否则,如果指定了以下任一选项(选择多个会报错),则将使用该算法。 基于成功的密码检查进行解密时,将使用解密后的卷头中指定的算法(不受以下任何选项影响)。

--aes							尝试 AES 加密算法
--serpent        				尝试 Serpent 加密算法
--twofish              			尝试 Twofish 加密算法
--aes_twofish          			尝试 AES-Twofish 加密级联
--aes_twofish_serpent  			尝试 AES-Twofish-Serpent 加密级联
--serpent_aes          			尝试 Serpent-AES 加密级联
--serpent_twofish_aes  			尝试 Serpent-Twofish-AES 加密级联
--twofish_serpent      			尝试 Twofish-Serpent 加密级联
--all_encryption_algorithms     尝试所有加密算法

你可以指定 Untrue 要尝试的哈希算法(注意,TrueCrypt 提供多种哈希算法,仅凭检查加密卷无法判断使用了哪一种)。 进行密码检查时,如果未指定以下任何选项,则会尝试所有算法。但是,如果指定了以下任一选项,则只会尝试这些哈希算法。 注意,TrueCrypt 在将 RIPEMD-160 用于系统(全盘)加密时,所使用的 PBKDF2 迭代次数与用于卷加密时不同。Untrue 将其视为两种不同的哈希算法。

--ripemd160            		    尝试 RIPEMD-160 哈希算法
--ripemd160_system     		    尝试 RIPEMD-160 哈希算法(系统加密)
--whirlpool            		    尝试 Whirlpool 哈希算法
--sha512               		    尝试 SHA-512 哈希算法
--all_hash_algorithms  		    尝试所有哈希算法

解密选项

-e, --encrypt          		

执行加密而非解密。 仅当 Rescue CD 解密操作被(意外地)对某个驱动器重复运行多次时,此选项才可能有用。

--first_decrypt_sector=VALUE    

输入文件中解密应开始的扇区号。 在大多数情况下,你可以省略此选项。如果未指定,Untrue 将从解密后的卷头中读取正确值(如果可用),否则将通过检查输入文件是否看起来是加密卷或加密驱动器来尝试确定正确值。

--sectors_to_process=VALUE     

要解密的扇区数 在大多数情况下,你可以省略此选项。如果未指定,Untrue 将从解密后的卷头中读取正确值(如果可用),否则将通过检查输入文件的长度来尝试确定正确值。

--first_sector_offset=VALUE     

第一个解密扇区的 TrueCrypt 逻辑扇区号。 为了成功解密数据,XTS 模式需要知道每个扇区正确的逻辑扇区号。 在大多数情况下,你可以省略此选项。只有当输入文件是加密卷或驱动器的提取片段,而不是从其起始位置开始时,才需要使用此选项。

示例

使用密码 'foobar' 对 TrueCrypt 加密卷 vol.tc 进行校验:

Untrue.exe --password_check_only --volume_header_file=vol.tc -p foobar

执行相同操作,但已知使用了默认的加密和哈希算法选项:

Untrue.exe --password_check_only --volume_header_file=vol.tc -p foobar --aes --ripemd160

执行相同操作,但同时生成该卷的解密结果:

Untrue.exe -i vol.tc -o decrypt.bin -p foobar --aes --ripemd160

解密该卷,但使用指定的密钥(此次不提供密码短语,也无需指定哈希算法):

Untrue.exe -i vol.tc -o decrypt.bin -k F0839722F9DC490D985397860EAAED6350CAEC956B40A17B50CD397DD197442D9BBA43D0DB6C91167572D4E5630525FB3374EB49389DD5C8D78BB93AA1D4DC09 --aes 

解密 TrueCrypt 加密磁盘 disk.img:

Untrue.exe -i disk.img -p foobar -o output.bin 

执行相同操作,但此次从救援 CD 镜像 cd.img 读取卷头(Untrue 将尝试在救援 CD 镜像上定位卷头):

Untrue.exe -i disk.img -p foobar -o output.bin --volume_header_file=cd.img

执行相同操作,但显式指定卷头在救援 CD 镜像上的位置(默认位于扇区 0xA6):

Untrue.exe -i disk.img -p foobar -o output.bin --volume_header_file=cd.img --volume_header_location=0xA6

执行相同操作,但此次我们知道磁盘镜像的第一个扇区缺失,并且只想解密 200 个扇区:

Untrue.exe -i disk2.img -p foobar -o output.bin --volume_header_file=cd.img --volume_header_location=0xA6 --sectors_to_process=200 --first_decrypt_sector=0x3E --first_sector_offset=0x3F

(默认情况下,加密数据从扇区 0x3F 开始,但鉴于此处输入文件缺失第一个扇区,我们指定要解密的第一个扇区为 0x3E。然而,由于这实际上是相对于原始磁盘镜像起始位置的扇区 0x3F,我们必须指定第一个扇区偏移量为 0x3F。)

限制

Untrue 仅支持 XTS 加密模式,该模式在 TrueCrypt v5.0 中引入。早于此版本的使用 LRW 或 CBC 模式,Untrue 不支持(无论是密码校验还是解密)。

Untrue 不支持对使用密钥文件的 TrueCrypt 卷进行密码校验。

Untrue 不支持对隐藏卷或隐藏操作系统进行密码校验或解密。

Untrue 不支持扇区大小不是 0x200 字节的 TrueCrypt 卷/磁盘。

其中部分或全部功能可能会在日后添加。

库

Untrue 使用 Bouncy Castle C# 加密库(http://www.bouncycastle.org/csharp/)。 其许可证可在 https://www.bouncycastle.org/licence.html 查看。

Untrue 还使用 NDesk.Options 库(http://www.ndesk.org/Options)。 该库以 MIT 许可证发布(http://opensource.org/licenses/mit-license.php)。

下载工具