当前位置: 首页 > ai >正文

【nssctf第三题】[NSSCTF 2022 Spring Recruit]easy C

在这里插入图片描述
这是题目,下载附件打开是个C文件

#include <stdio.h>
#include <string.h>int main(){char a[]="wwwwwww";char b[]="d`vxbQd";//try to find out the flagprintf("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{} 再提交!!!
}

代码审计:
1.输入一个长度为7的字符串;
2.对每个字符加1且对2进行异或操作;
3.如果进行上述两步操作的字符串与b相等,则flag正确;
所以对该加密过程进行逆向即可;

#include <stdio.h>
#include <string.h>int main() {char flag[8]={0};char b[] = "d`vxbQd";// 模拟程序中的加密过程for(int i = 0; i < 7; i++) {flag[i] = b[i] ^ 2;flag[i]--;}flag[7]='\0';printf("flag: %s\n", flag);return 0;
}

得到在这里插入图片描述

提交NSSCTF{easy_Re}

在这里插入图片描述

http://www.xdnf.cn/news/10614.html

相关文章:

  • 29 C 语言内存管理与多文件编程详解:栈区、全局静态区、static 与 extern 深度解析
  • Codeforces Round 1026 (Div. 2) C. Racing
  • Java内存模型与互斥锁
  • Python打卡训练营Day43
  • 《多状态DP:状态设计与状态转移方程速成指南》​
  • Leetcode 1136. 并行课程
  • MySQL语法练习 - 基础DDL/DML/DQL/DCL练习
  • 监督学习 vs 无监督学习:AI两大学习范式深度解析
  • Java内部类详细教程
  • 06.MySQL数据库操作详解
  • Retrievers检索器+RAG文档助手项目实战
  • 字符串加解密
  • 配置刷新技术
  • 【Python 进阶3】常见的 call 和 forward 区别
  • JavaSE 字符串:深入解析 String、StringBuilder与 StringBuffer
  • 第十章:Next的Seo实践
  • 力扣HOT100之多维动态规划:62. 不同路径
  • C. Basketball Exercise
  • Vue-6-前端框架Vue之基于Plotly.js绘制曲线
  • 3,信号与槽机制
  • BUUCTF[ACTF2020 新生赛]Include 1题解
  • NVM,Node.Js 管理工具
  • 【Delphi】接收windows文件夹中文件拖拽
  • (Python网络爬虫);抓取B站404页面小漫画
  • Python-matplotlib库之核心对象
  • 设计模式——备忘录设计模式(行为型)
  • Kotlin 中 companion object 扩展函数详解
  • Java连接Redis和基础操作命令
  • 【Linux】Ubuntu 20.04 英文系统显示中文字体异常
  • 什么是线程上下文切换?