2023安洵杯SYCCTF 部分WP
Misc
sudoku_easy
import sys def read_file(textfile): f=open(textfile,'r') next(f) i=0 j=0 matrix=[[0 for x in range(9)] for y in range(9)] #print(matrix) while True: j=0 char=f.readline() for c in char: matrix[i][j]=int(c) #print(i,j) j=j+1 if j==9: i=i+1 break if i==9: break return matrix def check_soduku(row,column,number,matrix_board): check=0 for i in range(0,9): if matrix_board[row][i]==number: check=1 for i in range(0,9): if matrix_board[i][column]==number: check=1 row=row-row%3 column=column-column%3 for i in range(0,3): for j in range(0,3): if matrix_board[row+i][column+j]==number: check=1 if check==1: return False else: return True class calls: number_of_calls=0 c = calls() def sudoku_solver(matrix): c.number_of_calls=c.number_of_calls+1 break_condition=0 for i in range(0,9): for j in range(0,9): if matrix[i][j]==0: break_condition=1 row=i column=j break #print(matrix) #print(break_condition) if break_condition==0: print("Naive Backtracking Algorithm Solution: ") for i in matrix: print(i) print("Amount of Recursions") print(c.number_of_calls) exit(0) #print("hello") for i in range(0,10): if check_soduku(row,column,i,matrix): matrix[row][column]=i if sudoku_solver(matrix): return True matrix[row][column]=0 return False matrix=read_file(sys.argv[1]) sudoku_solver(matrix) #print("'''''''''''''''''''''''''''''''''''''''''''''''''''''''matrix'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''") #print(matrix)
sudoku_speedrun
import telnetlib import sys fuck = [] def move(noooo,jie,tn): x1=0 y1=0 print(jie) for y in range(len(noooo)): for x in range(len(noooo[y])): if noooo[y][x] == 0: if x > x1: for d in range(x - x1): tn.write(b'D') else: for d in range(x1 - x): tn.write(b'A') x1 = x if y > y1: for d in range(y - y1): tn.write(b'S') else: for d in range(y1 - y): tn.write(b'W') y1 = y tn.write(str(jie[y][x]).encode()) print(tn.read_all().decode()) def check_soduku(row,column,number,matrix_board): check=0 for i in range(0,9): if matrix_board[row][i]==number: check=1 for i in range(0,9): if matrix_board[i][column]==number: check=1 row=row-row%3 column=column-column%3 for i in range(0,3): for j in range(0,3): if matrix_board[row+i][column+j]==number: check=1 if check==1: return False else: return True class calls: number_of_calls=0 c = calls() def sudoku_solver(matrix): c.number_of_calls=c.number_of_calls+1 break_condition=0 for i in range(0,9): for j in range(0,9): if matrix[i][j]==0: break_condition=1 row=i column=j break #print(matrix) #print(break_condition) if break_condition==0: print("Naive Backtracking Algorithm Solution: ") global fuck fuck = matrix return fuck print("Amount of Recursions") print(c.number_of_calls) exit(0) #print("hello") for i in range(0,10): if check_soduku(row,column,i,matrix): matrix[row][column]=i if sudoku_solver(matrix): return True matrix[row][column]=0 return False tn = telnetlib.Telnet("47.108.165.60",port=25894,timeout=40) tn.set_debuglevel(2) print(tn.read_very_eager()) tn.write(b'1\n') tn.write(b'7\n') tn.write(b'r\n') list = tn.read_until(b'Retstart the game? (Y):').decode() tn.write(b'y\n') newlist = list[250:len(list)-24] sudo = [] noooo = [] line = [] line1 = [] lin_b = '' for i in range(len(newlist)): if '0' <= newlist[i] <= '9': lin_b = lin_b + newlist[i] lin_b = lin_b.replace('7320','') lin_b = lin_b.replace('1320','') lin_b = lin_b.replace('732','') for i in lin_b: line.append(int(i)) line1.append(int(i)) if len(line) == 9: sudo.append(line) noooo.append(line1) line = [] line1 = [] print(noooo) sudoku_solver(sudo) move(noooo,fuck,tn)
烦人的压缩包
暴力破解
图片提取出压缩包后okk解密即可
RE
easythread
反调试绕过一下 动态调试一下,看了眼只有异或,直接替换数据。
SYC{Th1s_is_@_EasY_3ncryptO!!!!}
3d_maze
三维地图,一共五层,z轴的跳转有特定规律,直接提取地图手跑(提取地图识要把byte转换为dd)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效