Rating:

Symbolic execution with angr

```python
#!/usr/bin/env python3
import angr, time, claripy

BINARY='./jack'
OUTFILE='out'
t=time.time()
proj = angr.Project(BINARY, auto_load_libs=False)
print(proj.arch)
print(proj.filename)
print("Entry: 0x%x" % proj.entry)

password = claripy.BVS("flag", 8*16)
state = proj.factory.entry_state(args=[BINARY, OUTFILE], stdin=password)
simgr = proj.factory.simulation_manager(state)
simgr.explore(find=lambda s: b"Good Work!" in s.posix.dumps(1), avoid=lambda s: b"Try harder" in s.posix.dumps(1))

print(simgr.found[0].posix.dumps(0))
print(time.time() - t, "seconds")
```

Original writeup (https://github.com/apoirrier/CTFs-writeups/blob/master/DarkCTF2020/Reversing/JACK.md).