/** *Entrypointclassfordexfuzz.
*/ publicclass DexFuzz { // Last version update 1.9: fixed a bug in InvokeChanger. privatestaticint majorVersion = 1; privatestaticint minorVersion = 9; privatestaticint seedChangeVersion = 0;
/** *Entrypointtodexfuzz.
*/ publicstaticvoid main(String[] args) { // Report the version number, which should be incremented every time something will cause // the same input seed to produce a different result than before.
Log.always(String.format("DexFuzz v%d.%d.%d",
majorVersion, minorVersion, seedChangeVersion));
Log.always("");
if (!Options.readOptions(args)) {
Log.error("Failed to validate options.");
Options.usage();
}
// Create a Listener that is responsible for multiple Listeners.
MultiplexerListener multipleListener = new MultiplexerListener();
multipleListener.setup();
FinalStatusListener statusListener = new FinalStatusListener();
multipleListener.addListener(statusListener);
if (Options.repeat > 1 && Options.execute) { // If executing repeatedly, take care of reporting progress to the user. if (Options.quiet) { // Nothing if quiet is requested.
} elseif (!Log.likelyToLog()) { // Add the live updating listener if we're not printing out lots of logs.
multipleListener.addListener(new UpdatingConsoleListener());
} else { // If we are dumping out lots of logs, then use the console logger instead.
multipleListener.addListener(new ConsoleLoggerListener());
} // Add the file logging listener.
multipleListener.addListener(new LogFileListener(Options.reportLogFile)); if (Options.runBisectionSearch) { // Add the bisection search listener.
multipleListener.addListener(new BisectionSearchListener());
} // Add the unique program tracker.
multipleListener.addListener(new UniqueProgramTrackerListener(Options.uniqueDatabaseFile));
} else { // Just use the basic listener.
multipleListener.addListener(new ConsoleLoggerListener());
}
// Create the Fuzzer that uses a particular strategy for fuzzing.
Fuzzer fuzzer = null; if ((Options.repeat > 1) && Options.execute) {
fuzzer = new FuzzerMultipleExecute(multipleListener);
} elseif ((Options.repeat > 1) && !Options.execute) {
fuzzer = new FuzzerMultipleNoExecute(multipleListener);
} elseif ((Options.repeat == 1) && Options.execute) {
fuzzer = new FuzzerSingleExecute(multipleListener);
} elseif ((Options.repeat == 1) && !Options.execute) {
fuzzer = new FuzzerSingleNoExecute(multipleListener);
} else {
Log.errorAndQuit("Invalid options provided, desired fuzzer unknown.");
} // TODO: Implement FuzzerFindMinimalMutations. // TODO: Implement FuzzerGenerational.
// Actually run the Fuzzer.
fuzzer.run();
fuzzer.printTimingInfo();
fuzzer.shutdown();
// Cleanup the Listener.
multipleListener.shutdown();
if (!statusListener.isSuccessful()) {
System.exit(1);
}
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.