Exemplo n.º 1
0
def mainLoop(cmdlineArgs):
    featureFile = open(cmdlineArgs.featureFileName, 'w')
    wroteHeader = False
    headerFeatureNames = None

    asmFileNames = sorted(glob.glob(cmdlineArgs.malwareDir + '/*.asm'))
    for n, asmFileName in enumerate(asmFileNames, start=1):

        asmFile = FileReader(asmFileName)
        bytesFile = FileReader(cmdlineArgs.malwareDir + '/' + asmFile.Id() +
                               '.bytes')
        print "Processing Id: {} ({} of {})".format(asmFile.Id(), n,
                                                    len(asmFileNames))
        features = collectFeatures(asmFile, bytesFile, cmdlineArgs)

        if not wroteHeader:
            headerFeatureNames = list(sorted(features))
            header = ','.join(
                str(featureName) for featureName in headerFeatureNames)
            featureFile.write(header + '\n')
            wroteHeader = True

        outstring = ','.join(
            str(features[featureName]) for featureName in headerFeatureNames)
        featureFile.write(outstring + '\n')

    featureFile.close()
    print "\nDone. Wrote features to : ", cmdlineArgs.featureFileName, "\n"