From f89d7406473057ea97264d6ad1e73a69bfbf5985 Mon Sep 17 00:00:00 2001 From: ryuzakighost <ryuzakighost@gmail.com> Date: Sun, 14 Oct 2018 22:28:25 +1100 Subject: [PATCH] fixed jmp --- fuzzer/Fuzzer.java | 46 ++++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/fuzzer/Fuzzer.java b/fuzzer/Fuzzer.java index 60017a0..cd8c791 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; -- GitLab