ESP int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. } EIP 100: 200: 250: 300: 350:
1 ESP EIP 100: 200: 250: 300: 350: int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. }
1 return address to main ESP EIP 100: 200: 250: 300: 350: int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. }
1 return address to main ESP EIP 100: 200: 250: 300: 350: int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. }
1 return address to main Old EBP ESP EIP 100: 200: 250: 300: 350: int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. }
1 return address to main Old EBP ESP EIP 100: 200: 250: 300: 350: EBP int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. }
1 return address to main Old EBP ESI EDI EBX Local Variables ESP EIP 100: 200: 250: 300: 350: EBP int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. }
1 return address to main Old EBP ESI EDI EBX Local Variables ESP EIP 100: 200: 250: 300: 350: EBP int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. }
1 return address to main Old EBP ESI EDI EBX Local Variables 2 ESP EIP 100: 200: 250: 300: 350: EBP int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. }
1 return address to main Old EBP ESI EDI EBX Local Variables 2 return address to g ESP EIP 100: 200: 250: 300: 350: EBP int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. }
1 return address to main Old EBP ESI EDI EBX Local Variables 2 return address to g ESP 100: 200: 250: 300: 350: EBP EIP int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. }
1 return address to main Old EBP ESI EDI EBX Local Variables 2 return address to g Old EBP ESP EIP 100: 200: 250: 300: 350: EBP int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. }
1 return address to main Old EBP ESI EDI EBX Local Variables 2 return address to g Old EBP ESP EIP 100: 200: 250: 300: 350: EBP int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. }
1 return address to main Old EBP ESI EDI EBX Local Variables 2 return address to g Old EBP ESI EDI EBX Local Variables ESP 100: 200: 250: 300: 350: EIP int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. } EBP
1 return address to main Old EBP ESI EDI EBX Local Variables 2 return address to g Old EBP ESI EDI EBX Local Variables ESP 100: 200: 250: 300: 350: EIP Function Frames int f(int x) {.... } int g(int y) { …. f(2); …. } int main() { …. g(1); …. } EBP