ASpack壳,直接工具脱掉。
看伪代码。
这段代码是16进制转10进制的。然后看关键函数。
程序主要是将3个输入8一共24位,6位分一组变成4个输出,所以很明显是base64加密。这里换了加密表,跑脚本。
import base64
s1 = '373435323330313E3F3C3D3A3B383926272425222320212E2F2C171415121310111E1F1C1D1A1B181906070405020300010E0F0C46474445424340414E4F5D59'
#string转bytes再转string
ss1 = bytes.fromhex(s1).decode()
print(len(ss1))
print(ss1)
s2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
data = ''
tmp = 'reverse+'
for i in range(len(tmp)):
data += chr(ord(tmp[i]) ^ 0x76)
print(data)
result = base64.b64decode(data.translate(str.maketrans(ss1, s2)))
#bytes转string
print('DDCTF{%s}' % result.hex().upper())