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

攻防世界-parallel-comparator-200 - xxx

下载后得到是一个c语言文件,用vs创建一个项目后复制代码发现无法打开<pthread.h>,去网上搜了一下发现windows平台配置有点麻烦
于是就去搜索了一下这个的作用,后面分析代码的时候再提。

先看main函数

图片

user_string就是用户需要输入一个长度为20的字符串,然后去看能够触发ok条件的函数

图片

第一眼看去可能有点无从下手,没事遇到这种情况我一般都是从后面开始看的,既然is_ok的值要是1,那么其实可以很清楚的得到
result的值肯定全是0

图片

这时候我们再来看pthread_t的作用也不迟
pthread_t thread[FLAG_LEN]; 就是创建一个容量为 20 的 “线程 ID 列表”
pthread_create((pthread_t*)(thread + i), NULL, checking, arguments[i])
{等价于:将第i个线程的标识符存入 thread[i]
其中checking作为线程的回调函数(可以简单理解为每次执行这句代码都会调用checking函数),arguments[i]是arguments[i]函数的参数}
pthread_join(*(thread + i), &result); 等价于:等待 thread[i] 标识的线程结束,并获取其返回值,简单来说就是把前面调用的checking函数返回值给result
了解完这些对于解出这道题就足够了

屏幕截图 2025-09-17 232516

我们回到前面分析到的地方,前面得出result的值一定全是0,那么给result赋值的就是checking函数

图片

其中函数参数来源于

图片

first_letter:随机生成一个a-z小写字母的ascii值
那么arguments[i]就是一个3字节大小的小型数组,再回到checking函数
只有一种情况能够使结果是0,那就是一个数异或它本身,那么就可以得到
user_string[i] = first_letter + differences[i]

看到这个表达式你想到什么?我们平常写的题目要求我们输入的字符串一般都是有意义的对吧?
那么既然differences是给定的,first_letter是随机但是有范围的,为什么不遍历first_letter所有可能的值然后看看结果user_string有没有我们想要的
有了这个想法就可以写脚本了

dif = [0, 9, -9, -1, 13, -13, -4, -11, -9, -1, -7, 6, -13, 13, 3, 9, -13, -11, 6, -7]
i = 97
while(i<=122):flag = ""for j in dif:flag += chr(i+j)print(flag)i = i+1

最后的输出里面果然有一个

图片

最后的提醒:答案就是lucky_hacker_you_are,不是flag{lucky_hacker_you_are}********

http://www.zskr.cn/news/7102.html

相关文章:

  • 2025.9.17总结
  • 2025竞赛学习资料
  • US$21.99 3 Button Smart Card for BMW 315Mhz
  • xml基本语法
  • Day17多维数组
  • D拼数
  • 题解:P11704 [ROIR 2025] 旅行路线
  • 【汇编和指令集 . 第2025 . 9期】发现大牛
  • Day17数组的使用
  • for_switch
  • 记录我见过的神人
  • 虚拟机小结1
  • DOS指令学习
  • edu 106 E(LCS dp + 多源bfs优化)
  • 看 NOI2025 游记记
  • 详细介绍:还在重启应用改 Topic?Spring Boot 动态 Kafka 消费的“终极形态”
  • 安卓 Google Maps 的启用和制作步骤
  • SP3D c# 开发独立的exe
  • java八股文笔记 - 指南
  • NOIP 模拟赛十六
  • 【AT_dp_y】Grid 2 - Harvey
  • CF1413F Roads and Ramen
  • lc1030-距离顺序排列矩阵单元格
  • 合并区间-leetcode
  • 两种判断计算机大小端模式的方法
  • Mapper与Mapper.xml的关系
  • Rocky Linux10.0安装zabbix7.4详细步骤 - 教程
  • 近日C++线上练习结果
  • 日总结 2
  • Ubuntu Linux 云服务器常见安全漏洞修复方法汇总 Apache/OpenSSH/DNS