master
serr 2025-03-02 19:06:03 +03:00
parent bfd6c653d5
commit 1746c66b92
1 changed files with 12 additions and 4 deletions

View File

@ -1,11 +1,17 @@
import time import time
import angr import angr
GREEN = "\033[92m"
PURPLE = "\033[35m"
RESET = "\033[0m"
RED = "\033[31m"
if __name__ == "__main__": if __name__ == "__main__":
# Загрузка бинарного файла # Загрузка бинарного файла
proj = angr.Project('a.exe', auto_load_libs=False) proj = angr.Project('a.exe', auto_load_libs=False)
ENTRY_POINT = 0x140001837 # Адрес функции после вызова scanf print(f"{GREEN}The executable has been uploaded to angr!{RESET}")
TARGET_ADDR = 0x140001848 # Целевой адрес, нахождение на нем означает что програмам взломана ENTRY_POINT = 0x140001837 # Адрес функции после вызова scanf
TARGET_ADDR = 0x140001848 # Целевой адрес, нахождение на нем означает что программа взломана
# Создание начального состояния # Создание начального состояния
state = proj.factory.entry_state( state = proj.factory.entry_state(
@ -29,12 +35,14 @@ if __name__ == "__main__":
state.add_constraints(byte <= 0x7e) state.add_constraints(byte <= 0x7e)
simgr = proj.factory.simulation_manager(state) simgr = proj.factory.simulation_manager(state)
print(f"{GREEN}Start cracking...{RESET}")
start_time = time.time() start_time = time.time()
simgr.explore(find=TARGET_ADDR) simgr.explore(find=TARGET_ADDR)
elapsed = time.time() - start_time elapsed = time.time() - start_time
if simgr.found: if simgr.found:
input_data = simgr.found[0].solver.eval(input_data, cast_to=bytes) input_data = simgr.found[0].solver.eval(input_data, cast_to=bytes)
print(f"Success cracked! Input: {input_data} | Pwd cracking time = {elapsed}") print(f"{GREEN}Success cracked! Input: {PURPLE}{input_data}{PURPLE}{RESET}")
print(f"{GREEN}Pwd cracking time = {elapsed}{RESET}")
else: else:
print("Fail!") print(f"{RED}Fail!{RESET}")