virus
附件下載:https://wwa.lanzous.com/iZh5tgy9gbg
代碼分為三部分
- 以'-'為間隔,將flag的第一部分轉換為整型數字,並且滿足后項-前項分別為[0x13,0x19,0x1a,0x1c]。最后一項為len(flag)-lastpos('-')
- 以'-'為間隔,將中間的字符串分別存儲到road中
- checkflag,即走四個20x...的迷宮,從s->d。以第1點存儲的順序,決定迷宮的順序。通過確定后面的字符串順序,前面的數字也會被確定。
1~4為:-dddddddddsssssaaaaaaaaawww-sdsdsdsdsdsdsddwdwdwdwdwdwdw-aaaaaaaaasssssssddddddddd-wwwwwdddddddddsssss
import itertools
a = ['-dddddddddsssssaaaaaaaaawww','-sdsdsdsdsdsdsddwdwdwdwdwdwdw','-aaaaaaaaasssssssddddddddd','-wwwwwdddddddddsssss']
b = list(itertools.permutations(a, len(a)))
s = []
m = [0x13,0x19,0x1a,0x1c]
for val in b:
s.append(''.join(val))
for elem in s:
index = -1
pos = []
while elem.find('-',index+1) != -1:
index = elem.find('-', index+1)
pos.append(index)
pos.append(len(elem))
print (pos)
flag = True
right = 0
for k in range(len(pos)-1):
right = k
if(pos[k+1] - pos[k] - 1 != m[k]):
flag = False
break
if (flag == True):
print (elem)
flag{4312-wwwwwdddddddddsssss-aaaaaaaaasssssssddddddddd-dddddddddsssssaaaaaaaaawww-sdsdsdsdsdsdsddwdwdwdwdwdwdw}
fu!k_py
附件下載:https://wwa.lanzous.com/iy2Hegy9g9e
將pyc文件轉換為py
-
d,l,h分別表示3x3塊,列,行
-
check1檢測長度是否為9
-
check2求和
實際就是一個9x9的數獨游戲,根據已知數據,求解未知就行。
flag{145327698839654127672918543496185372218473956753296481367542819984761235521839764}