用cmd打开,运行boom.exe
这里用到一个优秀的python第三方库,Python科学计算利器——SymPy库
from sympy import*
from sympy.abc import x,y,z
ABC = solve([3*x-y+z-185,2*x+3*y-z-321,x+y+z-173],[x,y,z])
print(ABC)
'''
m = solve([x*x+x-7943722218936282],[x])
print(m)
'''
{x: 74, y: 68, z: 31}
flag{en5oy_746831_89127561}
由题目可知,考的是曼彻斯特编码
密文:2559659965656A9A65656996696965A6695669A9695A699569666A5A6A6569666A59695A69AA696569666AA6
用网上找到曼彻斯特解码器,解密文,将解密得到后的16进制转文本,即可得到flag
flag{DifManchestercode}
from base64 import *
s = ""
with open('flag_encode.txt', 'r') as file:
s = bytes(file.read(),'ascii')
file.close()
lis1 = [s]
lis2 = []
lis3 = []
lis4 = []
while(1):
for a in lis1:
ok = 0
try:
lis2.append(b64decode(a).decode('ascii'))
ok = 1
except:
pass
try:
lis2.append(b32decode(a).decode('ascii'))
ok = 1
except:
pass
try:
lis2.append(b16decode(a).decode('ascii'))
ok = 1
except:
pass
if not ok:
lis3.append(a)
if not len(lis2):
break
lis1=lis2.copy()
lis2.clear()
for a in range(0,len(lis3)):
ok = 1
for b in lis3[a]:
if ord(b)>126 or ord(b)<32:
ok = 0
break
if ok:
lis4.append(lis3[a])
print(lis4)
afctf{U_5h0u1d_Us3_T00l5}
Atbash加密, pvb 与 key 在字符表中的顺序正好是相对称的。
压缩包解压后得到的jpg图片,是猪圈密码的变体和古埃及象形文字。
猪圈变体
古埃及象形
flag{classicalcode}
题目
Premise: Enumerate the alphabet by 0、1、2、..... 、25
Using the RSA system
Encryption:0156 0821 1616 0041 0140 2130 1616 0793
Public Key:2537 and 13
Private Key:2537 and 937
flag: wctf2020{Decryption}
新建flag.txt文本
解密代码
from gmpy2 import*
n=2537
d=937
result = []
with open('flag.txt') as f:
for i in f:
result.append(pow(int(i),d,n))
print(result)
得到结果
[8, 11, 14, 21, 4, 24, 14, 20]
找到其对应 的英文,从0开始的。
flag{iloveyou}
解压后得到一堆二进制字符,尝试转为16进制,再转为文本。
通过提示我们可以知道,下面的那一段是base64编码。
base的解密结果提示下面的密文与罗马有关,用quipqiup进行词频分析。
爆破全部密文都是乱码,没有结果,我们只需要爆破与flag相关的那一段就行了。
得到utflag{n0w_th4ts_wh4t_i_c4ll_crypt0}