一、简单的图片
1.得到png,zsteg分析发现特殊文本
2.zsteg导出 zsteg -a IM.png -E b1,bgr,lsb,xy > 1.txt,发现字符在xsctf之间,猜测分别对应的就是0、1、2、3、4,转换一下
3.猜测是5进制数,转化一下十进制再转化为字符串,写个脚本
点击查看代码
import math
ls = ['00402', '00413', '00342', '00403', '00443', '00332', '00441', '00143', '00432', '00340', '00342', '00424', '00401', '00340', '00230', '00420', '00340', '00144', '00414', '00342', '00403', '00201', '00340', '00414', '00342', '00430', '00431', '00401', '00424', '00142', '01000']
for i in ls:
num = int(i)
cnt = 0
result = 0
# print(num)
while num != 0:
#print(num % 10)
result += (num % 10) * math.pow(5,cnt)
cnt += 1
num = int(num / 10)
print(int(result),end=' ')
4.010转十六进制,得到flag
二、test.pyc
1.pyc文件,在线反编译后显示部分未成功,flag3()是缺少的,使用uncompyle6进行反编译,得到大约完整的
2.得到完整的编码,=cWbihGfyMzNllzZ0cjZzMWN5cTM4YjYygTOycmNycWNyYmM1Ujf,猜测是base64,但是是逆序,脚本转化解码,得到新的编码
~552f25g26g2982b681795c3f74g9e732|hbmg
3.没有明显的特点,猜测是凯撒,但是需要先进行逆序
gmbh|237e9g47f3c597186b2892g62g52f255~
4.在key为1的时候发现flag关键词
5.不完全是,对比一下十六进制值可发现|和{差为1,那就将后面的字符值向前移一位,脚本跑一下
点击查看代码
str = "|237d9f47e3b597186a2892f62f52e255~"
num1 = len(str)
for i in str:
if i >="a" and i <= "z":
print(hex(ord(i)),end=' ')
else:
print(hex((ord(i) - 1)),end=' ')
6.得到flag
flag{126d8f36e2b486075a1781f51f41e144}
标签:cnt,00340,day3,00342,flag,num,print
From: https://www.cnblogs.com/120211P/p/17546859.html