diff --git a/.env.example b/.env.example index cdde6a6..3f5fbbe 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1,2 @@ FLAG_LEN=32 -FLAG_PREFIX=ctf +FLAG_FORMAT=ctf{FLAG_GOES_HERE} diff --git a/Makefile b/Makefile index 510bba1..497159b 100644 --- a/Makefile +++ b/Makefile @@ -56,7 +56,7 @@ $(EMU_OBJ): $(EMU_OBJ_FILES) | build $(GENERATED): .FORCE mkdir -p $(dir $@) - python codegen/generate.py $(FLAG_PREFIX) $(FLAG_LEN) > $@ + python codegen/generate.py $(FLAG_FORMAT) $(FLAG_LEN) > $@ build: diff --git a/codegen/generate.py b/codegen/generate.py index 1ae2840..61975eb 100644 --- a/codegen/generate.py +++ b/codegen/generate.py @@ -47,17 +47,18 @@ def get_check_code(flag_part, user_part, c_mangler): def main(): if len(sys.argv) != 3: - eprint(f"Usage: {sys.argv[0]} ") + eprint(f"Usage: {sys.argv[0]} ") exit(1) # Flag prefix is not used, currently the flag is just used as-is - flag_prefix = sys.argv[1] + flag_format = sys.argv[1] flag_len = int(sys.argv[2]) - eprint(f"Generating flag with prefix {flag_prefix} and length {flag_len}") - # Generate a secret - secret = secrets.token_hex(flag_len) + secret = secrets.token_urlsafe(flag_len) + secret = flag_format.replace("FLAG_GOES_HERE", secret) + + eprint(f"Generated Flag: {secret}") # Change the bytes of the secret mangled_secret, c_manglers = mangle(secret)