adplus-dvertising
frame-decoration

Question

What happens if the copied buffer overwrites the function’s return address?

a.

The function tries to return to the caller by invoking the RET instruction.

b.

The CPU will jump to whatever address was stored in CopiedBuffer + 0x10.

c.

An attacker can take control over a system.

d.

All of the above.

Posted under Reverse Engineering

Answer: (d).All of the above. Explanation:If the copied buffer overwrites the function’s return address, the function tries to return to the caller by invoking the RET instruction, the CPU will try to jump to whatever address was stored in CopiedBuffer + 0x10, and an attacker can take control over a system.

Engage with the Community - Add Your Comment

Confused About the Answer? Ask for Details Here.

Know the Explanation? Add it Here.

Q. What happens if the copied buffer overwrites the function’s return address?

Similar Questions

Discover Related MCQs

Q. What is a simple way to create a stack overflow vulnerability?

Q. What happens when a buffer of an unknown size is copied over into a limited-sized stack buffer?

Q. What is the most likely candidate to be stored in registers instead of the stack?

Q. What happens when a function tries to return to the caller?

Q. What is a common payload used in a typical buffer overflow?

Q. What is a strategy for determining the current stack address in a target program?

Q. What is a classic case of a trivial overflow bug?

Q. What is an example of a tool that can be used to disassemble a program?

Q. How are parameters passed in cdecl functions?

Q. What is the disadvantage of the optimization chosen by the compiler for unwinding function parameters?

Q. Why does the function end up using a bit more stack space?

Q. Which type of threads in Windows have a very limited stack space?

Q. What is the disadvantage of the function's stack unwinding approach from the program's perspective?

Q. Why is it important to ensure that the code that’s accessing a large block of stack space is properly aware of its size?

Q. What are intrinsic implementations?

Q. Why are string-manipulation routines historically a reason for vulnerabilities?

Q. What is the aim of using automatic, compiler-generated stack checking?

Q. How does automatic, compiler-generated stack checking work?

Q. What is the purpose of the cookie used in stack checking?

Q. Why does the cookie used in stack checking need to be a random number?