【CTF MISC】XCTF GFSJ0010 适合作为桌面 Writeup(图片隐写+QR Code识别+pyc反编译)

适合作为桌面

暂无


工具

解法

请添加图片描述

用 StegSolve 打开,左上角发现隐藏的二维码。

放大图像,用 QR Research 解码。

得到一串编码。

03F30D0A79CB05586300000000000000000100000040000000730D0000006400008400005A000064010053280200000063000000000300000016000000430000007378000000640100640200640300640400640500640600640700640300640800640900640A00640600640B00640A00640700640800640C00640C00640D00640E00640900640F006716007D00006410007D0100781E007C0000445D16007D02007C01007400007C0200830100377D0100715500577C010047486400005328110000004E6966000000696C00000069610000006967000000697B000000693300000069380000006935000000693700000069300000006932000000693400000069310000006965000000697D000000740000000028010000007403000000636872280300000074030000007374727404000000666C6167740100000069280000000028000000007304000000312E7079520300000001000000730A0000000001480106010D0114014E280100000052030000002800000000280000000028000000007304000000312E707974080000003C6D6F64756C653E010000007300000000

导入 Winhex。

十六进制转为二进制。

另存为 .pyc 文件。

使用python反编译 - 在线工具解密。

# !/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 2.7


def flag():
    str = [
        102,
        108,
        97,
        103,
        123,
        51,
        56,
        97,
        53,
        55,
        48,
        51,
        50,
        48,
        56,
        53,
        52,
        52,
        49,
        101,
        55,
        125]
    flag = ''
    for i in str:
        flag += chr(i)

    print
    flag

修改一下。

def flag():
    str = [102, 108, 97, 103, 123, 51, 56, 97, 53, 55, 48, 51, 50, 48, 56, 53, 52, 52, 49, 101, 55, 125]
    flag = ''
    for i in str:
        flag += chr(i)
    print(flag)

flag()

Flag

flag{139711e8e9ed545e}

问题(待解决)

使用 uncompyle6 解密。

uncompyle6 1.pyc -o 1.py

可以成功解密,但是数组中的数据不对。

# uncompyle6 version 3.9.1
# Python bytecode version base 2.7 (62211)
# Decompiled from: Python 3.11.5 (tags/v3.11.5:cce6ba9, Aug 24 2023, 14:38:34) [MSC v.1936 64 bit (AMD64)]
# Embedded file name: 1.py
# Compiled at: 2016-10-18 15:12:57


def flag():
    str = [
     1, 2, 3, 4, 5, 6, 7, 3, 8, 9, 10, 6, 11, 10, 7, 8, 
     12, 12, 13, 14, 9, 15]
    flag = ''
    for i in str:
        flag += chr(i)

    print flag

修改一下。

def flag():
    str = [1, 2, 3, 4, 5, 6, 7, 3, 8, 9, 10, 6, 11, 10, 7, 8, 12, 12, 13, 14, 9, 15]
    flag = ''
    for i in str:
        flag += chr(i)
    print(flag)

flag();

运行结果为乱码。原因未知。


声明

本博客上发布的所有关于网络攻防技术的文章,仅用于教育和研究目的。所有涉及到的实验操作都在虚拟机或者专门设计的靶机上进行,并且严格遵守了相关法律法规

博主坚决反对任何形式的非法黑客行为,包括但不限于未经授权的访问、攻击或破坏他人的计算机系统。博主强烈建议每位读者在学习网络攻防技术时,必须遵守法律法规不得用于任何非法目的。对于因使用这些技术而导致的任何后果,博主不承担任何责任

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值