def main():
    if (len(sys.argv) > 2):
        cfgFile = sys.argv.pop(1)
        fuzzInst = ADBFuzz(cfgFile)
    else:
        print "Missing configuration file!"
        usage()
        exit(1)

    cmd = sys.argv.pop(1)
    if (cmd == "showdump"):
        print "Obtaining symbolized trace..."
        dumpFile = sys.argv[1]
        libSearchPath = sys.argv[2]
        minidump = Minidump(dumpFile, libSearchPath)
        symbolTrace = minidump.getSymbolizedCrashTrace()
        print ""
        for frame in symbolTrace:
            print "#" + frame[0] + "\t" + frame[1] + " at " + frame[2]
    elif (cmd == "reproduce"):
        fuzzInst.config.fuzzerFile = sys.argv[1]
        fuzzInst.config.runTimeout = int(sys.argv[2])

        isCrash = True

        if sys.argv[3] == 'crash':
            isCrash = True
        elif sys.argv[3] == 'abort':
            isCrash = False
        else:
            raise Exception("Unknown crash type " + sys.argv[3] +
                            " specified!")

        if fuzzInst.testCrash(isCrash):
            exit(0)
        exit(1)
    elif (cmd == "run"):
        fuzzInst.remoteInit()
        if (len(sys.argv) > 2):
            fuzzInst.loopFuzz(sys.argv[1])
        else:
            fuzzInst.loopFuzz()
    elif (cmd == "deploy"):
        fuzzInst.deploy(sys.argv[1], sys.argv[2])
    elif (cmd == "reset"):
        fuzzInst.reset(sys.argv[1])
Example #2
0
def main():
  if (len(sys.argv) > 2):
      cfgFile = sys.argv.pop(1)
      fuzzInst = ADBFuzz(cfgFile)
  else:
      print "Missing configuration file!"
      usage()
      exit(1)
  
  cmd = sys.argv.pop(1)
  if (cmd == "showdump"):
    print "Obtaining symbolized trace..."
    dumpFile = sys.argv[1]
    libSearchPath = sys.argv[2]
    minidump = Minidump(dumpFile, libSearchPath)
    symbolTrace = minidump.getSymbolizedCrashTrace()
    print ""
    for frame in symbolTrace:
      print "#" + frame[0] + "\t" + frame[1] + " at " + frame[2]
  elif (cmd == "reproduce"):
    fuzzInst.config.fuzzerFile = sys.argv[1]
    fuzzInst.config.runTimeout = int(sys.argv[2])
    
    isCrash = True
    
    if sys.argv[3] == 'crash':
      isCrash = True
    elif sys.argv[3] == 'abort':
      isCrash = False
    else:
      raise Exception("Unknown crash type " + sys.argv[3] + " specified!")
    
    if fuzzInst.testCrash(isCrash):
      exit(0)
    exit(1)
  elif (cmd == "run"):
    fuzzInst.remoteInit()
    if (len(sys.argv) > 2):
      fuzzInst.loopFuzz(sys.argv[1])
    else:
      fuzzInst.loopFuzz()
  elif (cmd == "deploy"):
    fuzzInst.deploy(sys.argv[1], sys.argv[2])
  elif (cmd == "reset"):
    fuzzInst.reset(sys.argv[1])