Exemplo n.º 1
0
    def render(self, renderer):
        headers = [("Address", "address", "[addrpad]"), ("Type", "type", "10"),
                   ("Length", "length", "10")]

        if self.dump_dir:
            headers.append(("Filename", "filename", "20"))

        headers.append(("Description", "description", ""))

        renderer.table_header(headers)

        scanner = CertScanner(
            address_space=self.physical_address_space,
            session=self.session,
            profile=basic.Profile32Bits(session=self.session))

        for hit, type, data, description in scanner.scan():
            args = [hit, type, len(data)]

            if self.dump_dir:
                filename = os.path.join(self.dump_dir,
                                        "%s.%08X.der" % (type, hit))

                with open(filename, "wb") as fd:
                    fd.write(data)

                    args.append(filename)

            args.append(description)
            renderer.table_row(*args)
Exemplo n.º 2
0
    def collect(self):
        scanner = CertScanner(
            address_space=self.physical_address_space,
            session=self.session,
            profile=basic.Profile32Bits(session=self.session))

        for hit, type, data, description in scanner.scan():
            yield dict(address=hit,
                       type=type,
                       length=len(data),
                       data=data,
                       description=description)