攻防世界 ecb,_it’s_easy_as_123

 下载附件cry300未知文件,直接用16进制工具查看头文件信息,或者可以丢到kali里file命令一下,总之知道是(PK).zip文件,修改添加文件后缀即可


bmp图片打不开,猜测文件头信息不完整

再次丢进kali碰碰运气,发现是带有“盐值”的加密,但是不确定是AES还是DES,还有ecb工作模式的提示也让人摸不着方向,似乎用处不大

回到bmp文件,发现下图更加清晰显示该加密采用“盐值”来加强密码的安全性


关键信息1:使用 OpenSSL 加密时,默认会在文件开头覆盖 原16字节的前缀 变为( Salted__ + 8字节随机盐值)

再次注意到.txt 中提示:

关键信息2: “4K”, “black & white 格式”

ps...
3840×2160(常见)、4096×2160 

对于黑白 BMP 文件,调色板包含 2 种颜色(黑和白),每种颜色占 4 字节

  • 黑色:00 00 00 00(RGB = 0, 0, 0)

  • 白色:FF FF 00(RGB = 255, 255, 255)

整合关键信息 4k(3840 * 2160)、黑白格式,查找关于bmp文件的文件头信息结构:
 

BMP格式的文件从头到尾依次是如下信息:

  • bmp文件头(bmp file header):共14字节
  • 位图信息头(bitmap information):共40字节
  • 调色板(color palette):可选 (理论上可以无限大,但是不现实)

其受限于:

1、BMP 文件头中的调色板颜色数字段

2、每像素位数决定调色板颜色数:

      1 位/像素:2 种颜色 (8字节)

      4 位/像素:16 种颜色 (64字节)

      8 位/像素:256 种颜色 (1024字节)           (调色板大小 = 颜色数 × 4 字节)<= 1024字节 

  • 位图数据

思路:
        本来一看到黑白格式,就想着采用1位/像素,因为就两种颜色,但是修改如下文件头,文件全黑,尝试修改调色板区域,就两种颜色换来换去死都不变,一直全黑,我摊牌了
(ps。如果有大佬看会了,教教俺)
42 4D 76 48 3F 00 00 00 00 00 3E 00 00 00 28 00  
00 00 00 0F 00 00 70 08 00 00 01 00 01 00 00 00  
00 00 00 48 3F 00 00 00 00 00 00 00 02 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 FF FF FF 00                                                (14+40+8) =62 字节  --- 也可以填充补位

后面想着尝试采用4位/像素,虽然最多可以有16色,但就只选黑白(FF FF FF 00、00 00 00 00 )
42 4D 76 48 3F 00 00 00 00 00 76 00 00 00 28 00
00 00 00 0F 00 00 70 08 00 00 01 00 04 00 00 00
00 00 00 48 3F 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 FF FF FF 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    (14+40+64)=118 字节  有填充补位到128字节

保存尝试打开,调色板内部可以随便添加 白 、 黑,直到你觉得可以看清

最后附上bmp文件头结构:

### 关于攻防世界 Easy_Maze 的解题思路 #### 题目背景 Easy_maze 是一款基于字符串输入的简单迷宫游戏,玩家通过键盘输入特定字符序列完成迷宫路径规划并最终获得 flag。这类题目通常涉及基础的逆向分析以及简单的逻辑推理。 #### 解题方法概述 根据已知信息[^4],该关卡的核心在于理解如何利用 `wsad` 控制角色移动方向以穿越迷宫。具体来说: - **输入方式**:程序接受一系列由字母组成的字符串作为指令集。 - **功能映射**: - 字母 `w` 表示向上移动; - 字母 `s` 表示向下移动; - 字母 `a` 表示向左移动; - 字母 `d` 表示向右移动; 此部分可以通过阅读源码或者调试工具反汇编得到结论[^3]。 #### 实际操作流程 为了成功通关 easy_maze 并获取最终答案 UNCTF{...} ,需要按照如下方式进行尝试: 1. 使用动态调试器加载二进制文件观察执行过程中的分支条件变化情况。 2. 结合静态代码审查确认每一步合法动作范围及其触发机制。 3. 构造满足所有约束条件的有效路径表达式提交验证服务器校验正确性。 以下是可能的一个解决方案实例演示代码片段: ```python solution = "ssddwdwdddssaasasaaassddddwdds" print(f"The solution to the maze is {solution}") ``` 上述脚本定义了解决方案变量 solution,并打印出完整的行动轨迹供参考者复制粘贴至目标平台界面测试效果。 #### 总结 通过对 easy_maze 的深入剖析可以看出,此类 CTF 类型竞赛项目主要考察参赛选手对于基本计算机科学概念的理解程度以及实际动手解决问题的能力水平。掌握好相关基础知识能够帮助我们更加高效地应对各种复杂场景下的挑战任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值