org.owasp.jbrofuzz.JBroFuzz Maven / Gradle / Ivy
/**
* JbroFuzz 2.5
*
* JBroFuzz - A stateless network protocol fuzzer for web applications.
*
* Copyright (C) 2007 - 2010 [email protected]
*
* This file is part of JBroFuzz.
*
* JBroFuzz is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* JBroFuzz is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with JBroFuzz. If not, see .
* Alternatively, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Verbatim copying and distribution of this entire program file is
* permitted in any medium without royalty provided this notice
* is preserved.
*
*/
package org.owasp.jbrofuzz;
import java.util.prefs.Preferences;
import org.owasp.jbrofuzz.core.Database;
import org.owasp.jbrofuzz.io.CommandLineInterpreter;
import org.owasp.jbrofuzz.io.StorageHandler;
import org.owasp.jbrofuzz.io.StorageInterface;
import org.owasp.jbrofuzz.ui.JBroFuzzWindow;
import org.owasp.jbrofuzz.version.JBroFuzzFormat;
/**
*
* Filename: JBroFuzz.java
*
*
*
* Description: This class launches JBroFuzz. It instantiates a database of
* fuzzers, a format object, the main frame window and a file IO handler.
*
*
*
* The order in which the last four are instantiated should not be altered.
*
*
* @author [email protected]
* @version 2.3
* @since 0.1
*/
public class JBroFuzz {
private final StorageHandler mHandler;
private final JBroFuzzFormat mFormat;
private final JBroFuzzWindow mWindow;
private Database mDatabase;
public static final Preferences PREFS = Preferences.userRoot().node("owasp/jbrofuzz");
/**
*
* The main method launching the constructor of JBroFuzz.
*
*
* @param args
* String[]
*/
public static void main(final String[] args) {
CommandLineInterpreter cli = new CommandLineInterpreter();
try{
if (cli.process(args) <= 0 ){
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
new JBroFuzz();
}
});
}
}
catch (Exception e){
e.printStackTrace();
}
}
/**
*
* The main creation object, instantiating a Database, a Format Object, a
* Window, and a File Hander
*
*
*
* The order in which construction takes place is rather important and
* should not be altered.
*
*/
public JBroFuzz() {
mDatabase = new Database();
mHandler = new StorageHandler();
mFormat = new JBroFuzzFormat();
mWindow = new JBroFuzzWindow(this);
// JBroFuzzWindow.createAndShowGUI(mWindow);
}
/**
*
* Return the main database of exploits loaded, thus giving access to
* fuzzers and the payloads.
*
*
* @return The Database of Fuzzers
*/
public Database getDatabase() {
return mDatabase;
}
/**
* Set the database to the database specified.
*
* @param db The input Database of fuzzers.
*
* @author [email protected]
* @version 2.1
* @since 2.1
*/
public void setDatabase(final Database db) {
mDatabase = db;
}
/**
*
* Return the main format object, thus allowing on top of static, also
* dynamic access to various constant variables, methods, etc.
*
*
* @return The Format Object of JBroFuzz
*/
public JBroFuzzFormat getFormat() {
return mFormat;
}
/**
*
* Return the main file handler, thus allowing access to the various
* read/write IO methods and functions used at runtime.
*
*
* @return The file IO Object of JBroFuzz
*/
public StorageInterface getStorageHandler() {
return mHandler;
}
/**
*
* Return the main window, thus allowing access to various GUI components.
*
*
* @return The main frame window displayed
*/
public JBroFuzzWindow getWindow() {
return mWindow;
}
}