Practice Quiz 2 — Review (Classes 1–11)
30 multiple-choice questions, 1 point each. Closed notes: no slides, no AI tools, no talking. Your instructor will tell you when to start and when to stop. Pick the single best answer for each question, then press Submit quiz.
Question 1 1 point
In this course, what is the key difference between correctness and security?
Question 2 1 point
A denial-of-service (DoS) attack primarily violates which property of the CIA triad?
Question 3 1 point
Per the course's generative-AI policy, how should you treat an answer an AI tool gives you (for example a gadget address or an offset it suggests)?
Question 4 1 point
By the cdecl convention, after a function returns, which register holds its return value?
Question 5 1 point
Which general-purpose register is conventionally used as the counter for loop and string operations, decremented on each iteration?
Question 6 1 point
x86/IA-32 is little-endian. The opposite ordering, big-endian, is also commonly called:
Question 7 1 point
On x86, the cmp instruction decides whether a later conditional jump is taken by setting bits in which register?
Question 8 1 point
What does the ret instruction do at the machine level?
Question 9 1 point
Under the cdecl calling convention, in what order are a function's arguments pushed onto the stack?
Question 10 1 point
In cdecl, who removes the arguments from the stack after the call returns?
Question 11 1 point
In a typical 32-bit cdecl stack frame, what is stored at [ebp+4]?
Question 12 1 point
Which sequence is the standard function prologue that establishes a new stack frame?
Question 13 1 point
The x86 leave instruction is equivalent to which pair of operations?
Question 14 1 point
Which gdb command prints the chain of stack frames (the call backtrace)?
Question 15 1 point
On 32-bit Linux using the int 0x80 convention, which system-call number is placed in EAX to invoke execve?
Question 16 1 point
To invoke execve("/bin/sh", ...) via int 0x80, what must EBX point to?
Question 17 1 point
Which tool traces the sequence of system calls a running program makes?
Question 18 1 point
Why must injected shellcode be position-independent?
Question 19 1 point
When shellcode sets up "/bin/sh" for execve, why is the string stored with a trailing NUL byte?
Question 20 1 point
In this month's labs, why is gets(buf) the root cause of the overflow, and what is the standard fix?
Question 21 1 point
Which gcc flag was used so the overflow could reach the saved return address without tripping a stack-smashing guard?
Question 22 1 point
A NOP sled on x86 is built by repeating which single-byte opcode?
Question 23 1 point
In a return-to-shellcode attack (Class 9), where is the overwritten return address made to point?
Question 24 1 point
With NX/DEP enabled (-z noexecstack), what happens when execution returns into shellcode placed on the stack?
Question 25 1 point
In Return-Oriented Programming, what is a gadget?
Question 26 1 point
In a return-chaining ROP exploit that passes arguments on the stack, what is the purpose of a pop; ret gadget inserted between two chained function calls?
Question 27 1 point
On x86 with NX support, where is the per-page No-eXecute (NX) bit stored?
Question 28 1 point
What best describes a zero-day vulnerability?
Question 29 1 point
In the Class 11 demo, why is rop2.c compiled as a statically linked binary?
Question 30 1 point
In string and memory-copy operations, which register conventionally holds the destination pointer?