ArrayList<Attack> fuzz(Attack baselineAttack, Probe probe) { ArrayList<Attack> attacks = new ArrayList<>(2); Attack breakAttack = buildAttackFromProbe(probe, probe.getNextBreak()); if (Utilities.identical(baselineAttack, breakAttack)) { return new ArrayList<>(); } for(int k=0; k<probe.getNextEscapeSet().length; k++) { Attack doNotBreakAttack = buildAttackFromProbe(probe, probe.getNextEscapeSet()[k]); doNotBreakAttack.addAttack(baselineAttack); if(!Utilities.identical(doNotBreakAttack, breakAttack)) { attacks = verify(doNotBreakAttack, breakAttack, probe, k); if (!attacks.isEmpty()) { break; } } } return attacks; }
ArrayList<Attack> fuzz(Attack baselineAttack, Probe probe) { ArrayList<Attack> attacks = new ArrayList<>(2); Attack breakAttack = buildAttackFromProbe(probe, probe.getNextBreak()); if (Utilities.identical(baselineAttack, breakAttack)) { return new ArrayList<>(); } for(int k=0; k<probe.getNextEscapeSet().length; k++) { Attack doNotBreakAttack = buildAttackFromProbe(probe, probe.getNextEscapeSet()[k]); doNotBreakAttack.addAttack(baselineAttack); if(!Utilities.identical(doNotBreakAttack, breakAttack)) { attacks = verify(doNotBreakAttack, breakAttack, probe, k); if (!attacks.isEmpty()) { break; } } } return attacks; }