diff --git a/fuzzer/Fuzzer.java b/fuzzer/Fuzzer.java index 60017a01f7b2ad3d65a471284546ba2f90f71851..cd8c791442ba64d622dd56298eedfc94a7ad197b 100644 --- a/fuzzer/Fuzzer.java +++ b/fuzzer/Fuzzer.java @@ -51,11 +51,21 @@ public class Fuzzer { else if(strat == 7){ pw.println(generateDirtyMemoryRead(rg)); } - int paddingLines = rg.nextInt(maxPadding); - pw.println(generateDivideByZero()); - pw.println(generateInstructionComment(rg)); - for(int x=0;x<paddingLines;x++){ - pw.println(generateValidString(rg,paddingLines-x+3,x+3)); + else if(strat ==8){ + if(rg.nextBoolean()){ + pw.println(jmpOverflow(rg)); + } + else{ + pw.println(jzOverflow(rg)); + } + } + if(strat != 8){ + int paddingLines = rg.nextInt(maxPadding); + pw.println(generateDivideByZero()); + pw.println(generateInstructionComment(rg)); + for(int x=0;x<paddingLines;x++){ + pw.println(generateValidString(rg,paddingLines-x+3,x+3)); + } } if(strat == 0){ pw.println(generateValidReturn(rg)); @@ -80,14 +90,6 @@ public class Fuzzer { else if(strat == 5){ pw.println(generateInstructionOverflow()); } - else if(strat == 8){ - if(rg.nextBoolean()){ - pw.println(jmpOverflow(rg)); - } - else{ - pw.println(jzOverflow(rg)); - } - } else if(strat == 9){ if(rg.nextBoolean()){ pw.println(intOverflow()); @@ -343,11 +345,15 @@ public class Fuzzer { public static String jmpOverflow(Random rg) { String line = new String(); - int val; + int val; + int offset = rg.nextInt(10); + if(offset == 0){ + offset = 10; + } if(rg.nextBoolean()) { - val = -1*maxMemory; + val = -1*offset; } else { - val = maxMemory; + val = offset; } line = line +"JMP "+val; return line; @@ -357,10 +363,14 @@ public class Fuzzer { String line = new String(); int val; + int offset = rg.nextInt(10); + if(offset == 0){ + offset = 10; + } if(rg.nextBoolean()) { - val = -1*maxMemory; + val = -1*offset; } else { - val = maxMemory; + val = offset; } line = line +"MOV R0 0\n"; line = line +"JZ R0 "+val;