Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import argparse
- def parse_arguments():
- parser = argparse.ArgumentParser(description="De-strip drive images")
- parser.add_argument("-b", "--block-size", choices=["16K", "32K", "64K", "128K", "256K", "512K"], help="Block size of the array", required=True)
- parser.add_argument("-o", "--output-image", help="Path to the output image", required=True)
- parser.add_argument("-d", "--disk", help="Path to the disk image", action='append', required=True)
- parser.add_argument("-v", "--verbose", help="Verbose output", action='store_true')
- return parser.parse_args()
- def main():
- args = parse_arguments()
- file_handlers = []
- done_files = 0
- block_offset = int(args.block_size.replace("K", "")) * 1024
- output_file = open(args.output_image, "wb")
- if args.verbose:
- print(f"Reading the {args.block_size} blocks from the following disks/disk-images in order:\n\t", "\n\t".join(args.disk))
- for i in args.disk:
- file_handlers.append(open(i, "rb"))
- while done_files != len(file_handlers):
- for fp in file_handlers:
- data_block = fp.read(block_offset)
- if len(data_block) == 0:
- done_files += 1
- output_file.write(data_block)
- output_file.flush()
- del data_block
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement