示例#1
0
    def execute(self):
        if len(self.args)<2:
            yield self.help()
            return

        case = self.environment._CASE
        scanners = []
        for i in range(1,len(self.args)):
            scanners.extend(fnmatch.filter(Registry.SCANNERS.scanners, self.args[i]))
            
        scanners = ScannerUtils.fill_in_dependancies(scanners)
        Scanner.scan_inode(case, self.args[0], scanners, force = True, cookie=time.time())
示例#2
0
    def scan(self, fd, scanners, type, mime, cookie, **args):
        if "gzip" in type:
            new_path = "%s/%s" % (fd.urn, self.find_gzipped_filename(fd, type))
            new_fd = CacheManager.AFF4_MANAGER.create_cache_fd(self.case, new_path)
            gz = gzip.GzipFile(fileobj=fd, mode='r')
            while 1:
                data = gz.read(1024*1024)
                if not data:  break
                new_fd.write(data)

            new_fd.close()
            ## Now scan the new fd
            Scanner.scan_inode(self.case, new_fd.inode_id,
                               scanners)
示例#3
0
 def run(self,case=None, inode_id=0, scanners=None, cookie=1, *args, **kwargs):
     if scanners:
         Scanner.scan_inode(case, inode_id, scanners, cookie)