2024长城靶场训练

仿射密码

首先题目描述

使用仿射函数y=3x+9加密得到的密文为JYYHWVPIDCOZ,请尝试对其解密。flagflag{大写明文}

1、使用在线网站直接破解或手工计算破解,获得flag。(参数a=3,b=9,对应仿射函数y=3x+9)
仿射密码加密_仿射密码解密

手工计算使用解密函数为D(x) = a^-1(x - b) (mod m),也可以获得flag。

flag:

flag{AFFINECRYPTO}

RC4

首先给了一个python脚本

密钥和密文分别被保存在文件 keyciphertext中。

首先从文件 key 中读取密钥。

从文件 ciphertext 中读取加密的消息。

使用相同的** RC4 ****算法和密钥进行解密**。

脚本

from Crypto.Cipher import ARC4

# 读取密钥和密文
with open("key", "rb") as f:
key = f.read()

with open("ciphertext", "rb") as f:
cipher = f.read()

# 使用 RC4 解密
rc4 = ARC4.new(key)
decrypted_message = rc4.decrypt(cipher)

# 输出解密后的消息
print("Decrypted message:", decrypted_message.decode())

flag{0d7bab34-b3a8-c688-517e-9a7c21d52176}

py交易

首先我们反编译

运行一下

需要提交正确的flag,来分析一下

要找到正确的 flag,需要逆向分析加密过程,逐步恢复原始的 flag。

  • 步骤****1:Base64 解码 correct,得到经过 XOR 和加法处理的字符串。
  • 步骤****2:对于每个字符,反向操作,先减去 16,再对字符进行 XOR 操作,恢复原始字符。
import base64

def decode(encoded_message):
decoded_message = base64.b64decode(encoded_message).decode('utf-8')
original_message = ''

for char in decoded_message:
x = ord(char) - 16  # 先减去 16
x = x ^ 32  # 然后做 XOR 操作
original_message += chr(x)

return original_message

# 给定的 correct 字符串
correct = 'VlxRV2tWIyNTKShTJSUkVSIjKVIoVSRSIlUnUVMgJ1EkUVQhIW0='

# 解密
flag = decode(correct)
print(f'The correct flag is: {flag}')

flag{f33c98c554e239b8e4b2e7ac07a4ad11}

posted @   WTT0011  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示