From e5ecc75c0c0c6b9cf9768aa6e550d8b6cc6636cf Mon Sep 17 00:00:00 2001 From: serr Date: Wed, 5 Mar 2025 09:39:41 +0300 Subject: [PATCH] changed output --- crackmes/study/5/solve.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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