【攻防世界】适合作为桌面
收获
得到文件的十六进制数据时,可以将该十六进制数据粘贴进 WinHex 后另存为一个新的文件,就可以得到该十六进制数据对应的文件,注意文件后缀名
留意 pyc、pyt 等,一般与 python 反编译有关,在线 pyc 反编译:python反编译 - 在线工具 (tool.lu)
思路
解压得到一张 png 图片
用 Stegsolve
打开:java -jar Stegsolve.jar
通过调整颜色发现一个二维码
扫码得到一串字符:
03F30D0A79CB05586300000000000000000100000040000000730D0000006400008400005A000064010053280200000063000000000300000016000000430000007378000000640100640200640300640400640500640600640700640300640800640900640A00640600640B00640A00640700640800640C00640C00640D00640E00640900640F006716007D00006410007D0100781E007C0000445D16007D02007C01007400007C0200830100377D0100715500577C010047486400005328110000004E6966000000696C00000069610000006967000000697B000000693300000069380000006935000000693700000069300000006932000000693400000069310000006965000000697D000000740000000028010000007403000000636872280300000074030000007374727404000000666C6167740100000069280000000028000000007304000000312E7079520300000001000000730A0000000001480106010D0114014E280100000052030000002800000000280000000028000000007304000000312E707974080000003C6D6F64756C653E010000007300000000
发现该字符都是由数字和字母 ABCDEF 组成的,由此猜测这是十六进制
进行十六进制转字符串:
有很多乱码,但是可以看到有不少 '{}'
、'()'
,感觉像是代码
结合可以看到 1.pyt
、1.pyR
,可能与 python 的反编译文件有关(由文件头 03 F3 也可推断是 pyc 文件)
将这一串十六进制数据,用 WinHex 粘贴进去:
并另存为一个新的文件,后缀名改为 .pyc,得到 1.pyc:
通过在线 pyc 反编译该文件:python反编译 - 在线工具 (tool.lu)
反编译成功,得到代码:
#!/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
发现是一段打印 flag 的代码,稍作修改,直接运行即可:
得到 flag
结果
flag{38a57032085441e7}
评论