前言

binwalk是一款用于分析二进制文件的工具,它可以扫描一个文件,识别其中的各种文件格式,并在其中搜索嵌入的文件和可执行代码。binwalk主要用于安全测试和数字取证方面的工作,可以用于寻找网络攻击和恶意软件中隐藏的信息。

binwalk可以对文件进行深度分析,包括静态和动态分析,可以检测流行的文件头、魔法数字、压缩和加密算法等。binwalk还可以搜索网络流量、捕获和分析通信协议、提取文件系统等。binwalk支持多种操作系统,包括Linux、MacOS、Windows等。

foremost是一款文件恢复工具,用于在文件系统中恢复已删除的文件。它可以在硬盘、CD、DVD、USB驱动器和闪存卡等存储设备上进行工作,并恢复基于文件的格式,如JPEG、PDF、ZIP等文件。foremost会快速扫描存储设备的二进制数据,查找头文件和脚注签名,以确定可能已删除文件的位置。

foremost支持多种文件格式的恢复,并可以自定义恢复的文件格式。它还可以通过搜索关键字来缩小搜索范围,以提高恢复速度和准确性。foremost可在Linux、Windows和MacOS操作系统上运行,可以作为命令行工具或图形用户界面进行操作。

一、密码破解,真的是

1.打开题目

在这里插入图片描述

2.解题

首先是分离出来一个png得到一个key:ctfer2333

1
binwalk -e out.gif

在这里插入图片描述

1
foremost out.gif

在这里插入图片描述

分离gif 得到576张图片。一开始以为是二维码,然后一直捣鼓二维码。最后朋友提示说是二进制的格式,图片上的绿色为0 紫色为1 转换 。 尝试了绿色为1 和紫色为0 发现 绿色为0 紫色为1 可以转换。

用python进行解密得到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from PIL import Image
# 读取图片
image = Image.open('C:\\Users\\28919\\Desktop\\out.gif')
# 存放分离出的图片的路径
split = 'C:\\Users\\28919\\Desktop\\gif\\'
# 循环读取gif的每一帧
try:
while True:
# 当前位置
current = image.tell()
# 保存图片
image.save(split + str(current) + '.png')
# 移动到下一张
image.seek(current + 1)
except:
pass
# 储存提取出的字符
string = ''
# 直接把2进制转为10进制储存在line里
line = 0
i = 0
# 图片里每一个色块是10×10像素大小,总共24×24个色块
for y in range(24):
for x in range(24):
# 载入一张图片
pix = Image.open(split+str(i)+'.png').convert('RGBA').load()
# 读取色块的颜色值
r, g, b, p = pix[x*10,y*10]
if g == 255:
# 0
line = line << 1
if r == 255 and b == 255:
# 1
line = (line << 1) + 1
i += 1
# 凑够8位就把line转为字符储存在string里
if i%8 == 0:
string += chr(line)
line = 0
print(string)

得到o8DlxK+H8wsiXe/ERFpAMaBPiIcj1sHyGOMmQDkK+uXsVZgre5DSXw==hhhhhhhhhhhhhhhh

各种尝试无果之后去掉 后面hhhhhhhhhh可能是那个加密的key (可能是最开始解密出来的png图片的意思,并不是说是ctfer23333,请勿错误理解)

然后进行des解密如下:
在这里插入图片描述
得到flag:flag{2ce3b416457d4380dc9a6149858f71db}