This repository has been archived on 2025-09-28. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
obf/file_obf.py

28 lines
1,003 B
Python
Raw Permalink Normal View History

#!/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