[WP] 攻防世界 CSFJ0010 适合作为桌面

发布时间 2023-06-22 01:53:33作者: 没事摸摸小肚子

「附件」

「思路」

  1. 查看图片属性,没发现什么特别
  2. 使用 Stegsolve 查看图片,有所发现

「过程」

使用 Stegsolve 在 Red plane 1 发现二维码,扫描后得到一个字符串

03F30D0A79CB05586300000000000000000100000040000000730D0000006400008400005A000064010053280200000063000000000300000016000000430000007378000000640100640200640300640400640500640600640700640300640800640900640A00640600640B00640A00640700640800640C00640C00640D00640E00640900640F006716007D00006410007D0100781E007C0000445D16007D02007C01007400007C0200830100377D0100715500577C010047486400005328110000004E6966000000696C00000069610000006967000000697B000000693300000069380000006935000000693700000069300000006932000000693400000069310000006965000000697D000000740000000028010000007403000000636872280300000074030000007374727404000000666C6167740100000069280000000028000000007304000000312E7079520300000001000000730A0000000001480106010D0114014E280100000052030000002800000000280000000028000000007304000000312E707974080000003C6D6F64756C653E010000007300000000
最小0,最大F,是十六进制。
既然是Hex,就放到Hex编辑器中看看,将字符串存为txt,用WinHex打开
按Ctrl+R 转换文件,选择 十六进制ASCII -> 二进制

发现字符串 .pyt ,猜测这是个python脚本,修改文件后缀为 .pyc(为什么不把后缀改成.pyt?因为 EasyPythonDecompiler 只支持反编译pyc文件)。

使用 EasyPythonDecompiler 进行反编译,得到一个 .pyc_dis 的文件。
Notepad++打开看看,确实是个python脚本。

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

修改后缀为.py,结尾加一行 flag() 跑跑看。
拿到flag。

「工具」

  • Stegsolve 图片隐写查看
  • WinHex 十六进制编辑器
  • EasyPythonDecompiler Python反编译工具
  • Python开发环境

「知识拓展」

.pyc后缀的文件是python源码经过编译后的脚本文件,它里面的数据都是可以被python虚拟机所直接执行的字节码。源码编译为pyc文件后程序的运行速度会变快,但是无法再逆向编译为源码了。