2024矩阵杯misc,re,web,pwn解题思路

Misc

两极反转

题目所给的二维码是一个29x29的二维码,与正常的二维码比较发现,题目所给的二维码定位符有问题,再结合题目描述中的

两极反转,黑白不分 奇变偶不变,横变竖不变

可以推出从第9行开始,奇数行所有黑白反转,偶数行不变,直到倒数第九行

先写脚本将01数据拿出来写脚本

from PIL import Image

# 读取二维码图像
image = Image.open('qr.png')

# 将图像调整为 29x29 尺寸
image = image.resize((29, 29))

# 将图像转换为黑白模式(二值化)
bw_image = image.convert('1')

# 获取图像的像素数据
pixels = list(bw_image.getdata())

# 将黑色方块转换为 1,白色方块转换为 0,并一行一行输出
for i in range(29):
    print(''.join(['1' if pixels[i*29+j] == 0 else '0' for j in range(29)]))

得到

11111110111100001010001111111
10000010001101000110001000001
10111010001110111001001011101
10111010111010000010101011101
10111010000011010011101011101
10000010000000011101001000001
11111110101010101010101111111
00000000001001011110000000000
11010001001110110101001110110
01101101011010011011001101011
11100000100100100111110111000
00011100100111001001111101011
11011001100011001110110000100
01000100101011101000101000100
00110100010111000001110011000
11001100111110010011100110001
10000000011001001011110011101
00011001111101100000101001011
01100100111000000001110101000
01010000110001001101001001011
01001001010111111100000000100
00000000110111100001100011000
11111110010110011001101011111
10000010101000110010100010000
10111010101100110000111110011
10111010000111011101100011000
10111010110100000001111111101
10000010001100101000100011010
11111110000111110111110111011

从第九行开始翻转

def swap_zeros_and_ones(binary_str):
    result = ''
    for bit in binary_str:
        if bit == '0':
            result += '1'
        else:
            result += '0'
    return result

data = [
    "11010001001110110101001110110",
    "01101101011010011011001101011",
    "11100000100100100111110111000",
    "00011100100111001001111101011",
    "11011001100011001110110000100",
    "01000100101011101000101000100",
    "00110100010111000001110011000",
    "11001100111110010011100110001",
    "10000000011001001011110011101",
    "00011001111101100000101001011",
    "01100100111000000001110101000",
    "01010000110001001101001001011",
    "01001001010111111100000000100"
]

# 对每行进行处理
for index, line in enumerate(data):
    if index % 2 == 0:  # 奇数行
        print(swap_zeros_and_ones(line))
    else:  # 偶数行
        print(line)

翻转后得到

00101110110001001010110001001
01101101011010011011001101011
00011111011011011000001000111
00011100100111001001111101011
00100110011100110001001111011
01000100101011101000101000100
11001011101000111110001100111
11001100111110010011100110001
01111111100110110100001100010
00011001111101100000101001011
10011011000111111110001010111
01010000110001001101001001011
10110110101000000011111111011

最终的二维码数据是

11111110111100001010001111111
10000010001101000110001000001
10111010001110111001001011101
10111010111010000010101011101
10111010000011010011101011101
10000010000000011101001000001
11111110101010101010101111111
00000000001001011110000000000
00101110110001001010110001001
01101101011010011011001101011
00011111011011011000001000111
00011100100111001001111101011
00100110011100110001001111011
01000100101011101000101000100
11001011101000111110001100111
11001100111110010011100110001
01111111100110110100001100010
00011001111101100000101001011
10011011000111111110001010111
01010000110001001101001001011
10110110101000000011111111011
00000000110111100001100011000
11111110010110011001101011111
10000010101000110010100010000
10111010101100110000111110011
10111010000111011101100011000
10111010110100000001111111101
10000010001100101000100011010
11111110000111110111110111011

转换为二维码可得到:https://bahamas10.github.io/binary-to-qrcode/

 扫码得到flag:https://cli.im/deqr/other

 

Flag:flag{R3Ver5e_P014r17y}

真假补丁

根据上传的%E8%A1%A5%E4%B8%81.exe运行可以得到两个exe文件分别是补丁检测.exe和补丁修复.exe,其中有很多重要的信息可以推出是aes加密

再加上tcp追踪到的第二个流可以得到加密数据

先追踪tcp第一个流,可以发现上传了一个exe

导出对象中找到上传的%E8%A1%A5%E4%B8%81.exe

这是一个自解压的程序,点击运行之后会得到两个exe

查壳会发现修复的exe是一个python3.8的库,检测的exe也是一个python3.8的库

不知道怎么查看这两个exe,运行不了,就直接010editor搜索了,在修复.exe末尾发现aes加密

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值