diff --git a/crackmes/study/5/solve.py b/crackmes/study/5/solve.py
index de2d7d7..2e964ad 100644
--- a/crackmes/study/5/solve.py
+++ b/crackmes/study/5/solve.py
@@ -1,5 +1,5 @@
 import angr
-import time
+import sys, time
 import claripy
 
 GREEN = "\033[92m"
@@ -16,7 +16,9 @@ def fgets(state: angr.SimState):
     input_data = state.solver.BVS('input_data', 8 * INPUT_SIZE)
     state.memory.store(state.regs.rcx, input_data)
     state.memory.rax = claripy.BVV(1, 32)
-    INPUTS.append(input_data)
+
+    INPUTS.append({"input_data": input_data,
+    "addr": int(state.regs.rip.concrete_value)})
 
 def strcpy_s(state: angr.SimState):
     dst, sz, src = state.regs.rcx, state.regs.rdx, state.regs.r8
@@ -73,8 +75,10 @@ if __name__ == "__main__":
             found_state = simgr.found[0]
             
             for input in INPUTS:
-                input_data = found_state.solver.eval(input, cast_to=bytes)
-                print(f"{GREEN}Success cracked! Input: {PURPLE}{input_data}{PURPLE}{RESET}")
+                input_data = found_state.solver.eval(input['input_data'], cast_to=bytes)
+                print(f"{GREEN}Success cracked! {PURPLE}"
+               f"input data = {input_data} "
+               f"[0x{input['addr']:X}]{PURPLE}{RESET}")
 
             print(f"{GREEN}Pwd cracking time = {elapsed}{RESET}")
             break