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

NSSCTF-[羊城杯 2023]程序猿Quby

下载附件解压得到rar文件,里面有一张png图片

对图片进行分析,发现有rar压缩包,用kali里binwalk命令进行分离

发现压缩包都被加密了,结合题目可以联想出夏多加密

将时间按顺序归类,发现每个序号的时间为1.2.3.4,跟夏多加密规律一样

题目告诉秒针和分针都坏了,所以只用关心时针即可

得到密码

解密就得到 H A V E A N I C E D A Y

但他并不是压缩包的密码,所以猜测有密码隐写

用cloacked-pixel分析图片

得到密码 we1c0met0ycbCTF!!!

得到两个xlsx文件和一个wav音频文件

二值矩阵

因为只有两个数字在不断重复出现,所以尝试布尔数,将5.53改为1 4.46改为0

然后上脚本

 def merge_matrices(submatrix1_file, submatrix2_file, merged_file):

     # 读取子矩阵文件1

     with open(submatrix1_file, 'r') as f1:

         submatrix1_lines = f1.readlines()

 ​

     # 读取子矩阵文件2

     with open(submatrix2_file, 'r') as f2:

         submatrix2_lines = f2.readlines()

 ​

     # 获取子矩阵行数和列数

     rows = len(submatrix1_lines)

     cols = len(submatrix1_lines[0].strip()) + len(submatrix2_lines[0].strip())

 ​

     # 检查子矩阵尺寸是否符合要求

     if cols != 126:

         print("错误:子矩阵尺寸不正确。")

         return

 ​

     # 合并子矩阵

     merged_matrix = []

     for i in range(rows):

         combined_row = submatrix1_lines[i].strip() + submatrix2_lines[i].strip()

         merged_matrix.append(combined_row)

 ​

     # 将合并后的矩阵写入新文件

     with open(merged_file, 'w') as f:

         for row in merged_matrix:

             f.write(row + '\n')

 ​

     print("合并完成。")

 ​

 # 调用函数并传入文件名

 merge_matrices('test1.txt', 'test2.txt', 'merged_matrix.txt')

转为黑白像素点构图

 import numpy as np

 from PIL import Image

 ​

 def restore_image_from_file(file_path):

     with open(file_path, "r") as file:

         lines = file.readlines()

 ​

     binary_matrix = []

     for line in lines:

         row = [int(value) for value in line.strip()]

         binary_matrix.append(row)

 ​

     height = len(binary_matrix)

     width = len(binary_matrix[0])

 ​

     image = Image.new("L", (width, height))

     pixels = image.load()

 ​

     for y in range(height):

         for x in range(width):

             if binary_matrix[y][x] == 0:  # 白色像素

                 pixels[x, y] = 255

             else:  # 黑色像素

                 pixels[x, y] = 0

 ​

     return image

 ​

 # 使用示例

 file_path = "3.txt"  # 二值化矩阵文件路径

 restored_image = restore_image_from_file(file_path)

 restored_image.show()

脚本参考@*鱼香Rose

运行得到密码

 w0wyoudo4goodj0b

两个文件,fl4g.txt有两层编码,解密得到

 sQ+3ja02RchXLUFmNSZoYPlr8e/HVqxwfWtd7pnTADK15Evi9kGOMgbuIzyB64CJ

将刚刚解出的字符串作为新表替换

NSSCTF{Qu6y_d0_not_lik3_w0rking_4t_all}

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

相关文章:

  • 【通用技巧】技术文章工业级指南:目标定位、架构设计与持续演进
  • PINN高阶技术综合应用:复杂问题求解与神经算子进阶
  • NV123NV134美光闪存颗粒NV139NV143
  • 52页 @《人工智能生命体 新启点》中國龍 原创连载
  • 详细设计文档怎么写?@附参考原件
  • Spring Boot中如何对密码等敏感信息进行脱敏处理
  • 【一. Java基础:注释、变量与数据类型详解】
  • 安卓11 多任务视图270 度的情况报错
  • n 阶矩阵 A 可逆的充分必要条件是 ∣ A ∣ ≠ 0
  • (泛函分析)线性算子谱的定义,谱的分类,谱的性质。
  • 精益数据分析(83/126):从病毒性到营收——创业阶段的关键跨越与商业化策略
  • 《Java 单例模式:从类加载机制到高并发设计的深度技术剖析》
  • go多线程压测监控
  • 每日算法刷题Day14 5.24:leetcode不定长滑动窗口求子数组个数越长越合法4道题,用时1h20min
  • 行为型:模板方法模式
  • Web 安全进阶:前端信封加解密技术详解
  • day35 python模型可视化与推理
  • 【卫星通信】通信卫星链路预算计算及其在3GPP NTN中的应用
  • [Windows] GDownload v1.0.0
  • 豪越科技:消防应急装备智能仓储管理新变革
  • 命令执行漏洞深度解析与防御指南
  • 《Claude:人工智能界的璀璨新星》
  • 如何对两段轨迹进行拟合过渡
  • 【Matlab】雷达图/蛛网图
  • [Linux] 再谈 Linux Socket 编程技术(代码示例)
  • redis的主从复制
  • JavaSE常用API之Runtime类:掌控JVM运行时环境
  • 分布式系统设计实战 - 服务注册中心最佳选型
  • char类型既能表达字符又能表达整数
  • IDEA中创建SpringBoot项目没有Java8