【攻防世界】-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的工程目录下,结果导致文件的创建时间变为了复制的时间,破坏了附件原有的信息。
汲取经验教训:对于需要处理文件时间的情况,要小心对待附件,在移动附件时应当先移动压缩包的位置,再在需要的目录下进行解压,避免破环附件信息。

posted @ 2025-05-28 21:22  wyuu101  阅读(63)  评论(0)    收藏  举报