1
Te11UA 2020-12-03 14:26:42 +08:00
编译?脚本里面 echo 一下不行吗?
|
2
crab 2020-12-03 14:28:53 +08:00
APi GetFileTime
|
3
CallMeReznov 2020-12-03 14:29:48 +08:00
# os.getcwd() 方法用于返回当前工作目录
# os.path.getatime(file) 输出文件访问时间 # os.path.getctime(file) 输出文件的创建时间 # os.path.getmtime(file) 输出文件最近修改时间 |
4
sr0miao OP @Te11UA
@crab @CallMeReznov 不是这个意思哦,比如我拿到了一个 exe 文件,我想知道这个文件是什么时候编译出来的。比如我装了 qq5.7 这个版本,我能查到的文件创建时间是它在我电脑上的生成时间,而我想知道它是什么时候编译生成的,即真正的编译生成时间 |
5
misaka19000 2020-12-03 14:39:45 +08:00
除非编译的时候显示的在文件里面记录了这个时间,不然应该是查不到的
|
6
coolair 2020-12-03 14:40:56 +08:00
这就是传说中的”考古“吗?
|
7
IsaacYoung 2020-12-03 14:42:54 +08:00
PE 文件结构 IMAGE_FILE_HEADER
typedef struct _IMAGE_FILE_HEADER { WORD Machine; /* +0004h 目标机器类型 */ WORD NumberOfSections; /* +0006h PE 中节的数量 */ DWORD TimeDateStamp; /* +0008h 时间戳 */ DWORD PointerToSymbolTable; /* +000ch 指向符号表的指针 */ DWORD NumberOfSymbols; /* +0010h 符号表中符号数目 */ WORD SizeOfOptionalHeader; /* +0012h 可选头的大小 */ WORD Characteristics; /* +0014h 文件属性标志 */ } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; TimeDateStamp 双字。低 32 位表示从 1970 年 1 月 1 日 00:00 到文件创建时经过的秒数。 |
8
sr0miao OP @IsaacYoung 这个我刚看到了,想着怎么得到他,用 pywin32 不知道是否可行
|
9
MicroBotter 2020-12-03 14:46:48 +08:00
@sr0miao 你可以搜一下 exe (windows) elf(linux) mach-o(macOS) 格式的可执行文件的结构,里面是不包含这个信息的。
|
10
sr0miao OP @MicroBotter exe 和 apk 一般都会放的吧
|
11
no1xsyzy 2020-12-03 14:51:08 +08:00
ctime 和 mtime 可以被任意一个人修改,甚至下载的话会以下载时间计
可能有参考价值的就是数字签名的时间戳。 |
13
sr0miao OP 通过 PE 头拿到了
E12648E80643542CD36B87A4E15DA015.exe MD5: e12648e80643542cd36b87a4e15da015 SHA-1: 441be3586830dac18e7b8c1d18cba6d969312125 SHA-256: 91cce4c4fe19c9e4b0ffc3fd7397dad4da4c046402069e1885aa9c0501e04146 File Name: E12648E80643542CD36B87A4E15DA015.exe File Size: 753117 byte Optional Header: 0x400000 EntryPoint: 295830 Compile Time: 2010-06-09 18:32:16 Subsystem: IMAGE_SUBSYSTEM_WINDOWS_GUI DLL: False Sections: 4 warning: Byte 0x00 makes up 60.1832% of the file's contents. This may indicate truncation / malformation. KERNEL32.dll USER32.dll MFC42.DLL MSVCRT.dll @IsaacYoung @no1xsyzy |