def main()

in tools/ghostpulse/ghostpulse_payload_extractor.py [0:0]


def main() -> None:
    lief.logging.disable()
    print_banner()
    args = parse_arguments()
    outdir = args.outdir.resolve()

    payloads = dict()

    if args.file:
        payloads[
            args.file.joinpath(outdir, args.file.name + ".bin")
        ] = process_ghostpulse_file(args.file)

    elif args.directory:
        payloads.update(
            {
                filename.joinpath(outdir, filename.name + ".bin"): payload
                for (filename, payload) in utils.map_files_directory(
                    args.directory,
                    functools.partial(process_ghostpulse_file),
                )
                if payload
            }
        )

    outdir.mkdir(parents=True, exist_ok=True)
    utils.write_files(outdir, payloads)
    for x in payloads.keys():
        print("\nPayload written to {}".format(outdir.joinpath(x)))