【攻防世界】-Time_losing
⭕、知识点
1、文件修改、访问、创建时间的读取(os模块)
2、时间的处理(time模块)
3、ascii转码
一、题目
给了一堆0KB的文本文件
题目提示:
二、解题
1、根据题目提示,应该是和文件时间有关系
2、随便选取一个文件查看属性:
发现创建时间与题目提示的时间非常相近,猜测二者相减得到一个ascii码
3、编写脚本快速处理
import time
import os
old_time = int(time.mktime(time.strptime("2033-05-18 11:33:20","%Y-%m-%d %H:%M:%S")))
result = ""
for i in range(0,47):
new_time = int(os.path.getctime(f"1d9426dd-32ea-4fc5-b441-a30d59a34a19 (2)/stego/{i}.txt"))
diff_time = new_time - old_time
result += chr(diff_time)
print(result)
但是不知道为啥输出结果居然与网上的wp不同,感觉是附件有问题。
但是思路肯定是这样的
三、答案
XMan{seems_to_be_related_to_the_special_guests}
四、总结与收获
1、这道题驱使我去系统学习了一下time模块和os模块中的path子块功能。
-
os.path部分
-
time部分
参考连接time.time() #返回当前时间戳(秒),类型为float time.loacaltime() #将时间戳转为time_struct类型,如果不传入时间戳,默认取当前时间戳 time.mktime() #将time_struct转为时间戳 time.strftime(format,time_struct) #格式化时间,将时间转为可打印的格式化文本 time.strptime(str,format) #将可打印的格式化文本逆转回time_struct time.asctime(time.localtime()) #快速获取当前时间的可打印格式化字符串 time.process_time() #获取cpu时钟,用于性能测试(不包括程序休眠) time.perf_counter() #获取系统运行时钟(包括程序休眠时间)
格式化占位符
意义 占位符 四位数的年份 %Y 两位数的年份 %y 月份 %m 月中日 %d 24小时制时 %H 12小时制时 %M 分 %m 秒 %s 本地完整星期名称 %A 本地简化星期名称 %a 本地完整的月份名称 %B 本地简化的月份名称 %b 年内的一天(001-366) %j 一年中的星期数(00-53) %U 本地A.M.或P.M. %p
2、在下载完附件并解压后,我直接把解压后的文件夹复制粘贴到我pycharm的工程目录下,结果导致文件的创建时间变为了复制的时间,破坏了附件原有的信息。
汲取经验教训:对于需要处理文件时间的情况,要小心对待附件,在移动附件时应当先移动压缩包的位置,再在需要的目录下进行解压,避免破环附件信息。