From 68a36f16c1f32bfabb1f5030647e7018aac3e1c8 Mon Sep 17 00:00:00 2001 From: Zhaolin Deng <zhaolin.deng@student.unimelb.edu.au> Date: Sun, 14 Oct 2018 12:13:33 +0800 Subject: [PATCH] update --- fuzzer/Fuzzer.java | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/fuzzer/Fuzzer.java b/fuzzer/Fuzzer.java index 4ea3793..1d8a8c0 100644 --- a/fuzzer/Fuzzer.java +++ b/fuzzer/Fuzzer.java @@ -23,7 +23,7 @@ public class Fuzzer { Random rg = new Random(); - }catch (Exception e){s + }catch (Exception e){ e.printStackTrace(System.err); System.exit(1); }finally{ @@ -188,8 +188,15 @@ public class Fuzzer { } //DZL - public String generateOffsetOverFlow() { - return null; + public String generateOffsetOverFlow(Random rg) { + String line = new String(); + Boolean positive = rg.nextBoolean(); + if(!positive) { + line.concat("MOV R0 -70000"); + }else { + line.concat("MOV R0 70000"); + } + return line; } public String generateLineOverFlow() { @@ -220,9 +227,14 @@ public class Fuzzer { return line; } - //DZL public String generateDirtyRegistyRead() { - return null; + String line = new String(); + + for(int x=1;x<maxRegistry-1;x++) { + line.concat("ADD R0 R0 R"+x+"%n"); + } + line.concat("RET R0"); + return line; } public String generateDirtyMemoryRead(Random rg) { @@ -282,11 +294,22 @@ public class Fuzzer { return line; } - //DZL public String generateInvalidOperands(Random rg) { - //rg.nextInt(3) - //register = rg.nextInt(maxRegistry); - //wrong operands + int regs = rg.nextInt(4); + String line = new String(); + Boolean hasval = rg.nextBoolean(); + int index = rg.nextInt(validOpcodes.size()); + String opcode = validOpcodes.get(index); + line.concat(opcode); + for(int x=0;x<regs;x++) { + int register = rg.nextInt(maxRegistry); + line.concat(" R"+register); + } + if(hasval) { + int value=rg.nextInt(maxMemory); + line.concat(" "+value); + } + //too many arguments return null; } -- GitLab