1 水流滴滴答
以下是加密过程
WPSEC_CTF_MISC
1. Space:'/'|Short:'.'|Long:'-'
.--/.--./..././-.-./..--.-/-.-./-/..-./..--.-/--/../.../-.-.
2.Space:'_'|Short:'-'|Long:'.'
-.-.-._.----._.----._.--.-_-.-.-._.----._.----._-.-.-._.--.-_-.-.-._-.-.-._-.-.-._.--.-_-.-.-._.--.-_.----._-.-.-._.----._-.-.-._.--.-_-.-.-._-.-.-._.----._.----._-.-.-._.----._.--.-_.----._-.-.-._.----._-.-.-._.--.-_.----._.--.-_-.-.-._-.-.-._.----._-.-.-._.--.-_-.-.-._-.-.-._.----._.----._-.-.-._.----._.--.-_.----._.----._.--.-_-.-.-._-.-.-._.--.-_-.-.-._-.-.-._-.-.-._.--.-_.----._-.-.-._.----._-.-.-.
3.Space:' '|Short:'.'|Long:'-'
-....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- .-.-.- -....- -....- .-.-.- -....- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- .-.-.- -....- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- .-.-.- -....- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- .-.-.- -....- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- .-.-.- -....- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- .-.-.- -....- -....- .-.-.- -....- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- .-.-.- -....- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- .-.-.- -....- -....- .-.-.- -....- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- .-.-.- -....- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- .-.-.- -....- -....- .-.-.- -....- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- .-.-.- -....- -....- .-.-.- -....- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- .-.-.- -....- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- .-.-.- -....- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.- ..--.- .-.-.- -....- -....- -....- -....- .-.-.- ..--.- -....- .-.-.- -....- .-.-.- -....- .-.-.-
2.丧心病狂的APL
这题原题是来自于plaidctf2018的一道最简单的逆向题,但是要理解起来或许会比较麻烦。我只是修改了flag,对于源码并没有做出改动(其实是想睡觉,懒得改了)。
plaidctf上的那道题的wp地址:https://monosource.github.io/writeup/2018/05/08/plaidctf-aplunatics/
用apl解的话代码也很简单,就是比较难理解:
bin ← {(8⍴2)⊤⍵}
xsh ← {2⊥a≠8↑(0,a←(8⍴2)⊤⍵)}
{⌽⎕UCS(xsh ⍣ 7)¨ 2⊥¨,/33 8⍴(8×⍴⍵)⍴⍉3⌽⍉¯7⌽11 24⍴∊bin¨ ¯13+⎕UCS ⍵} 'I=Â>@°IKJ¼!.!:9!4E82Å;E$;Å28¸26E9'
下面是python版本,注释不是很清晰:
#a='I=Â>@°IKJ¼!.!:9!4E82Å;E$;Å28¸26E9'
a=[73,61,194,62,64,176,73,75,74,188,33,46,33,58,57,33,52,69,56,50,197,59,69,36,59,197,50,56,184,50,54,69,57]
b=""
c=['0'*24 for n in range(11)]
d=['' for n in range(24)]
f=""
flag=""
#13+
for i in range(len(a)):
a[i]-=13
b+=(bin(a[i])[2:]).zfill(8)
#7⌽⍉11 24⍴∊{a≠8↑(0,a←(8⍴2)⊤⍵)}
for i in range(11):
c[i]=b[i*24:(i+1)*24]
c[i]=c[i][-7:]+c[i][:-7]
#(-⌊(⍴'f0xtr0t')÷2)⌽⍉11 24⍴∊{a≠8↑(0,a←(8⍴2)⊤⍵)}
for i in range(24):
for j in range(11):
d[i]+=c[j][i]
d[i]=d[i][3:]+d[i][:3]
#{+/⍵/⌽2*⍳⍴⍵}
for i in range(11):
for j in range(24):
f+=d[j][i]
#
for i in range(int(len(f)/8)):
tmp=int(f[i*8:(i+1)*8],2)
for i in range(7):
tmp^=(tmp>>1)
flag+=chr(tmp)
print(flag[::-1])
PS:APL是真的难看懂,写的话可以写,但是之后叫人看,那就比看正则还要命。。。
网友评论