这次0xGame学到好多,感谢zysgmzb师傅的题

对题目进行部分复现(有的自己写的脚本太丑了用的官方的,同时不会的题直接放了官方wp)

考点:

midi(音乐编程语言解密)

n2s(ipython下运行编译)

磁盘取证

VeraCrypt挂载加密容器

RGB通道信息查看

SSTV

deepsound

内存取证(主机密码爆破)

PNG文件结构的梳理

01转二维码

USB流量分析(键鼠)

螺旋矩阵变换

傅里叶盲水印

异或变换

silence(带密码的音频)

crc32爆破

emojiaes解密

pyc反编译(xor)

cloacked-pixel(带密码的lsb)(ciscn2022题用过)

brcrack的使用

垃圾邮件解密

流量分析

奇怪符号的解密

信息搜索能力

压缩包的各种方式

社工题(

Week1

奇怪的符号

字母
数字

垃圾邮件

Week2

babyre

pyc反编译得到源代码

import base64

def encode(str):
    fflag = '0'
    for i in range(1, len(flag)):
         x = ord(flag[i]) ^ ord(flag[(i - 1)])
         x += 30
         fflag += chr(x)
    return base64.b64encode(fflag)

flag = open('flag.txt').read()
enc = encode(flag)
print enc

就是将原flag的每位与上位异或再加30后base64加密

import base64

cipher=open(r"C:\Users\16334\Desktop\out.txt").read()
ccipher=base64.b64decode(cipher)
flag='0'

for i in range(1,len(ccipher)):
    a=ccipher[i]-30
    flag+=chr(ord(flag[i-1])^a)

print(flag)

(同样用官方脚本)

隔空取物(带带我)

学一下

不太普通的图片

stegsolve得到密码

cloacked-pixel转换

哥们在这给你说唱

silence提取得到密码

deepsound隐写

Week3

螺旋升天

由于之前看过套神博客所以有点印象。

同时题目hint压缩包也是

压缩包的大小是289,构造一个17*17的矩阵变换

(这里直接引用官方wp脚本)

def function(n):
    matrix = [[0] * n for _ in range(n)]
    number = 1
    left, right, up, down = 0, n - 1, 0, n - 1
    while left < right and up < down:
    # 从左到右
    for i in range(left, right):
    matrix[up][i] = number
    number += 1
    # 从上到下
    for i in range(up, down):
        matrix[i][right] = number
        number += 1
    # 从右向左
    for i in range(right, left, -1):
        matrix[down][i] = number
        number += 1
    for i in range(down, up, -1):
          matrix[i][left] = number
          number += 1
        left += 1
        right -= 1
        up += 1
        down -= 1
    # n 为奇数的时候,正方形中间会有个单独的空格需要单独填充
    if n % 2 != 0:
      matrix[n // 2][n // 2] = number
    return matrix

import struct
s = function(17)
s = sum(s,[])
f = open('flag.zip','rb').read()
arr = [0]*289
for i in range(len(s)):
     arr[s[i]-1] = f[i]
with open('fflag.zip', 'wb')as fp:
     for x in arr:
       b = struct.pack('B', x)
       fp.write(b)

证取单简

深夜补blog所以懒得复现了(

一开始看回收站有个flag.txt还费了半天劲去恢复

官方wp

Time To Live(第一步没做出来)

直接引用官方wp

我也很异或呢(呜呜我是fw,异或都不会)

Week4

听首音乐?

midi,考虑Velato这种音乐编程语言进行解密

然后用一下n2s

ColorfulDisk

挂载vmdk可以发现四个文件

"1"为加密容器

使用VeraCrypt进行挂载(密码则是password中的)

提取一个图片"1.png"

因为题目说是RGB,所以查看(一把梭发现0-7通道都有信息)

stegsolve提取

提取出wave,发现是SSTV,扫描得到压缩包密码

走失的猫猫

挂载vmdk提取catcat.png,一眼猫脸变换

文件尾发现猫脸变换参数

使用脚本进行转换

SIMPLE_QR

一把梭直接扫出第一段

第二段

由于一个png里只有一个IEND块

因此是两张图放在了一起(打开010也会报错)

这一段是缺少png文件头的数据,00 00 01 64 则是宽高

补全后得到二维码

binwalk分出第三段,01转二维码


醉后不知天在水,满船清梦压星河