feat: improve flag format
This commit is contained in:
@@ -1,2 +1,2 @@
|
|||||||
FLAG_LEN=32
|
FLAG_LEN=32
|
||||||
FLAG_PREFIX=ctf
|
FLAG_FORMAT=ctf{FLAG_GOES_HERE}
|
||||||
|
|||||||
2
Makefile
2
Makefile
@@ -56,7 +56,7 @@ $(EMU_OBJ): $(EMU_OBJ_FILES) | build
|
|||||||
|
|
||||||
$(GENERATED): .FORCE
|
$(GENERATED): .FORCE
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
python codegen/generate.py $(FLAG_PREFIX) $(FLAG_LEN) > $@
|
python codegen/generate.py $(FLAG_FORMAT) $(FLAG_LEN) > $@
|
||||||
|
|
||||||
|
|
||||||
build:
|
build:
|
||||||
|
|||||||
@@ -47,17 +47,18 @@ def get_check_code(flag_part, user_part, c_mangler):
|
|||||||
|
|
||||||
def main():
|
def main():
|
||||||
if len(sys.argv) != 3:
|
if len(sys.argv) != 3:
|
||||||
eprint(f"Usage: {sys.argv[0]} <flag_prefix> <flag_length>")
|
eprint(f"Usage: {sys.argv[0]} <flag_format> <flag_length>")
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
# Flag prefix is not used, currently the flag is just used as-is
|
# 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])
|
flag_len = int(sys.argv[2])
|
||||||
|
|
||||||
eprint(f"Generating flag with prefix {flag_prefix} and length {flag_len}")
|
|
||||||
|
|
||||||
# Generate a secret
|
# 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
|
# Change the bytes of the secret
|
||||||
mangled_secret, c_manglers = mangle(secret)
|
mangled_secret, c_manglers = mangle(secret)
|
||||||
|
|||||||
Reference in New Issue
Block a user