def rar_do_rar(arar, afile): """ arar:RarFile, afile:source archive(s) name """ # test if encrypted if arar.needs_password(): log_encrypted(BF_RAR, afile) return infilename = re.compile('|'.join(INFILENAME)) # iterate over infolist to detect directories # (unlike zipfile, doesnt append '/' to dir names for member in arar.infolist(): # sort directories out if member.isdir(): continue # check file name filename = os.path.basename(member.filename).lower() res = infilename.search(filename) if res: log_secret(res.group(), afile+':'+member.filename) # check file content, calling other modules data = arar.read(member) (ftype, keep) = types_data(data, member) if keep: if ftype in ENCRYPTED: log_encrypted(ftype, member) else: do_data(ftype, data, afile+':'+member.filename)
def select(directory): selected = [] infilename = re.compile('|'.join(INFILENAME)) for root, dirs, files in os.walk(directory): for skip in SKIP: if skip in dirs: dirs.remove(skip) for afile in files: fabs = os.path.abspath(os.path.join(root, afile)) res = infilename.search(afile.lower()) if res: log_secret(res.group(), fabs) (ftype, keep) = types_file(fabs) if keep: # if encrypted, log and do not process if ftype in ENCRYPTED: log_encrypted(ftype, afile) # otherwise, select file for processing else: selected.append((fabs, ftype)) log_selected(ftype, fabs) return selected
def select(directory): selected = [] infilename = re.compile('|'.join(INFILENAME)) for root, dirs, files in os.walk(directory): for skip in SKIP: if skip in dirs: dirs.remove(skip) for afile in files: fabs = os.path.abspath(os.path.join(root, afile)) res = infilename.search(afile.lower()) if res: log_secret(res.group(), fabs) (ftype, keep) = types_file(fabs) if keep: selected.append((fabs, ftype)) log_selected(ftype, fabs) # TODO: encrypted (add third return to types_file return selected
def zip_do_zip(azip, afile): """ azip:ZipFile, afile:source archive(s) name """ # test if encrypted try: azip.testzip() except RuntimeError as exception: if 'encrypted' in str(exception): log_encrypted(BF_ZIP, afile) return infilename = re.compile('|'.join(INFILENAME)) # iterate directly over file names for member in azip.namelist(): # sort directories out if member.endswith('/'): continue # check file name filename = os.path.basename(member).lower() res = infilename.search(filename) if res: log_secret(res.group(), afile+':'+member) # check file content, calling other modules data = azip.read(member) (ftype, keep) = types_data(data, member) if keep: if ftype in ENCRYPTED: log_encrypted(ftype, member) else: do_data(ftype, data, afile+':'+member)
def zip_do_zip(azip, afile): """ azip:ZipFile, afile:source archive(s) name """ infilename = re.compile('|'.join(INFILENAME)) # iterate directly over file names for member in azip.namelist(): # sort directories out if member.endswith('/'): continue # check file name filename = os.path.basename(member).lower() res = infilename.search(filename) if res: log_secret(res.group(), afile+':'+member) # check file content, calling other modules data = azip.read(member) (ftype, keep) = types_data(data) if keep: do_data(ftype, data, afile+':'+member)
def tar_do_tar(atar, afile): """ atar:TarFile, afile:source archive(s) name """ infilename = re.compile('|'.join(INFILENAME)) # iterate over TarInfo's for member in atar.getmembers(): # only process files if not member.isfile(): continue # check file name filename = os.path.basename(member.name).lower() res = infilename.search(filename) if res: log_secret(res.group(), afile+':'+member.name) # check file content, calling other modules data = atar.extractfile(member).read() (ftype, keep) = types_data(data) if keep: do_data(ftype, data, afile+':'+member.name)
def zip_do_zip(azip, afile): """ azip:ZipFile, afile:source archive(s) name """ infilename = re.compile('|'.join(INFILENAME)) # iterate directly over file names for member in azip.namelist(): # sort directories out if member.endswith('/'): continue # check file name filename = os.path.basename(member).lower() res = infilename.search(filename) if res: log_secret(res.group(), afile + ':' + member) # check file content, calling other modules data = azip.read(member) (ftype, keep) = types_data(data) if keep: do_data(ftype, data, afile + ':' + member)
def rar_do_rar(arar, afile): """ arar:RarFile, afile:source archive(s) name """ infilename = re.compile('|'.join(INFILENAME)) # iterate over infolist to detect directories # (unlike zipfile, doesnt append '/' to dir names for member in arar.infolist(): # sort directories out if member.isdir(): continue # check file name filename = os.path.basename(member.filename).lower() res = infilename.search(filename) if res: log_secret(res.group(), afile + ':' + member.filename) # check file content, calling other modules data = arar.read(member) (ftype, keep) = types_data(data) if keep: do_data(ftype, data, afile + ':' + member.filename)
def text_do_data(data, afile): text = data.lower() regex = '|'.join(INFILE) #infile = re.compile('|'.join(INFILE)) for match in re.finditer(regex, text): log_secret(match.group(), afile)