def GetProfileByName( self, profile_name, version=server_stubs.REKALL_PROFILE_REPOSITORY_VERSION): try: url = "%s/%s/%s.gz" % (config.CONFIG["Rekall.profile_repository"], version, profile_name) handle = urlrequest.urlopen(url, timeout=10) profile_data = handle.read() if profile_data[:3] != b"\x1F\x8B\x08": raise ValueError( "Downloaded file does not look like gzipped data: %s" % profile_data[:100]) compression = "GZIP" except urlerror.HTTPError as e: if e.code == 404: # Try to download without the .gz handle = urlrequest.urlopen(url[:-3], timeout=10) profile_data = handle.read() compression = "NONE" else: raise except urlerror.URLError as e: logging.info( "Got an URLError while downloading Rekall profile %s: %s", url, e.reason) raise return rdf_rekall_types.RekallProfile(name=profile_name, version=version, compression=compression, data=profile_data)
def GetRekallProfile(self, name, version=None): profile_path = os.path.join(config.CONFIG["Test.data_dir"], "profiles", version, "%s.gz" % name) try: fd = open(profile_path, "r") except IOError: return return rdf_rekall_types.RekallProfile( name=name, version=version, data=fd.read(), compression="GZIP")
def GetProfileByName(self, profile_name, version="v1.0"): try: profile_data = open( os.path.join(config.CONFIG["Test.data_dir"], "profiles", version, profile_name + ".gz"), "rb").read() self.profiles_served += 1 return rdf_rekall_types.RekallProfile( name=profile_name, version=version, data=profile_data) except IOError: return None