一个用于操作密码学工具的工具,专注于勒索软件分析。

CryptoTester 中使用的所有十六进制视图都提供了一些增强功能。
0D 0A)显示为紫色在许多视图(例如 Input 和 Output)上,单击偏移行(各自视图上方的 00 01 02 03...)将打开一个对话框,显示字节及其解码后的视图。
大多数接受整数的输入字段也接受特殊值和函数。
示例:
x10 -> 16len -> 400block -> 16(所选算法的块大小)up(60, 16) -> 64down(60, 16) -> 48简单算术可以与这些函数组合使用。
up(len-x100, b) - 从输入长度中减去 256,然后向上取整到所选算法的最近块大小(例如 AES 为 16)任何负值都视为 len - value,即相对于输入末尾的位置。
主面板包含用于对输入执行密码学原语操作的工具。Input 十六进制视图接受直接粘贴字节,或者可以使用 File 菜单加载文件、文本、Base64 编码的字节等。文件也可以直接拖放到视图中。
允许以多种格式指定密钥,并包含多个哈希函数和密钥派生函数的选项;这些字段会根据当前所选算法及其支持的功能进行调整。
注意: 密钥的处理顺序与其在 UI 中的显示顺序相同;首先根据
Format解码密钥,然后使用Hash参数进行哈希处理,最后使用Derive参数进行派生,再交给密码算法。从 v1.7.0.0 开始,您可以交换Hash和Derive的处理顺序。
密钥的最终输出长度显示在输入框上方。单击该区域将在单独的对话框中显示最终计算出的密钥。

允许选择加密算法及其参数(如果支持)。
注意:
IV 字节(或Nonce,取决于算法)在留空时会自动填充为适合算法的00字节长度。
可以使用两种不同的模式选择输入:“范围”和“块”。
一个简单的范围,从 Offset 开始,获取 Length 字节。
除非勾选了 锁定参数 复选框,否则 Length 会在 Input 更改时自动更新。
如果您在 Length 字段中进行了一些计算,并希望恢复为 Input 的实际长度,只需按下 重置长度 按钮即可。
如果勾选了 拼接剩余字节,则 Offset 之前的任何字节都会添加到 Output 之前,而 Offset+Length 之后的任何字节都会追加到 Output 之后。

获取 Take 字节,然后跳过 Skip 字节,再获取 Take 字节,跳过 Skip 字节……直到 Input 结束。这可用于密文实际上“交错”在明文块之间的情况。密码算法会对生成的块块作为一个连续的块块运行,不会重置密钥/IV/Nonce 等。
如果勾选了 拼接剩余字节,则 Skip 部分中的任何字节都会交错回 Output。

此部分显示有关 Input 的简单信息,例如文件大小、检测到的 MIME(如果是文件)、总熵,以及是否可被 16 整除(常见的块大小)。
Input 和 Output 视图具有同步滚动功能;要禁用此功能,请取消选中它们之间的 同步滚动 复选框。
Input 和 Output 之间的 🡨 按钮可用于将 Output 移动到 Input 视图中。
可以使用视图下方的相应下拉菜单对 Input 或 Output 进行哈希处理。Output 还可以运行验证算法(当前有限支持 ECDSA)。
此面板允许将加密文件与其原始文件进行比较。两个视图都支持拖放,或者可以使用 File -> Open File 依次打开 Original 和 Encrypted。
Original 视图也可以使用任何 File -> Input 选项填充;例如,与一定长度的空字节或 Windows 示例图片 Chrysanthemum.jpg 进行比较。
Original 和 Encrypted 视图具有同步滚动功能;要禁用此功能,请取消选中它们之间的 同步滚动 复选框。
Original 和 Encrypted 视图之间的 ⇆ 按钮可用于交换它们的内容。
两个视图之间任何不同的字节都将以深红色显示。

分别显示 Original 和 Encrypted 视图的基本信息。
一旦两个视图都填充完毕,就会对它们快速运行一次分析。
Original 的任何哈希是否存在于 Encrypted 中Encrypted 中是否存在任何 CryptoAPI BLOBEncrypted 中(UTF-8 或 UTF-16)Encrypted 中是否存在原始文件大小(各种格式和编码)Encrypted 的开头或结尾是否存在 ASCII(或 Base64)标记此面板允许对少量压缩算法进行基本使用,并与 加密/解密 面板具有类似功能。
用于分析 CryptoAPI BLOB 和 CNG BLOB 的工具。
BLOB 可以以二进制、Base64、PEM、XML 和 ASN.1 格式导入/导出(在支持的情况下)。

附加的 BLOB 相关工具,仅在适用的 BLOB 类型上激活。
生成一个 CryptoAPI BLOB。Bit Length 会根据所选 aiKeyAlg 支持的值自动更新。请注意,某些 bType 和 aiKeyAlg 的组合无效,并且会从 CryptoAPI 提供程序抛出错误。

注意: 密钥在内部使用 CryptGenRandom 生成,但我无法保证使用此工具生成的密钥的密码学安全性。
用于分析/计算 RSA 密钥的工具。密钥的各个参数会显示,并可以十进制或十六进制显示。如果存在足够的参数,则可以计算密钥的其余部分。
密钥可以以多种格式导出,包括 CryptoAPI BLOB、CNG BLOB、PEM、XML 和 ASN.1,导出到文件、剪贴板或主窗口(加密/解密)。此外,如果导出到主窗口,原始整数可以导出用于原始 RSA 算法。

一种在文件中搜索多种格式的加密密钥的工具。
支持的格式示例:

用于测试各种已知 PRNG 算法的工具。

设置 PRNG 的起始 Seed。
设置 PRNG 的 Algorithm,以及要产生的输出的 Length,以及可选的应用于每个输出的 Modulus。例如,可以使用 Modulus 为 xFF 将每个输出转换为一个字节。
如果选择了 Alpha:
生成的输出的熵也会显示在 Alpha 输出下。这是盲目暴力破解输出(而不直接攻击 PRNG)的粗略熵(或可能性数量)估计。
用于使用不同 Base 编码的工具。支持标准预设字符集,或提供您自己的自定义字符集。
除使用校验和的编码器(例如 Bitcoin 的 Base58Check)外,解码时不验证填充,因此即使是部分或损坏的编码也会被原始解码。

用于同时查看文本或字节为 ASCII、UTF-8 和 UTF-16 的工具。

用于验证椭圆曲线点的工具。可以从/到 ECPoint(未压缩或压缩形式)、PEM 或 CNG BLOB 导入/导出。

基于当前面板要执行的各种操作。
获取 Compare 面板中的 Original 和 Encrypted,应用 XOR 或 AND 操作,并显示一个流。
使用 Encrypt/Decrypt 面板中的算法信息,生成指定长度的密钥流并保存到文件。
显示 Compare 面板中像素之间差异的图形图表。

使用 Encrypt/Decrypt 面板中提供的密钥材料和 Input,以及给定的预期输出,枚举 Encryption Options 部分中的所有可能选项以尝试找到匹配项。
此工具可用于针对 Input 测试已知密钥列表或文件夹,使用指定的密码参数。
Byte Count 字节。如果成功匹配到密钥,Select 按钮将被激活,以允许将密钥及其参数传递到主窗口。

使用所选密码的块大小,枚举每个可能的块,并尝试使用指定密钥进行解密。
示例:您有一个 RSA-2048 私钥,以及一个 0x1000 字节的可能的密文 BLOB 作为 Input。使用此操作将尝试解密 Input[0x00:0x100],然后 Input[0x01:0x101],然后 Input[0x02:0x102] 等等……
注意: 此操作当前仅支持 RSA 算法。它还被限制为最多 10000 个输入字节。
内部使用小端序(如果算法支持)。
如果所选算法支持任何自定义参数,则允许设置自定义参数。例如,Salsa20 系列算法支持自定义轮数、常量、位置或输入原始矩阵。
IV 的选项,例如从文本或 Base64 输入,以及从已知明文恢复 IV。
某些加密方案的预设,例如 OpenSSL。
用于转换的小工具。
将整数转换为 DWORD,或将 DWORD 字节转换为整数。

将十六进制字节转换为整数列表,或将整数列表转换为字节。输出可以选择包含空格和逗号。
