async def get_lsa_bruteforce(self): #good luck! logger.debug('Testing all available templates! Expect warnings!') for lsa_dec_template in LsaTemplate.get_template_brute(self.sysinfo): try: lsa_dec = LsaDecryptor.choose(self.reader, lsa_dec_template, self.sysinfo) await lsa_dec.acquire_crypto_material() lsa_dec.dump() except: pass else: logger.debug('Lucky you! Brutefoce method found a -probably- working template!') return lsa_dec
async def get_lsa(self): #trying with automatic template detection try: lsa_dec_template = LsaTemplate.get_template(self.sysinfo) lsa_dec = LsaDecryptor.choose(self.reader, lsa_dec_template, self.sysinfo) await lsa_dec.acquire_crypto_material() lsa_dec.dump() except Exception as e: logger.debug('Failed to automatically detect correct LSA template! Reason: %s' % str(e)) lsa_dec = await self.get_lsa_bruteforce() if lsa_dec is None: raise Exception('All detection methods failed.') return lsa_dec else: return lsa_dec