diff --git a/down-a-notch/check b/down-a-notch/check new file mode 100644 index 0000000..d55fbd0 --- /dev/null +++ b/down-a-notch/check @@ -0,0 +1,36 @@ +check(int, int): + pushq %rbp + movq %rsp, %rbp + movl %edi, -36(%rbp) + movl %esi, -40(%rbp) + movl -36(%rbp), %eax + xorl -40(%rbp), %eax + movl %eax, -4(%rbp) + movl -4(%rbp), %eax + addl $98, %eax + movl %eax, -8(%rbp) + movl -8(%rbp), %eax + notl %eax + movl %eax, %edx + movl -40(%rbp), %eax + addl %edx, %eax + movl %eax, -12(%rbp) + movl -12(%rbp), %eax + xorl -36(%rbp), %eax + movl %eax, -16(%rbp) + movl -40(%rbp), %eax + imull -4(%rbp), %eax + cltd + idivl -8(%rbp) + movl %eax, %edx + movl -36(%rbp), %eax + leal (%rdx,%rax), %ecx + movl -12(%rbp), %edx + movl -16(%rbp), %eax + addl %edx, %eax + xorl %ecx, %eax + movl %eax, -20(%rbp) + cmpl $-814, -20(%rbp) + sete %al + popq %rbp + ret diff --git a/down-a-notch/description.md b/down-a-notch/description.md new file mode 100644 index 0000000..77fba5f --- /dev/null +++ b/down-a-notch/description.md @@ -0,0 +1 @@ +I've spent too long in the high level, let's take the level [down a notch](${check}). Help me find the correct input to this function! \ No newline at end of file diff --git a/down-a-notch/problem.yml b/down-a-notch/problem.yml new file mode 100644 index 0000000..f7e3738 --- /dev/null +++ b/down-a-notch/problem.yml @@ -0,0 +1,9 @@ +author: mzhang +title: Down a Notch +hint: Compiled with x86-64 gcc 4.9.4 +category: Programming +autogen: false +programming: false +value: 100 +files: + - check diff --git a/undirect/description.md b/undirect/description.md new file mode 100644 index 0000000..a942164 --- /dev/null +++ b/undirect/description.md @@ -0,0 +1 @@ +Seems like we got ourselves stuck in a [redirect loop](http://undirect.web.easyctf.com). Help me undirect myself from its clutches and get the flag! \ No newline at end of file diff --git a/undirect/grader.py b/undirect/grader.py new file mode 100644 index 0000000..db04101 --- /dev/null +++ b/undirect/grader.py @@ -0,0 +1,4 @@ +def grade(autogen, key): + if key.find("1t's_4lw4ys_a_G00d_idea_2_ch3ck_th3_he4d3rs!") != -1: + return True, "You got it!" + return False, "Nope. Keep poking around." diff --git a/undirect/problem.yml b/undirect/problem.yml new file mode 100644 index 0000000..fa87395 --- /dev/null +++ b/undirect/problem.yml @@ -0,0 +1,9 @@ +author: mzhang +title: Undirect +hint: How can you find out more about what the server is really sending back? +category: Forensics +autogen: false +programming: false +value: 100 +files: + - gibberish.png