XOR 已知明文攻击

在这篇博文中,我们详细展示了*针对 XOR 编码的*已知明文攻击是如何进行的,并使用自定义工具自动执行该攻击,以解密和提取 Cobalt Strike 信标的配置。如果您对理论不感兴趣,只对工具感兴趣,请直接跳到结论!

已知明文攻击 (KPA) 是一种密码分析方法,分析人员拥有消息的明文和密文版本。攻击的目的是揭露加密算法和密钥。

XOR 编码简介

让我们首先就一个符号约定达成一致: 十进制整数的表示方式如下:

65

十六进制整数表示如下:

0x41

我们以以下明文消息为例:

IT security company NVISO was founded in 2013!

然后我们用密钥 ABC 对其进行异或 编码。如下所示:

图 1:使用密钥 ABC 进行异或编码图 1:使用密钥 ABC 进行异或编码

它的工作原理如下。对每个字符,我们执行 8 位 XOR 运算。

  • 我们取明文消息的第一个字符(I)和密钥的第一个字符(A),查找它们的数值(根据 ASCII 表):I 为 0x49,A 为 0x41。将 0x49 和 0x41 进行异或运算可得出 0x08。在 ASCII 表中,0x08 是 控制字符,因此不可打印(因此图 1 中的细矩形:这表示不可打印的字符)。
  • 我们取明文消息的第二个字符(T)和密钥的第二个字符(B),查找它们的数值(根据 ASCII 表):T 为 0x54,B 为 0x42。将 0x54 和 0x42 进行异或运算可得出 0x16。在 ASCII 表中,0x16 是控制字符,因此不可打印。
  • 我们取明文消息的第三个字符(空格字符)和密钥的第三个字符(C),查找它们的数值(根据 ASCII 表):是 0x20,而 C 是 0x43。将 0x20 和 0x43 进行异或运算得到 0x63。在 ASCII 表中,0x63 是小写字母 c(小写字母和大写字母的值不同:它们的第 6 位被切换)。
  • 20
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值