打开NSSCTF靶场,下载附件得到:
打开之后让AI分析一下代码内容并写出反向求出flag的.c文件:
#include <stdio.h>
#include <string.h>
int main(){
char a[]="wwwwwww";
char b[]="d`vxbQd";
//try to find out the flag
printf("please input flag:");
scanf(" %s",&a);
if(strlen(a)!=7){
printf("NoNoNo\n");
system("pause");
return 0;
}
for(int i=0;i<7;i++){
a[i]++;
a[i]=a[i]^2;
}
if(!strcmp(a,b)){
printf("good!\n");
system("pause");
return 0;
}
printf("NoNoNo\n");
system("pause");
return 0;
//flag 记得包上 NSSCTF{} 再提交!!!
}
#include <stdio.h>
#include <string.h>
int main() {
char b[] = "d`vxbQd";
char a[8]; // 用来存放得到的 flag,加一个结束符
for (int i = 0; i < 7; i++) {
// 逆向操作
a[i] = (b[i] ^ 2) - 1;
}
a[7] = '\0'; // 添加字符串的结束符
printf("The flag is: %s\n", a);
// 输出结果,包括 NSSCTF{}
printf("The complete flag is: NSSCTF{%s}\n", a);
return 0;
}
运行一下:
成功解出得出flag:
NSSCTF{easy_Re}