2020 巔峰極客 Re部分WriteUp


virus

附件下載:https://wwa.lanzous.com/iZh5tgy9gbg

代碼分為三部分

  1. 以'-'為間隔,將flag的第一部分轉換為整型數字,並且滿足后項-前項分別為[0x13,0x19,0x1a,0x1c]。最后一項為len(flag)-lastpos('-')
  2. 以'-'為間隔,將中間的字符串分別存儲到road中
  3. 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}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM