avatar

网鼎杯CTF——朱雀组 (week 4)

What

用ida打开,大概看到的是一个go的逆向

image-20200517095007722

看到是个置换表的base64,找一下明文

image-20200517095031094

直接写一下脚本

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/python
import base64
base_now="XYZFGHI2+/Jhi345jklmEnopuvwqrABCDKL6789abMNWcdefgstOPQRSTUVxyz01"
base_init="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="

clear="nRKKAHzMrQzaqQzKpPHClX=="
c=""
for i in range(len(clear)):
b=base_now.find(clear[i])
c+=base_init[b]
c=base64.b64decode(c)
print c

image-20200517095129379

tree

一个数据结构的算法,类似与哈夫曼树的算法直接写exp了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
tree = {
'y':'0000',
'b':'00010',
'q':'00011',
'g':'0010',
'f':'0011',
'j':'010',
'w':'01100',
'p':'01101',
'x':'011100',
'd':'0111010',
'i':'0111011',
'k':'01111',
's':'100',
'z':'1010',
'n':'1011',
'c':'11000',
't':'110010',
'e':'110011',
'h':'1101',
'o':'11100',
'l':'1110100',
'u':'11101010',
'r':'111010110',
'a':'111111111',
'm':'111011',
'v':'1111'
}

a = 'zvzjyvosgnzkbjjjypjbjdvmsjjyvsjx'
flag=""

for i in a:
flag += tree[i]
print (hex(int(flag,2)))

image-20200521110705695

Author: L0x1c
Link: https://l0x1c.github.io/2020/05/17/2020-5-16/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
    微信
  • 支付寶
    支付寶