title: How to modify return address on Stack in C or Assembly
body: <p>As you know, when a subroutine calls, current PC (program counter) value stores in stack. I want to modify it inside the subroutine, like below. I want do this on Intel Core-i7 3632QM using gcc compiler. </p>
  
  <pre><code>void main()
  {
       foo();
  }
  void foo()
  {
       pop return address from stack;
       modify return address;
       push it to stack;
  }
  </code></pre>