From 7edc5d5fa41347458031fe9fd5c6428515a961f1 Mon Sep 17 00:00:00 2001 From: Kaushik Narayan R Date: Tue, 3 Sep 2024 17:53:16 -0700 Subject: [PATCH] initial commit --- .gitignore | 1 + 1.12/sha256_crack.py | 80 +++++++ 1.12/sha256_gen.py | 28 +++ 2.04/crack.c | 34 +++ 2.06/soln.py | 551 +++++++++++++++++++++++++++++++++++++++++++ Dojo Notes.md | 115 +++++++++ README.md | 1 + ss1.png | Bin 0 -> 29044 bytes ss2.png | Bin 0 -> 20345 bytes 9 files changed, 810 insertions(+) create mode 100644 .gitignore create mode 100644 1.12/sha256_crack.py create mode 100644 1.12/sha256_gen.py create mode 100644 2.04/crack.c create mode 100644 2.06/soln.py create mode 100644 Dojo Notes.md create mode 100644 README.md create mode 100644 ss1.png create mode 100644 ss2.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ed7735f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*/result diff --git a/1.12/sha256_crack.py b/1.12/sha256_crack.py new file mode 100644 index 0000000..b1c9fe5 --- /dev/null +++ b/1.12/sha256_crack.py @@ -0,0 +1,80 @@ +import hashlib +import string +import itertools +import argparse +import time +import json +import re + + +def gen_perm_cipher(plain_text): + cipher_text = hashlib.sha256(plain_text.encode("ascii")).hexdigest() + return cipher_text + + +def gen_all_perms( + perm_len=6, + char_set=string.ascii_lowercase, + prefix_len=0, + resuming=False, + resume_pos=0, +): + """ + Permutation generator. Can specify length, character set and prefix length to rotate result files. + + Can resume from a specified position as well. + + If resuming, please ensure the other parameters are identical to the previous run. resume_pos is included + """ + + if prefix_len == 0: + prefix_len = perm_len // 2 + split_len = len(char_set) ** (perm_len - prefix_len) + + print( + f"Permuting {perm_len}-character strings from {char_set}. Splitting on a {prefix_len}-character prefix." + ) + if resuming: + print(f"Resuming from permutation {resume_pos}") + + perms = {} + for i, item in enumerate(itertools.product(char_set, repeat=perm_len)): + if resuming and i < resume_pos: + pass + perm_plain = "".join(item) + perm_cipher = gen_perm_cipher(perm_plain) + perms[perm_plain] = perm_cipher + + if (i + 1) % split_len == 0: + perms_str = json.dumps(perms, indent=0)[2:-2] + perms_str = re.sub(r'[":,]', "", perms_str) + print(f"saving {split_len} permutations...") + with open( + f"result/{next(iter(perms.keys()))[:prefix_len]}.perms", "w" + ) as out_f: + print(perms_str, file=out_f) + perms = {} + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + "-p", "--perm_len", required=False, default=6, dest="p", type=int + ) + parser.add_argument( + "-f", "--prefix_len", required=False, default=0, dest="f", type=int + ) + parser.add_argument( + "-c", + "--char_set", + required=False, + default=string.ascii_lowercase, + dest="chars", + type=str, + ) + args = parser.parse_args() + + start_t = time.time() + gen_all_perms(args.p, args.chars, args.f) + end_t = time.time() + print(f"generated all pairs in {end_t-start_t} seconds") diff --git a/1.12/sha256_gen.py b/1.12/sha256_gen.py new file mode 100644 index 0000000..1aadf99 --- /dev/null +++ b/1.12/sha256_gen.py @@ -0,0 +1,28 @@ +from typing import Tuple +import hashlib +import random +import string + + +def gen_plain_cipher() -> Tuple[str, str]: + plain_text = "".join([random.choice(string.ascii_lowercase) for _ in range(6)]) + cipher_text = hashlib.sha256(plain_text.encode("ascii")).hexdigest() + return plain_text, cipher_text + + +def main(): + plain_text, cipher_text = gen_plain_cipher() + print(f"Please submit the *plain-text string* for the SHA256 hash of \"{cipher_text}\".") + print("") + + input_str = input("Your answer: ") + if input_str.strip(" \n\r") == plain_text: + with open("/flag", "r") as f: + print("Congrats! Your flag:", f.read()) + else: + print("Incorrect input. Try again!") + + +if __name__ == "__main__": + main() + diff --git a/2.04/crack.c b/2.04/crack.c new file mode 100644 index 0000000..041e2a1 --- /dev/null +++ b/2.04/crack.c @@ -0,0 +1,34 @@ +#include +#include +#include + +int verify(unsigned int v0, unsigned int v1, unsigned int v2, unsigned int v3) +{ + if (!v0 || !v1 || !v2 || !v3) + return 0; + if (v1 * v0 + v2 - v3 != 1208779703) + return 0; + if (v1 - v0 != -24223) + return 0; + if (v3 - 5 * v2 == -129519) + return (v3 + v1) % 100000 == 40256; + return 0; +} + +int main() +{ + for (unsigned int v1 = 1; v1 < 75777; v1++) + { + unsigned int v0 = v1 + 24223; + for (unsigned int v2 = 25904; v2 < 45904; v2++) + { + unsigned int v3 = (5 * v2) - 129519; + if (verify(v0, v1, v2, v3)) + { + printf("%u-%u-%u-%u\n", v0, v1, v2, v3); + return 0; + } + } + } + return 0; +} \ No newline at end of file diff --git a/2.06/soln.py b/2.06/soln.py new file mode 100644 index 0000000..89c0e31 --- /dev/null +++ b/2.06/soln.py @@ -0,0 +1,551 @@ +import argparse +import time + + +def verify(ctx: str) -> bool: + result = 0 + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[0]) > 127: # 0 + result = result | 0x26 + + if ord(ctx[0]) & 0x40 != 0: # 0 + result = result | 0x26 + + if ord(ctx[0]) & 0x20 == 0: # 1 + result = result | 0x27 + + if ord(ctx[0]) & 0x10 == 0: # 1 + result = result | 0x26 + + if ord(ctx[0]) & 8 != 0: # 0 + result = result | 4 + + if ord(ctx[0]) & 4 == 0: # 1 + result = result | 0x11 + + if ord(ctx[0]) & 2 == 0: # 1 + result = result | 5 + + if ord(ctx[0]) & 1 != 0: # 0 + result = result | 0x22 + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[1]) > 127: # 0 + result = result | 2 + + if ord(ctx[1]) & 0x40 != 0: # 0 + result = result | 2 + + if ord(ctx[1]) & 0x20 == 0: # 1 + result = result | 0x25 + + if ord(ctx[1]) & 0x10 == 0: # 1 + result = result | 0x12 + + if ord(ctx[1]) & 8 != 0: # 0 + result = result | 0x27 + + if ord(ctx[1]) & 4 == 0: # 1 + result = result | 0x1C + + if ord(ctx[1]) & 2 == 0: # 1 + result = result | 9 + + if ord(ctx[1]) & 1 == 0: # 1 + result = result | 0x11 + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[2]) > 127: # 0 + result = result | 0x11 + + if ord(ctx[2]) & 0x40 == 0: # 1 + result = result | 0x15 + + if ord(ctx[2]) & 0x20 == 0: # 1 + result = result | 0x11 + + if ord(ctx[2]) & 0x10 != 0: # 0 + result = result | 0xD + + if ord(ctx[2]) & 8 == 0: # 1 + result = result | 0x29 + + if ord(ctx[2]) & 4 != 0: # 0 + result = result | 0x23 + + if ord(ctx[2]) & 2 == 0: # 1 + result = result | 0xD + + if ord(ctx[2]) & 1 == 0: # 1 + result = result | 0x1C + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[3]) > 127: # 0 + result = result | 0x1E + + if ord(ctx[3]) & 0x40 == 0: # 1 + result = result | 0x28 + + if ord(ctx[3]) & 0x20 != 0: # 0 + result = result | 0x28 + + if ord(ctx[3]) & 0x10 == 0: # 1 + result = result | 0x14 + + if ord(ctx[3]) & 8 != 0: # 0 + result = result | 0x1F + + if ord(ctx[3]) & 4 == 0: # 1 + result = result | 0x28 + + if ord(ctx[3]) & 2 == 0: # 1 + result = result | 0x13 + + if ord(ctx[3]) & 1 == 0: # 1 + result = result | 0x2C + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[4]) > 127: # 0 + result = result | 0x19 + + if ord(ctx[4]) & 0x40 != 0: # 0 + result = result | 0x11 + + if ord(ctx[4]) & 0x20 == 0: # 1 + result = result | 0x1F + + if ord(ctx[4]) & 0x10 == 0: # 1 + result = result | 8 + + if ord(ctx[4]) & 8 != 0: # 0 + result = result | 0x2D + + if ord(ctx[4]) & 4 == 0: # 1 + result = result | 0x1C + + if ord(ctx[4]) & 2 == 0: # 1 + result = result | 8 + + if ord(ctx[4]) & 1 != 0: # 0 + result = result | 0x10 + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[5]) > 127: # 0 + result = result | 9 + + if ord(ctx[5]) & 0x40 == 0: # 1 + result = result | 0x19 + + if ord(ctx[5]) & 0x20 != 0: # 0 + result = result | 0x1C + + if ord(ctx[5]) & 0x10 == 0: # 1 + result = result | 0x17 + + if ord(ctx[5]) & 8 == 0: # 1 + result = result | 0x27 + + if ord(ctx[5]) & 4 != 0: # 0 + result = result | 0x18 + + if ord(ctx[5]) & 2 != 0: # 0 + result = result | 0x2D + + if ord(ctx[5]) & 1 == 0: # 1 + result = result | 0x1A + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[6]) > 127: # 0 + result = result | 0x10 + + if ord(ctx[6]) & 0x40 == 0: # 1 + result = result | 7 + + if ord(ctx[6]) & 0x20 == 0: # 1 + result = result | 0x2B + + if ord(ctx[6]) & 0x10 != 0: # 0 + result = result | 0x24 + + if ord(ctx[6]) & 8 == 0: # 1 + result = result | 0x15 + + if ord(ctx[6]) & 4 == 0: # 1 + result = result | 0xF + + if ord(ctx[6]) & 2 == 0: # 1 + result = result | 9 + + if ord(ctx[6]) & 1 != 0: # 0 + result = result | 1 + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[7]) > 127: # 0 + result = result | 0x27 + + if ord(ctx[7]) & 0x40 == 0: # 1 + result = result | 0xC + + if ord(ctx[7]) & 0x20 != 0: # 0 + result = result | 4 + + if ord(ctx[7]) & 0x10 != 0: # 0 + result = result | 0x1A + + if ord(ctx[7]) & 8 == 0: # 1 + result = result | 0x14 + + if ord(ctx[7]) & 4 != 0: # 0 + result = result | 0x1A + + if ord(ctx[7]) & 2 == 0: # 1 + result = result | 8 + + if ord(ctx[7]) & 1 == 0: # 1 + result = result | 9 + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[8]) > 127: # 0 + result = result | 0x2C + + if ord(ctx[8]) & 0x40 == 0: # 1 + result = result | 0x16 + + if ord(ctx[8]) & 0x20 == 0: # 1 + result = result | 0x22 + + if ord(ctx[8]) & 0x10 == 0: # 1 + result = result | 0x28 + + if ord(ctx[8]) & 8 != 0: # 0 + result = result | 0x22 + + if ord(ctx[8]) & 4 == 0: # 1 + result = result | 9 + + if ord(ctx[8]) & 2 == 0: # 1 + result = result | 0x17 + + if ord(ctx[8]) & 1 != 0: # 0 + result = result | 0x22 + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[9]) > 127: # 0 + result = result | 0x19 + + if ord(ctx[9]) & 0x40 == 0: # 1 + result = result | 0x29 + + if ord(ctx[9]) & 0x20 != 0: # 0 + result = result | 0x2D + + if ord(ctx[9]) & 0x10 == 0: # 1 + result = result | 0x23 + + if ord(ctx[9]) & 8 != 0: # 0 + result = result | 0x12 + + if ord(ctx[9]) & 4 == 0: # 1 + result = result | 2 + + if ord(ctx[9]) & 2 != 0: # 0 + result = result | 0x11 + + if ord(ctx[9]) & 1 != 0: # 0 + result = result | 4 + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[10]) > 127: # 0 + result = result | 0x26 + + if ord(ctx[10]) & 0x40 == 0: # 1 + result = result | 0x15 + + if ord(ctx[10]) & 0x20 == 0: # 1 + result = result | 0xC + + if ord(ctx[10]) & 0x10 == 0: # 1 + result = 0x1B + + if ord(ctx[10]) & 8 != 0: # 0 + result = result | 0xD + + if ord(ctx[10]) & 4 != 0: # 0 + result = result | 0x24 + + if ord(ctx[10]) & 2 != 0: # 0 + result = result | 0x21 + + if ord(ctx[10]) & 1 != 0: # 0 + result = result | 0x23 + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[0xB]) > 127: # 0 + result = result | 0x16 + + if ord(ctx[0xB]) & 0x40 == 0: # 1 + result = result | 0x11 + + if ord(ctx[0xB]) & 0x20 == 0: # 1 + result = result | 7 + + if ord(ctx[0xB]) & 0x10 != 0: # 0 + result = result | 0x19 + + if ord(ctx[0xB]) & 8 != 0: # 0 + result = result | 0x1A + + if ord(ctx[0xB]) & 4 != 0: # 0 + result = result | 0x29 + + if ord(ctx[0xB]) & 2 != 0: # 0 + result = result | 0x23 + + if ord(ctx[0xB]) & 1 == 0: # 1 + result = result | 0x2A + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[0xC]) > 127: # 0 + result = result | 0x2B + + if ord(ctx[0xC]) & 0x40 == 0: # 1 + result = result | 0x10 + + if ord(ctx[0xC]) & 0x20 == 0: # 1 + result = result | 0x12 + + if ord(ctx[0xC]) & 0x10 == 0: # 1 + result = result | 0x29 + + if ord(ctx[0xC]) & 8 != 0: # 0 + result = result | 3 + + if ord(ctx[0xC]) & 4 != 0: # 0 + result = result | 0x1C + + if ord(ctx[0xC]) & 2 != 0: # 0 + result = result | 0x11 + + if ord(ctx[0xC]) & 1 == 0: # 1 + result = result | 4 + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[0xD]) > 127: # 0 + result = result | 0x16 + + if ord(ctx[0xD]) & 0x40 == 0: # 1 + result = result | 0x21 + + if ord(ctx[0xD]) & 0x20 == 0: # 1 + result = result | 2 + + if ord(ctx[0xD]) & 0x10 != 0: # 0 + result = result | 0x2D + + if ord(ctx[0xD]) & 8 == 0: # 1 + result = result | 0x1D + + if ord(ctx[0xD]) & 4 == 0: # 1 + result = result | 0xB + + if ord(ctx[0xD]) & 2 == 0: # 1 + result = result | 9 + + if ord(ctx[0xD]) & 1 == 0: # 1 + result = result | 0xC + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[0xE]) > 127: # 0 + result = result | 0x24 + + if ord(ctx[0xE]) & 0x40 == 0: # 1 + result = result | 0x12 + + if ord(ctx[0xE]) & 0x20 != 0: # 0 + result = result | 0x22 + + if ord(ctx[0xE]) & 0x10 != 0: # 0 + result = result | 0xE + + if ord(ctx[0xE]) & 8 != 0: # 0 + result = result | 9 + + if ord(ctx[0xE]) & 4 != 0: # 0 + result = result | 2 + + if ord(ctx[0xE]) & 2 == 0: # 1 + result = result | 0x28 + + if ord(ctx[0xE]) & 1 != 0: # 0 + result = result | 0x2C + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[0xF]) > 127: # 0 + result = result | 0x2B + + if ord(ctx[0xF]) & 0x40 == 0: # 1 + result = result | 0x27 + + if ord(ctx[0xF]) & 0x20 != 0: # 0 + result = result | 0x21 + + if ord(ctx[0xF]) & 0x10 == 0: # 1 + result = result | 0x1F + + if ord(ctx[0xF]) & 8 == 0: # 1 + result = result | 9 + + if ord(ctx[0xF]) & 4 != 0: # 0 + result = result | 10 + + if ord(ctx[0xF]) & 2 != 0: # 0 + result = result | 0xC + + if ord(ctx[0xF]) & 1 != 0: # 0 + result = result | 0x23 + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[0x10]) > 127: # 0 + result = result | 7 + + if ord(ctx[0x10]) & 0x40 != 0: # 0 + result = result | 0x2B + + if ord(ctx[0x10]) & 0x20 == 0: # 1 + result = result | 0x21 + + if ord(ctx[0x10]) & 0x10 == 0: # 1 + result = result | 0x28 + + if ord(ctx[0x10]) & 8 != 0: # 0 + result = result | 0x2B + + if ord(ctx[0x10]) & 4 != 0: # 0 + result = result | 4 + + if ord(ctx[0x10]) & 2 != 0: # 0 + result = result | 8 + + if ord(ctx[0x10]) & 1 == 0: # 1 + result = result | 0x26 + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[0x11]) > 127: # 0 + result = result | 0x1E + + if ord(ctx[0x11]) & 0x40 == 0: # 1 + result = result | 0x11 + + if ord(ctx[0x11]) & 0x20 != 0: # 0 + result = result | 2 + + if ord(ctx[0x11]) & 0x10 != 0: # 0 + result = result | 0x19 + + if ord(ctx[0x11]) & 8 != 0: # 0 + result = result | 0x29 + + if ord(ctx[0x11]) & 4 == 0: # 1 + result = result | 0x18 + + if ord(ctx[0x11]) & 2 == 0: # 1 + result = result | 3 + + if ord(ctx[0x11]) & 1 != 0: # 0 + result = result | 0x1D + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[0x12]) > 127: # 0 + result = result | 0x1A + + if ord(ctx[0x12]) & 0x40 != 0: # 0 + result = result | 0x25 + + if ord(ctx[0x12]) & 0x20 == 0: # 1 + result = result | 0x26 + + if ord(ctx[0x12]) & 0x10 == 0: # 1 + result = result | 0x11 + + if ord(ctx[0x12]) & 8 == 0: # 1 + result = result | 0x1A + + if ord(ctx[0x12]) & 4 != 0: # 0 + result = result | 0x28 + + if ord(ctx[0x12]) & 2 != 0: # 0 + result = result | 0x15 + + if ord(ctx[0x12]) & 1 != 0: # 0 + result = result | 0x10 + + """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" + + if ord(ctx[0x13]) > 127: # 0 + result = result | 0x27 + + if ord(ctx[0x13]) & 0x40 == 0: # 1 + result = result | 0xB + + if ord(ctx[0x13]) & 0x20 == 0: # 1 + result = result | 0x21 + + if ord(ctx[0x13]) & 0x10 != 0: # 0 + result = result | 0x2C + + if ord(ctx[0x13]) & 8 == 0: # 1 + result = result | 0x1C + + if ord(ctx[0x13]) & 4 == 0: # 1 + result = result | 0xD + + if ord(ctx[0x13]) & 2 != 0: # 0 + result = result | 0x14 + + if ord(ctx[0x13]) & 1 != 0: # 0 + result = result | 0x14 + + # 00110110 00110111 01101011 01010111 00110110 01011001 01101110 01001011 01110110 01010100 01110000 01100001 01110001 01101111 01000010 01011000 00110001 01000110 00111000 01101100 + + return result == 0 + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("-s", "--binary_str", required=True, dest="in_str", type=str) + args = parser.parse_args() + + target_str = "".join([chr(int(x, base=2)) for x in args.in_str.split()]) + print(target_str) + + start_t = time.time() + if verify(target_str): + print("OMG") + print(args.in_str) + print(target_str) + end_t = time.time() + print(f"checked string in {end_t-start_t} seconds") + + +if __name__ == "__main__": + main() diff --git a/Dojo Notes.md b/Dojo Notes.md new file mode 100644 index 0000000..c0fae86 --- /dev/null +++ b/Dojo Notes.md @@ -0,0 +1,115 @@ +# CSE 545 pwn.college Dojo + +## Project 01 Linux Lifter + +### .05 - find + +- `find / randomly_placed_file` - way too many files +- read the man page. `find -name randomly_placed_file` found it +- didn't specify a folder to search in tho, ig it's cuz cwd is / + +### .06 - find and exec + +- "Optional Exercise: Why do they think it worked with `-exec` parameter of the `find` command, but we get permission denied using standalone `cat` command? Hint: SUID bit was set for the `find` command." +- indeed, we see that `/usr/bin/find` has its *setuid* bit set: +![-rwsr-xr-x 1 root root 320160 Feb 18 2020 /usr/bin/find*](ss1.png) +- [see here](https://unix.stackexchange.com/a/389706/595039) for find stuff +- `find / -name random_cant_flag -exec cat {} ';'` worked + +### .07 - return code + +- `$?` is the return code of the last executed command +- range 0 to 255 + +### .08 - python + +- SUID on python this time + +### .11 - search me + +- `/challenge/tester.sh` is printing `/flag` but the file is missing +- `/challenge/cp` has SUID bit set +- preliminary find revealed a possible file deep in `/tmp` +- `find /tmp/that/full/path -name flag -exec /challenge/cp {} /flag ';'` + +### .12 - hash it out + +- used online tool to generate SHA256 + +### .13 - hash full + +- here we go +- a-z, 6 spaces, so 26^6 possibilities +- plaintext is 6 letters, so 48 bits. hash is SHA256 so 256 bits. +- storage per line:`` that's 304 bits, 312 if including newline character +- total storage exceeds 11GB!! +- refinement 1: 256-bit hash is pretty unique. if we cut down on the portion of the hash stored, we should be able to save a ton of space while only slightly increasing the margin of error. let's assume plaintext has to be stored entirely for now, so total per line is 184 bits. +- eh fk it, just generated all permutations. 22GB storage, 20 min to generate, search using VSCode search took a few more minutes + +## Project 02 Unwinding Binaries (Reversing) + +### .01 - looking inside + +- not sure how to use ghidra, didn't seem to work either +- `angr decompile /challenge/run` revealed a `strcmp` with the key, ez + +### .02 - the mangler + +- 'mangling' is just subtracting 3 from the char's ascii value. so just add 3 to the key + +### .03 - xor plus + +- mangling is adding 3 then xor with 2. so just xor with 2, then subtract 3 + +#### lab 2a.02 + +![lab code snippet](ss2.png) + +- ascii values + +### .04 - solve for x + +- NOTE: angr screwed up, and gave an incorrect result (== instead of !=) +- use ghidra (GUI) or [dogbolt](https://dogbolt.org) for binaries under 2MB +- anyway, math solving: + - we get a few eqns: + - v1 = v0 - 24223 + - v3 = 5v2 - 129519 + - use these eqns to reduce from brute-force 4 nested loops to 2 nested loops + - then verifying the rest gets us one soln +- runtime < 3 seconds + +### .05 - extra verification + +- angr just straight up hangs lol +- holy sh*t so many if statements +- boils down to byte by byte, check 1 or 0, check +ve or -ve (MSB) + - 00 - 00110111 + - 01 - 01000111 + - 02 - 01000011 + - 03 - 01010110 + - 04 - 00110100 + - 05 - 01010010 + - 06 - 01011010 + - 07 - 01001001 + - 08 - 01000001 + - 09 - 00110100 + - 10 - 01011001 + - 11 - 00111000 + - 12 - 01111001 + - 13 - 00110011 + - 14 - 01110011 + - 15 - 01001000 + - 16 - 00110101 + - 17 - 00111000 + - 18 - 01101010 + - 19 - 01010111 (binary ninja and hex-rays disagreed on this, binary ninja was right) +- could have automated this smh + +### .06 - extra verification II + +- first ordered all if statements to get bitwise order of the string (hell.) +- for result to be 0 at the end, just don't modify it at all +- so for each if statement, check which of 0/1 makes it false (find and replace ftw) +- ascii string is 67kW6YnKvTpaqoBX1F8l +- really should have automated this diff --git a/README.md b/README.md new file mode 100644 index 0000000..ab66706 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Assignments for Fall 2024 CSE545 - Software Security at ASU diff --git a/ss1.png b/ss1.png new file mode 100644 index 0000000000000000000000000000000000000000..c5aefaf553c459ed109b1854add276496963bbcf GIT binary patch literal 29044 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 V#UaNN%x;R;<YkmWMNbXi{|Bv_HWmN? literal 0 HcmV?d00001 diff --git a/ss2.png b/ss2.png new file mode 100644 index 0000000000000000000000000000000000000000..45a9462c1f6a9b0403b86c33c459d3bb99ec4069 GIT binary patch literal 20345 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 Bz_I`U literal 0 HcmV?d00001