#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{} 再提交!!!
}
我分析过很多ida反编译的伪c代码,这是第一次分析真正的c语言
总之先把代码通读一遍
前面的输入输出就不看了
首先判断字符串是不是7位的
然后将每一位先加1,再异或一个2
最后比较
那么就很简单了啦
直接上脚本
b="d`vxbQd"
flag=""
for i in range(0,7):
flag+=chr((ord(b[i])^2)-1)
print(flag)