首页
社区
课程
招聘
[原创]kctf2021 第四题 英雄救美
2021-5-27 10:07 8538

[原创]kctf2021 第四题 英雄救美

2021-5-27 10:07
8538

flag: :u$YBPf2pa]Dt4#QM^H4ic'j0`w2y{d-Zzo2%/n_s@+2<UW)e4AR;F.4=-qEkvC2

 

搜索字符串


找到代码位置

输入后第一次check,输入字符不是'1' - '9' ,在字符列表里查找,找到的下标 mod 9 再加1

输入是'1' - '9' 与前面的输入字符数量之和为9,然后重新计数, 字符列表从第9n个开始查找。

第二次check,将上面得到的数字按照次序填入数独中。

随后是个md5结果作为key,aes解密代码,输出正确信息eg。

#include<iostream>
#include<stdio.h>
using namespace std;
int a[9][9]={0, 4, 0, 7, 0, 0, 0, 0, 0,
9, 2, 0, 0, 0, 0, 6, 0, 7,
8, 3, 0, 0, 0, 5, 4, 0, 0,
0, 1, 0, 0, 0, 3, 0, 0, 0,
0, 0, 0, 2, 0, 1, 0, 0, 0,
0, 0, 0, 5, 0, 0, 0, 4, 0,
0, 0, 4, 9, 0, 0, 0, 7, 1,
3, 0, 5, 0, 0, 0, 0, 9, 4,
0, 0, 0, 0, 0, 8, 0, 6, 0,};
int b[9][9]={0, 4, 0, 7, 0, 0, 0, 0, 0,
9, 2, 0, 0, 0, 0, 6, 0, 7,
8, 3, 0, 0, 0, 5, 4, 0, 0,
0, 1, 0, 0, 0, 3, 0, 0, 0,
0, 0, 0, 2, 0, 1, 0, 0, 0,
0, 0, 0, 5, 0, 0, 0, 4, 0,
0, 0, 4, 9, 0, 0, 0, 7, 1,
3, 0, 5, 0, 0, 0, 0, 9, 4,
0, 0, 0, 0, 0, 8, 0, 6, 0,};
string s="$BPV:ubfYp}]DtN>aT^MGmJQ#*Hr`O'wjic0!hdy{oZz-@n+?&%s_/g<e[W)XUxRFSLRA;.l=CEkvK-(q";
bool judge(int x,int y,int num){
    int block_x=x/3,block_y=y/3;
    for(int i=0;i<9;i++){
        if(a[x][i]==num||a[i][y]==num){
            return 0;
        }
    }
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            if(a[block_x*3+i][block_y*3+j]==num){
                return 0;
            } 
        }
    }
    return 1;
}
void print(){
    for(int i=0;i<9;i++){
        for(int j=0;j<9;j++){
            cout<<a[i][j]<<' ';
        }
        cout<<endl;
    }
    for(int i=0;i<9;i++){
        int count=0;
        for(int j=0;j<9;j++){
            if(!b[i][j]){
                cout<<s[a[i][j]-1+i*9];
            }
            else{
                count++;
            }       
        }
        cout<<count;
    }
}
void search(int x,int y){
    if(x==9){
        print();
        return;
    }
    if(a[x][y]){
        search(x+(y+1)/9,(y+1)%9);
    }
    else{
        for(int i=1;i<=9;i++){
            if(judge(x,y,i)){
                a[x][y]=i;
                search(x+(y+1)/9,(y+1)%9);
                a[x][y]=0;
            }
        }
    }
}
int main(){
    search(0,0);
    return 0;
}



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 3
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回