[ACTF新生赛2020]crypto-des
附件:
加密的 easydes.zip
,通过解密encryptedkey.txt
以获取解密 zip 的 key
encryptedkey.txt:
72143238992041641000000.000000,
77135357178006504000000000000000.000000,
1125868345616435400000000.000000,
67378029765916820000000.000000,
75553486092184703000000000000.000000,
4397611913739958700000.000000,
76209378028621039000000000000000.000000
hint.txt:
To solve the key, Maybe you know some interesting data format about C language?
压缩包尝试爆破并没有结果。。。。。
解密脚本:
import struct
s = [72143238992041641000000.000000,77135357178006504000000000000000.000000,1125868345616435400000000.000000,67378029765916820000000.000000,75553486092184703000000000000.000000,4397611913739958700000.000000,76209378028621039000000000000000.000000]
a = ''
b = ''
for i in s:
i = float(i)
a += struct.pack('<f',i).hex() #小端
print(a)
for j in s:
i = float(i)
b += struct.pack('>f',i).hex() #小端
print(b)
# -*- coding: utf-8 -*-
import binascii
#16进制整数转ASCii编码字符串
a = 0x496e74657265737472696e67204964656120746f20656e6372797074
a1 = hex(a) #转换成相同的字符串即'0x665554'
a2 = a1[2:] #截取掉'0x'
a3 = binascii.a2b_hex(a2) #转换成ASCii编码的字符串
print(a3)
b = 0x74707972747079727470797274707972747079727470797274707972
b1 = hex(b) #转换成相同的字符串即'0x665554'
b2 = b1[2:] #截取掉'0x'
b3 = binascii.a2b_hex(b2) #转换成ASCii编码的字符串
print(b3)
运行得到:
496e74657265737472696e67204964656120746f20656e6372797074
74707972747079727470797274707972747079727470797274707972
b'Interestring Idea to encrypt'
b'tpyrtpyrtpyrtpyrtpyrtpyrtpyr'
解得key:
Interestring Idea to encrypt
解压得到加密脚本:
import pyDes
import base64
from FLAG import flag
deskey = "********"
DES = pyDes.des(deskey)
DES.setMode('ECB')
DES.Kn = [
[1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0],
[1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0],
[0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0],
[1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1],
[0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1