Simple XOR - Writeup by AI

Simple XOR - Writeup by AI

题目信息

  • 题目名称: simple xor
  • 分类: Crypto
  • 题目描述: Found the following message: XUBdTFdScw5XCVRGTglJXEpMSFpOQE5AVVxJBRpLT10aYBpIVwlbCVZATl1WTBpaTkBOQFVcSQdH 😃

分析过程

1. 理解加密算法

从提供的 xor.py 文件中,我们可以看到加密逻辑:

python 复制代码
sxor = ':)'
sflag = 'this is the flag'
flag = bytearray(sflag)
xor = bytearray(sxor)
encrypted = ''
for i in range(0,len(flag),2):
    encrypted += str(hex(flag[i] ^ xor[0]))[2:]
    encrypted += str(hex(flag[i+1] ^ xor[1]))[2:]
print encrypted

加密步骤

  1. 使用两字节密钥 :)
  2. 对明文的每个字节与密钥交替进行XOR运算
  3. 将XOR结果转换为十六进制字符串(去掉0x前缀)
  4. 拼接所有十六进制字符串

2. 密文分析

题目给出的密文:XUBdTFdScw5XCVRGTglJXEpMSFpOQE5AVVxJBRpLT10aYBpIVwlbCVZATl1WTBpaTkBOQFVcSQdH

观察密文字符:

  • 长度:76个字符
  • 包含字符:数字、大写字母、小写字母
  • 包含非十六进制字符(如 X, U, J, G, W 等)

这说明密文不是直接的十六进制字符串

3. 关键发现

注意到密文末尾有 :),这提示我们密钥就是 :)

尝试将密文进行 Base64解码

  • 76个字符的Base64字符串可以解码为57个字节
  • Base64编码常用于将二进制数据转换为可打印字符

4. 解密步骤

Step 1: Base64解码密文

python 复制代码
import base64
encrypted_str = 'XUBdTFdScw5XCVRGTglJXEpMSFpOQE5AVVxJBRpLT10aYBpIVwlbCVZATl1WTBpaTkBOQFVcSQdH'
decoded_bytes = base64.b64decode(encrypted_str)

Step 2 : 与密钥 :) 进行XOR解密

python 复制代码
key = ':)'
decrypted = ''
for i in range(len(decoded_bytes)):
    decrypted += chr(decoded_bytes[i] ^ ord(key[i % 2]))
相关推荐
luiyarch9 小时前
汽车电子ISO 26262功能安全系列(第17期):系统集成与测试——验证系统级安全机制
嵌入式硬件·安全·车载系统·汽车
观测云10 小时前
Fastjson 高危 RCE(CVE-2026-16723):如何用观测云快速发现并完成修复
网络·安全·可观测性·观测云
山东科恩光电10 小时前
安全触边在提升设备运行安全性中的实践与效果分析
安全
hh95010 小时前
Agent Plan x DeepSeek Harness:Agent 供应链安全与第三方插件审计
java·开发语言·安全·agent plan·adg成都社区·adg社区
山东科恩光电11 小时前
如何利用安全地毯提升工作场所的安全防护?
安全
网安蟹佬霸12 小时前
# 网络流量分析实战:从Wireshark到入侵检测系统构建(2026最新版,附完整流量分析链与IDS规则集)
网络·测试工具·安全·开源·wireshark·密码学·哈希算法
Magic-ZYJ12 小时前
HarmonyOS Release 构建安全:ArkGuard 混淆、签名配置与秘密管理
安全·华为·harmonyos·移动应用开发·心晴手记
Delite80212 小时前
开口闪点检测智能化升级:工业油品安全检测的标准化解决方案
大数据·人工智能·安全
x8613 小时前
Rust 供应链投毒实录:arrayref 0.3.10 借冒名 proc-macro1 在编译期执行远程载荷
安全
DianSan_ERP15 小时前
WMS接入电商平台自动化履约实战:一张订单从平台到出库的接口时序设计
java·前端·网络·数据库·安全·架构·自动化