We start by downloading the source files.
We are given a file called
This is probably a flag checker, we will try to use
Unfortunately the program generates the
Looking at the
00007FF646D91039 | 4D:31C0 | xor r8,r8 |
00007FF646D9103C | 45:8A040C | mov r8b,byte ptr ds:[r12+rcx] | r12+rcx*1:"TB{s3t_test}\n"
00007FF646D91040 | 49:81F0 55000000 | xor r8,55 |
00007FF646D91047 | 49:81F8 01000000 | cmp r8,1 |
We notice that this takes the next element of our input and xors it with some value and then compares this with a value. This is reversable, so we can calculate the correct character:
In this example the next correct character is
This takes some time, it could probably be automated or we could use a timing attack or similar.
Regardless we get the flag