Tags: rev angr
Rating:
```py
# You have to pass the binary as an argument.
import angr
import claripy
import sys
def main(argv):
  b = argv[1]
  project = angr.Project(b)
  length = 17
  characters = [claripy.BVS('flag{-%d' %i, 8) for i in range(length)]
  input_ = claripy.Concat(*characters + [claripy.BVV(b'\n')])
  
  state = project.factory.full_init_state(args=["b"], stdin=input_)    
  simulate = project.factory.simulation_manager(state) 
  good_addr = 0x00001482
  bad_addr = 0x00001461
  simulate.explore(find=good_addr, avoid=bad_addr)  
  s = []
  for j in simulate.deadended:
      if b"Good Work!" in j.posix.dumps(1):
          s.append(j)
  valid = s[0].posix.dumps(0)
  print(valid)
if __name__ == '__main__':
  main(sys.argv)
# darkCTF{n0_5ymb0l1c,3x30}
```