时间戳
对应攻防世界MISC题Time_losing
已知源时间戳为2000000000
定义一下 并且定义一个a来存储最终的flag
oldtime=2000000000
a=""
总共有47个文件 (0~46) 需要每个文件都和源时间戳进行相减
那么就要用到循环
先获取文件的路径(记得复制自己的文件路径 不要搬用我的)
给定参数时,路径前面有个字母“r”,为消除转义字符功能用
file= r"文件路径"
file = r"C:\Users\12275\Desktop\stego\0.txt"
还需要用到一个format函数
format()函数介绍
它是通过引号中间包含花括号('{}')的形式通过点(.)format()形式进行函数调用
format()函数用来收集其后的位置参数和关键字段参数,并用他们的值填充字符串中的占位符。通常format()函数配合print()函数达到强格式化的输出能力,
format()函数固定的输出格式如下:
'{key : fill, align, sign,0,width, precision, type}'.format(para1...)
例子
通过关键字
print('{name}在{option}'.format(name="谢某人",option="写代码"))
结果:谢某人在写代码
通过位置
1.
print('name={} path={}'.format('zhangsan', '/')
结果:name=zhangsan path=/
2.
print('{1}在{0}'.format('写代码','谢某人'))
3.
print('{0}在{1}'.format('谢某人','写代码'))
结果:谢某人在写代码
简单来说format函数就是将format()中的参数填充到前面的{}中去
那么代码这么写
file = r"C:\Users\12275\Desktop\stego\{0}.txt".format(i) #每一次调用路径的时候 通过format改变调用的xt文件名 而不会只调用0.txt
然后需要获取每个文件的修改时间
获取文件的时间属性
用到的知识
os.getcwd() 方法用于返回当前工作目录
os.path.getatime(file) 输出文件访问时间
os.path.getctime(file) 输出文件的创建时间
os.path.getmtime(file) 输出文件最近修改时间
这里需要调用os库 要先用import导入
import os,time #查找处理文件要调用os库 先用import 导入
获取最近修改的时间
newtime = int(os.path.getmtime(file)) #获取最近修改时间 并转为整数型(就是时间戳)
两时间戳相减
s = newtime-oldtime
a = a + chr(s) #将差值转换为ASCII码
循环就写好了:
for i in range(0,47): #有0~46个txt文件 就是循环47次
file = r"C:\Users\12275\Desktop\stego\{0}.txt".format(i) #调用文件路径 记得复制自己的文件路径 不要搬用我的
newtime = int(os.path.getmtime(file)) #获取最近修改的时间
s = newtime - oldtime
a =a+chr(s) #将差值转为ASCII码
完整代码如下
import os,time #查找处理文件要调用os库 先用import 导入
oldtime=2000000000
a=""
for i in range(0,47): #有0~46个txt文件 就是循环47次
file = r"C:\Users\12275\Desktop\stego\{0}.txt".format(i) #调用文件路径 记得复制自己的文件路径 不要搬用我的
newtime = int(os.path.getmtime(file)) #获取最近修改的时间
s = newtime - oldtime
a =a+chr(s) #将差值转为ASCII码
print(a)
运行结果
flag出现