| 17 | self.available = True |
| 18 | |
| 19 | def run(self, state_raw: angr.SimState, challenge: Challenge, new_mem: list): |
| 20 | log.info(f"Trying exploit {self.exploit_name}") |
| 21 | try: |
| 22 | self.exploit_func(state_raw, challenge, new_mem, state_raw.globals['binary']) |
| 23 | except SimUnsatError: |
| 24 | log.failure(f"payload constraint unset") |
| 25 | # except AttributeError: |
| 26 | # log.failure(f"payload gadget unset") |
| 27 | self.available = False |
| 28 | log.failure(f"Exploit {self.exploit_name} failed") |
| 29 | |
| 30 | def satisfy(self, binary: InteractiveBinary, try_lazy=False): |
| 31 | if self.available: |