From c5ff147215a96ffc55691afa3d9e178cfa6e0587 Mon Sep 17 00:00:00 2001 From: ChaoticByte Date: Mon, 24 Jun 2024 19:10:21 +0200 Subject: [PATCH] Added example cli script for file obfuscation --- file_obf.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100755 file_obf.py diff --git a/file_obf.py b/file_obf.py new file mode 100755 index 0000000..f5de6e4 --- /dev/null +++ b/file_obf.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 + +from argparse import ArgumentParser +from getpass import getpass +from pathlib import Path + +from obf import obf + + +if __name__ == "__main__": + argp = ArgumentParser() + argp.add_argument("input", help="Input file", type=Path) + argp.add_argument("output", help="Output file", type=Path) + argp.add_argument("-d", "--decrypt", help="Decrypt", action="store_true") + argp.add_argument("-i", "--iterations", help="Iterations (default: 4)", type=int, default=4) + argp.add_argument("-p", "--processes", help="Parallel processes (default: 4)", type=int, default=4) + args = argp.parse_args() + assert args.processes > 0 + key = getpass("Key: ").encode() + with args.input.open("rb") as i: + with args.output.open("wb") as o: + o.truncate(0) + o.seek(0) + o.write( + obf(i.read(), key, decrypt=args.decrypt, iterations=args.iterations, processes=args.processes) + ) + o.flush() # for good measure