def main(): proj = angr.Project('newbin0', load_options={"auto_load_libs": False})
input_size = 0x60 argv1 = claripy.BVS("argv1",input_size * 8)
init = proj.factory.entry_state(args=["./newbin0", argv1]) init.libc.buf_symbolic_bytes=input_size + 1 al = [0x947C86,0x947976,0x9478FB,0x947889,0x947809,0x94778C,0x94770C,0x94768C,0x947610,0x9475A8,0x94752B,0x9474A9,0x94742C,0x9473B3,0x947337,0x9472BB,0x94723B]
for byte in argv1.chop(8): init.add_constraints(byte >= '0') init.add_constraints(byte <= 'Z') init.add_constraints(byte != '\x3a') init.add_constraints(byte != '\x3b') init.add_constraints(byte != '\x3c') init.add_constraints(byte != '\x3d') init.add_constraints(byte != '\x3e') init.add_constraints(byte != '\x3f') init.add_constraints(byte != '\x40')
init_path = proj.factory.path(init) path_group = proj.factory.path_group(init) path_group.explore(find=FIND_ADDR, avoid=al)
found = path_group.found[0] solution = found.state.se.any_str(argv1) return solution |