Python 如何获取文件的编译时间,比如 exe 文件 - V2EX
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
sr0miao

Python 如何获取文件的编译时间,比如 exe 文件

  •  
  •   sr0miao Dec 3, 2020 2293 views
    This topic created in 1986 days ago, the information mentioned may be changed or developed.
    就是一个文件是什么时候编译出来的,有人知道么,我暂时没有找到好的方法
    Supplement 1    Dec 3, 2020
    Supplement 2    Dec 3, 2020
    pe 文件可以通过头部信息拿到,elf 、apk 的还未知
    13 replies    2020-12-03 15:24:47 +08:00
    Te11UA
        1
    Te11UA  
       Dec 3, 2020
    编译?脚本里面 echo 一下不行吗?
    crab
        2
    crab  
       Dec 3, 2020
    APi GetFileTime
    CallMeReznov
        3
    CallMeReznov  
       Dec 3, 2020
    # os.getcwd() 方法用于返回当前工作目录
    # os.path.getatime(file) 输出文件访问时间
    # os.path.getctime(file) 输出文件的创建时间
    # os.path.getmtime(file) 输出文件最近修改时间
    sr0miao
        4
    sr0miao  
    OP
       Dec 3, 2020
    @Te11UA
    @crab
    @CallMeReznov
    不是这个意思哦,比如我拿到了一个 exe 文件,我想知道这个文件是什么时候编译出来的。比如我装了 qq5.7 这个版本,我能查到的文件创建时间是它在我电脑上的生成时间,而我想知道它是什么时候编译生成的,即真正的编译生成时间
    misaka19000
        5
    misaka19000  
       Dec 3, 2020
    除非编译的时候显示的在文件里面记录了这个时间,不然应该是查不到的
    coolair
        6
    coolair  
       Dec 3, 2020
    这就是传说中的”考古“吗?
    IsaacYoung
        7
    IsaacYoung  
       Dec 3, 2020
    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 到文件创建时经过的秒数。
    sr0miao
        8
    sr0miao  
    OP
       Dec 3, 2020
    @IsaacYoung 这个我刚看到了,想着怎么得到他,用 pywin32 不知道是否可行
    MicroBotter
        9
    MicroBotter  
       Dec 3, 2020
    @sr0miao 你可以搜一下 exe (windows) elf(linux) mach-o(macOS) 格式的可执行文件的结构,里面是不包含这个信息的。
    sr0miao
        10
    sr0miao  
    OP
       Dec 3, 2020
    @MicroBotter exe 和 apk 一般都会放的吧
    no1xsyzy
        11
    no1xsyzy  
       Dec 3, 2020
    ctime 和 mtime 可以被任意一个人修改,甚至下载的话会以下载时间计
    可能有参考价值的就是数字签名的时间戳。
    sr0miao
        12
    sr0miao  
    OP
       Dec 3, 2020
    @no1xsyzy 这个倒是知道,但有总比没有好
    sr0miao
        13
    sr0miao  
    OP
       Dec 3, 2020
    通过 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
    About     Help     Advertise     Blog     API     FAQ     Solana     2899 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 15:23 PVG 23:23 LAX 08:23 JFK 11:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86