首页 > 其他分享 >2023-06-安洵杯-SYCCTF 部分WP

2023-06-安洵杯-SYCCTF 部分WP

时间:2023-06-12 09:44:38浏览次数:48  
标签:06 matrix column 安洵 number range 2023 print row

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)

标签:06,matrix,column,安洵,number,range,2023,print,row
From: https://www.cnblogs.com/home-of-maao/p/17474118.html

相关文章

  • Luogu P3435 [POI2006] OKR-Periods of Words
    [POI2006]OKR-PeriodsofWords题面翻译对于一个仅含小写字母的字符串\(a\),\(p\)为\(a\)的前缀且\(p\nea\),那么我们称\(p\)为\(a\)的proper前缀。规定字符串\(Q\)(可以是空串)表示\(a\)的周期,当且仅当\(Q\)是\(a\)的proper前缀且\(a\)是\(Q+Q\)的前缀......
  • 【230611-1】已知Sin(α-β)=1/3,CosαSinβ=1/6,则Cos(2α+2β)=?(23年高考1卷第8题)
    【题目】已知Sin(α-β)=1/3,CosαSinβ=1/6,则Cos(2α+2β)=?(23年高考1卷第8题)......
  • 【230611-2】已知:集合M={-2,-1,0,1,2},N={x|x^2-x-6>=0} 求:M∩N=?
    【题目】已知:集合M={-2,-1,0,1,2},N={x|x^2-x-6>=0}求:M∩N=?......
  • 【230611-3】记三角形的内角A,B,C的对边分别是a,b,c,已知三角形ABC的面积为根号3,D为BC中点,
    【题目】记三角形的内角A,B,C的对边分别是a,b,c,已知三角形ABC的面积为根号3,D为BC中点,且AD=1.1)若角ADC=60度,求tanB2)若b^2+c^2=8,求b和c的值......
  • 20230611 再次升级SSD
    家里常用电脑的硬盘又显得捉襟见肘,老规矩,升级SSD。幸亏几年前摸索的方法记录下来了,翻出以前的博客复习一下。为了保险起见,也重新在网上搜了一下,看是不是有新的更方便的方法,答案是没有,只是搜出很多推销工具软件的无效信息。实际上,微软都做好了工具,就在windows系统里,不需要另外再安......
  • P1306 斐波那契公约数 题解
    请求出\(f_n\)与\(f_m\)的最大公约数,即\(\gcd(f_n,f_m)\),答案对\(10^8\)取模。结论:\(\gcd(f_n,f_m)=f_{\gcd(n,m)}\)证明如下:首先引理1:\[f_{n+m}=f_{n-1}\timesf_{m}+f_{n}\timesf_{m+1}\]运用归纳法,可以简单证明,此处略去。引理2:\[\gcd(f_n,f_......
  • 202306112142-《最近开发心得...》
     没有心得就是在瞎搞,写心得就是“埋头耕耕,抬头看看”,看看自己做了什么......    心得就是心的感受,并非得到了什么,我以前是搞前端开发,仅仅4-5年时间,见证Angular市场份额的减少,backbone还嫌有耳闻,鲜有招聘;React框架从耳闻到霸屏;个人沐浴jquery的春风,枯于市场类似Vue......
  • ms14-068漏洞
    ms14-068漏洞目录ms14-068漏洞一、ms14-068漏洞介绍二、ms14-068漏洞利用条件三、ms14-068漏洞利用步骤四、利用goldenPac.exe工具一、ms14-068漏洞介绍ms14-068漏洞主要通过伪造域管的TGT,将普通用户权限提权为域管权限,以此来控制域控。只要服务器未打ms14-068补丁(KB3011780),在s......
  • 2023年6月日记
    2023-06-11早上去于申睿家看“踢巴萨,踢巴萨,踢曼联jj,theChampion~~”了。曼城和国际米兰踢得五五开,德布劳内三十分钟下场前有两次手术刀传球。不过有些人天生就是主角,即一高一快表现优异:楚庄王今天挡出了看起来很能进的队友头球,自己顶了一个也顶得不偏不倚被没收;劳塔罗失单......
  • 如何免费使用Typora(2023年最新攻略-支持图床)
    如何免费使用Typora(2023年最新攻略-支持图床)Typora是一款强大的markdown编辑器,它可以让你轻松地写出美观的文档。但是,Typora已经不再提供免费版了,只能付费使用。那么,有没有办法继续免费使用Typora呢?答案是肯定的。本文将为你介绍两种方法,让你可以无限制的使用Typora。方法一:使用......