Computer Architecture
Assembly Language
Buffer Overflow
Linux Commands
GDB Debugging
100

This type of memory is volatile and loses data when power is off.

What is RAM (Random Access Memory)?

100

This is the purpose of the stack in memory operations.

What is storing temporary variables, function parameters, and return addresses?

100

This occurs when data goes past an input variable, overwriting adjacent memory.

What is a buffer overflow?

100

whoami?

What is a linux command that shows the current logged-in user.

100

This command in GDB prints 4 bytes as hexadecimal values.

What is x/4xb $esp?

200

This is the difference between Machine Language and Assembly Language.

What is Machine Language is binary code executed by the CPU, while Assembly Language is a human-readable representation of machine code?

200

This is how a CALL instruction works.

What is pushing the return address onto the stack and jumping to a function?

200

This is how you find the offset to EBP in a buffer overflow.

What is calculating the difference between EBP and the input start address?

200

ls -l

What is a linux command listing files with detailed information including permissions?

200

The ASCII string represented by 0x41 0x42 0x43 0x44.

What is "ABCD"?

300

This is how the CPU executes an instruction.

What is the Fetch-Decode-Execute cycle?

300

This is the function of a MOV instruction.

What is moving data from one location to another?

300

This is a sequence of operating instructions that serve no function except leading to shellcode in an exploit.

What is a NOP sled?

300

chmod 600 filename

What is a linux command that changes file permissions so only the owner can read and write

300

This is how you print a string stored at a memory address.

What is x/s address?

400

The ASCII character 'A' is represented in hexadecimal as this.

What is 0x41?

400

0x08048400 <main>:    push   ebp
0x08048401 <main+1>:  mov    ebp,esp
0x08048403 <main+3>:  sub    esp,0x20

Using the above code determine the size of the stack in bytes.

What is 32 Bytes (20 hex)

400

This protection mechanism randomizes memory addresses to prevent predictable buffer overflow exploits.

What is ASLR (Address Space Layout Randomization)?

400

gcc -o program program.c

What is a command that compiles a C program into an executable.

400

This is how you set a breakpoint at a function in GDB.

What is break function_name?

500

These are the three types of program errors.

What are Syntax Error, Runtime Error, and Logic Error?

Daily Double

500

This is the difference between JMP, CALL, and RET instructions in assembly.

What is JMP jumps unconditionally, CALL pushes the return address and jumps to a function, and RET pops the return address from the stack and returns to the caller?

(Daily Double)

500

This is why an attack fails if the return address does not point inside the buffer.

What is because it will not execute the shellcode in memory?

500

 find /home -name "*.c"?

What is a command finds all .c files in the /home directory and lists them.

500

Allows a program to execute with the privileges of the file owner?

What is the setuid permission?