hackedteam/test-av2

View on GitHub
snippet/get_date_of_dir.py

Summary

Maintainability
A
2 hrs
Test Coverage
from stat import S_ISREG, S_ISDIR, ST_CTIME, ST_MODE
from socket import gethostname
import os, sys, time

dir = {}

dir['avast']  = ( "C:\\Program Files\\AVAST Software\\Avast", "defs" ) # OK
dir['comodo'] = ( "C:\\ProgramData\\COMODO\\Cis\\cmc2", "local_trees" ) # OK
dir['kis14']    = ( "C:\\ProgramData\\Kaspersky Lab\\AVP14.0.0\\Data", "updater" ) # IT WORKS
dir['mcafee'] = ( "C:\\ProgramData\McAfee\\MSC\\Updates", "Download" ) # OK
dir['norton'] = ( "C:\\Program Files (x86)\\Norton Internet Security\\NortonData\\21.1.0.18\\Definitions", "VirusDefs" ) #OK
dir['panda']  = ( "C:\\Program Files (x86)\\Panda Security\\Panda Internet Security 2013", "Downloads" ) # OK
dir['avira']  = ( "C:\\Program Files (x86)\\Avira\\AntiVir Desktop", "aevdf.dat" ) #
dir['avg']    = ( "C:\\Program Files (x86)\\AVG\\AVG2013", "sc.dat" )


def get_date_from_dir(dirpath, pname):
    entries = (os.path.join(dirpath, fn) for fn in os.listdir(dirpath))
    entries = ((os.stat(path), path) for path in entries)

    entries = ((stat[ST_CTIME], path) for stat, path in entries if pname in path) #S_ISDIR(stat[ST_MODE]) and pname in path)

    #NOTE: use `ST_MTIME` to sort by a modification date

    for cdate, path in sorted(entries):
        print time.ctime(os.path.getmtime(path)), os.path.basename(path)

if __name__ == "__main__":

    # get your av name
    av = gethostname()

    if "winxp" in av:
        av = av.replace("winxp","")
    elif "win7" in av:
        av = av.replace("win7","")
    else: # "win8" in av:
        av = av.replace("win8","")

    #then check for date on the associated file
    try:
        get_date_from_dir(dir[av][0],dir[av][1])
    except KeyError:
        print "key %s not found" % av