2024数信杯北区决赛
备注:图片图床使用为Github,打不开需要挂梯子!
数据分析
secret_1
小强离开电脑的时候,某人把小强的秘密给偷走了,还把文件修改覆盖了,作案脚本也删了。请帮助小强找到丢失的相关数据。
1.提交加密算法工具当中的flag值。(提交示例:flag{*})
010直接搜索到了
secret_2
2.恢复图片中的flag值。
python2 vol.py -f ../data1.raw --profile=Win7SP1x64 filescan | grep flag
python2 vol.py -f ../data1.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000007f3f17b0 -D ./
找到了flagg.png
然后在相同目录下发下了一个pyc文件,提取出来进行反编译得到源码
# Version: Python 3.7
def encode(png):
flag = 'flag{eba771fd-2b03-418f-b11a-60f1141c99ee}'
lens = len(flag)
with open(png, 'rb') as f:
pic_bytes = f.read()
output_bytes = bytearray()
for i in range(len(pic_bytes)):
output_bytes.append(pic_bytes[i] ^ ord(flag[i * 2 % lens]))
with open(png, 'wb') as f:
f.write(output_bytes)
def decode(png):
flag = 'flag{eba771fd-2b03-418f-b11a-60f1141c99ee}'
lens = len(flag)
with open(png, 'rb') as f:
pic_bytes = f.read()
output_bytes = bytearray()
for i in range(len(pic_bytes)):
output_bytes.append(pic_bytes[i] ^ ord(flag[i * 2 % lens]))
with open(png, 'wb') as f:
f.write(output_bytes)
# 示例文件路径
file_path = './flag.png'
# 使用示例
#encode(file_path) # 加密
decode(file_path) # 解密
最终得到flag
secret_3
3.提交压缩包当中的flag值。
待复现(
history_1&&history_2
浏览器历史数据查找。
1.提交flag中uuid值32位小写md5加密第一位为4的uuid(提交示例:9c26d7a6-ea44-4beb-96a8-bc9c75866fef)
2.提交flag中uuid值32位小写md5加密第一位为a的uuid(提交示例:9c26d7a6-ea44-4beb-96a8-bc9c75866fef)
python2 vol.py -f ../data2.raw --profile=Win7SP1x64 filescan | grep ".ipynb"
python2 vol.py -f ../data2.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000007d843bd0 -D ../
python2 vol.py -f ../data2.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000007da54b40 -D ../
分别提取出来得到两个flag
3d45f56a-b63c-44bd-adea-9aad22ae2e20
fe55e2fb-ae4f-4b6d-b93d-da42479b5d69
数据安全
ez_sign
弱密码爆破出来,123456
然后part1直接在图片
part2流量包直接得到
part3将异或FF得到压缩包
flag{266c7354-0817-4694-9494-c727479d8f1a}
签到寄语
找到开源项目libcimbar
扫码即得
Pixel
先把文件头改一下得到png图片
同时文件头有提示sm4
然后lsb隐写得到三个参数
数据算法
水印攻击
这个版本分不是很高(
import cv2
import numpy as np
def add_gaussian_noise(image, mean=0, var=0.01):
sigma = var**0.5
gauss = np.random.normal(mean, sigma, image.shape).astype('uint8')
noisy_image = cv2.add(image, gauss)
return noisy_image
def add_salt_and_pepper_noise(image, salt_prob=0.01, pepper_prob=0.01):
noisy_image = np.copy(image)
total_pixels = image.size
num_salt = np.ceil(salt_prob * total_pixels)
num_pepper = np.ceil(pepper_prob * total_pixels)
# 添加盐噪声
coords = [np.random.randint(0, i - 1, int(num_salt)) for i in image.shape]
noisy_image[coords[0], coords[1], :] = 1
# 添加胡椒噪声
coords = [np.random.randint(0, i - 1, int(num_pepper)) for i in image.shape]
noisy_image[coords[0], coords[1], :] = 0
return noisy_image
# 读取原图
input_image = cv2.imread('./input.png')
# 添加高斯噪音
noisy_image = add_gaussian_noise(input_image)
# 添加椒盐噪音
final_image = add_salt_and_pepper_noise(noisy_image)
# 保存结果
cv2.imwrite('result1.png', final_image)
Comments