From a4a2a5a8be28910f5e57f7ce300ce231fc8ab4e3 Mon Sep 17 00:00:00 2001
From: susperius <susperius@gmail.com>
Date: Fri, 10 Jul 2015 18:50:55 +0200
Subject: [PATCH] reorganized the folders included node as part of the server

---
 PyFuzz2-Server/node/config.py                 | 174 ------------------
 PyFuzz2-Server/node/node_config.xml           |   7 -
 PyFuzz2-Server/web/index.html                 |  26 ---
 .../debugging/__init__.py => __init__.py      |   0
 .../__init__.py                               |   0
 .../beaconserver.py                           |   0
 .../nodeclient.py                             |   0
 .../reportserver.py                           |   0
 .../webserver.py                              |   0
 {PyFuzz2-Server/model => model}/__init__.py   |   0
 {PyFuzz2-Server/model => model}/config.py     |   0
 .../model => model}/message_types.py          |   0
 {PyFuzz2-Server/model => model}/node.py       |   0
 .../fuzzing/jsfuzzer => node}/__init__.py     |   0
 .../communication/__init__.py                 |   0
 .../communication/beaconclient.py             |   0
 .../communication/nodelistener.py             |   0
 .../communication/reportclient.py             |   0
 .../worker => node/debugging}/__init__.py     |   0
 .../debugging/msec/MSEC.dll                   | Bin
 .../debugging/msec/MSEC.pdb                   | Bin
 .../debugging/msec/license.txt                |  26 +--
 {PyFuzz2-Node => node}/debugging/windbg.py    |   0
 {PyFuzz2-Node => node}/fuzzing/__init__.py    |   0
 .../fuzzing/bytemutation.py                   |   1 +
 {PyFuzz2-Node => node}/fuzzing/fuzzer.py      |   0
 {PyFuzz2-Node => node}/fuzzing/fuzzers.py     |   0
 {PyFuzz2-Node => node}/fuzzing/helper.py      |   0
 {PyFuzz2-Node => node}/fuzzing/html.py        |   0
 {PyFuzz2-Node => node}/fuzzing/javascript.py  |   6 +-
 .../fuzzing/jsfuzzer/JsAttrNodeMap.py         |   0
 .../fuzzing/jsfuzzer/JsDocument.py            |   0
 .../fuzzing/jsfuzzer/JsElement.py             |   0
 .../fuzzing/jsfuzzer/JsGlobal.py              |   0
 .../fuzzing/jsfuzzer/JsObject.py              |   0
 .../fuzzing/jsfuzzer}/__init__.py             |   0
 .../fuzzing/jsfuzzer/browserObjects.py        |   0
 .../fuzzing/jsfuzzer/cssProperties.py         |   0
 .../fuzzing/jsfuzzer/domObjects.py            |   0
 .../fuzzing/jsfuzzer/htmlObjects.py           |   0
 .../fuzzing/jsfuzzer/template.dat             |   0
 .../fuzzing/jsfuzzer/values.py                |   0
 {PyFuzz2-Node => node}/model/__init__.py      |   0
 {PyFuzz2-Node => node}/model/config.py        |   0
 {PyFuzz2-Node => node}/model/message_types.py |   0
 {PyFuzz2-Node => node}/node_config  - pdf.xml |   0
 .../node_config - ByteMut ex.xml              |   0
 {PyFuzz2-Node => node}/node_config.xml        |   0
 {PyFuzz2-Node => node}/pyfuzz2_node.py        |   0
 {PyFuzz2-Node => node}/testdbg.py             |   0
 {PyFuzz2-Node => node}/testjs.py              |   0
 .../web => node/worker}/__init__.py           |   0
 .../worker/debuggerworker.py                  |   0
 .../worker/listenerworker.py                  |   0
 {PyFuzz2-Node => node}/worker/reportworker.py |   0
 {PyFuzz2-Node => node}/worker/worker.py       |   0
 .../pyfuzz2_server.py => pyfuzz2_server.py    |   7 +-
 .../server_config.xml => server_config.xml    |   0
 {PyFuzz2-Server/worker => web}/__init__.py    |   0
 {PyFuzz2-Server/web => web}/html.py           |   0
 {PyFuzz2-Server/web => web}/main.py           |   2 +-
 {PyFuzz2-Server/web => web}/style.css         |   0
 worker/__init__.py                            |   1 +
 .../worker => worker}/beaconworker.py         |   5 +-
 .../worker => worker}/nodeclientworker.py     |   4 +-
 .../worker => worker}/reportworker.py         |   0
 {PyFuzz2-Server/worker => worker}/worker.py   |   0
 67 files changed, 28 insertions(+), 231 deletions(-)
 delete mode 100644 PyFuzz2-Server/node/config.py
 delete mode 100644 PyFuzz2-Server/node/node_config.xml
 delete mode 100644 PyFuzz2-Server/web/index.html
 rename PyFuzz2-Node/debugging/__init__.py => __init__.py (100%)
 rename {PyFuzz2-Server/communication => communication}/__init__.py (100%)
 rename {PyFuzz2-Server/communication => communication}/beaconserver.py (100%)
 rename {PyFuzz2-Server/communication => communication}/nodeclient.py (100%)
 rename {PyFuzz2-Server/communication => communication}/reportserver.py (100%)
 rename {PyFuzz2-Server/communication => communication}/webserver.py (100%)
 rename {PyFuzz2-Server/model => model}/__init__.py (100%)
 rename {PyFuzz2-Server/model => model}/config.py (100%)
 rename {PyFuzz2-Server/model => model}/message_types.py (100%)
 rename {PyFuzz2-Server/model => model}/node.py (100%)
 rename {PyFuzz2-Node/fuzzing/jsfuzzer => node}/__init__.py (100%)
 rename {PyFuzz2-Node => node}/communication/__init__.py (100%)
 rename {PyFuzz2-Node => node}/communication/beaconclient.py (100%)
 rename {PyFuzz2-Node => node}/communication/nodelistener.py (100%)
 rename {PyFuzz2-Node => node}/communication/reportclient.py (100%)
 rename {PyFuzz2-Node/worker => node/debugging}/__init__.py (100%)
 rename {PyFuzz2-Node => node}/debugging/msec/MSEC.dll (100%)
 rename {PyFuzz2-Node => node}/debugging/msec/MSEC.pdb (100%)
 rename {PyFuzz2-Node => node}/debugging/msec/license.txt (99%)
 rename {PyFuzz2-Node => node}/debugging/windbg.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/__init__.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/bytemutation.py (99%)
 rename {PyFuzz2-Node => node}/fuzzing/fuzzer.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/fuzzers.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/helper.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/html.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/javascript.py (99%)
 rename {PyFuzz2-Node => node}/fuzzing/jsfuzzer/JsAttrNodeMap.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/jsfuzzer/JsDocument.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/jsfuzzer/JsElement.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/jsfuzzer/JsGlobal.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/jsfuzzer/JsObject.py (100%)
 rename {PyFuzz2-Server/node => node/fuzzing/jsfuzzer}/__init__.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/jsfuzzer/browserObjects.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/jsfuzzer/cssProperties.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/jsfuzzer/domObjects.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/jsfuzzer/htmlObjects.py (100%)
 rename {PyFuzz2-Node => node}/fuzzing/jsfuzzer/template.dat (100%)
 rename {PyFuzz2-Node => node}/fuzzing/jsfuzzer/values.py (100%)
 rename {PyFuzz2-Node => node}/model/__init__.py (100%)
 rename {PyFuzz2-Node => node}/model/config.py (100%)
 rename {PyFuzz2-Node => node}/model/message_types.py (100%)
 rename {PyFuzz2-Node => node}/node_config  - pdf.xml (100%)
 rename {PyFuzz2-Node => node}/node_config - ByteMut ex.xml (100%)
 rename {PyFuzz2-Node => node}/node_config.xml (100%)
 rename {PyFuzz2-Node => node}/pyfuzz2_node.py (100%)
 rename {PyFuzz2-Node => node}/testdbg.py (100%)
 rename {PyFuzz2-Node => node}/testjs.py (100%)
 rename {PyFuzz2-Server/web => node/worker}/__init__.py (100%)
 rename {PyFuzz2-Node => node}/worker/debuggerworker.py (100%)
 rename {PyFuzz2-Node => node}/worker/listenerworker.py (100%)
 rename {PyFuzz2-Node => node}/worker/reportworker.py (100%)
 rename {PyFuzz2-Node => node}/worker/worker.py (100%)
 rename PyFuzz2-Server/pyfuzz2_server.py => pyfuzz2_server.py (98%)
 rename PyFuzz2-Server/server_config.xml => server_config.xml (100%)
 rename {PyFuzz2-Server/worker => web}/__init__.py (100%)
 rename {PyFuzz2-Server/web => web}/html.py (100%)
 rename {PyFuzz2-Server/web => web}/main.py (99%)
 rename {PyFuzz2-Server/web => web}/style.css (100%)
 create mode 100644 worker/__init__.py
 rename {PyFuzz2-Server/worker => worker}/beaconworker.py (98%)
 rename {PyFuzz2-Server/worker => worker}/nodeclientworker.py (99%)
 rename {PyFuzz2-Server/worker => worker}/reportworker.py (100%)
 rename {PyFuzz2-Server/worker => worker}/worker.py (100%)

diff --git a/PyFuzz2-Server/node/config.py b/PyFuzz2-Server/node/config.py
deleted file mode 100644
index b609f82..0000000
--- a/PyFuzz2-Server/node/config.py
+++ /dev/null
@@ -1,174 +0,0 @@
-__author__ = 'susperius'
-
-import xml.etree.ElementTree as ET
-import logging
-
-
-class NodeConfig:
-    def __init__(self, node_name="dummyNode", beacon_server="127.0.0.1", beacon_port="31337", report_server="127.0.0.1",
-                 report_port="32337", listener_port="32337", input_conf="node_config.xml"):
-        self._tree = ET.parse(input_conf)
-        self._root = self._tree.getroot()
-        self._beacon = self._root.find("beacon")
-        self._report = self._root.find("reporting")
-        self._listener = self._root.find("listener")
-        self._program = self._root.find("program")
-        self._fuzzer = self._root.find("fuzzer")
-        self.set_node_name(node_name)
-        self.set_beacon_server(beacon_server)
-        self.set_beacon_port(beacon_port)
-        self.set_report_server(report_server)
-        self.set_report_port(report_port)
-        self.set_listener_port(listener_port)
-
-    def set_node_name(self, name):
-        self._root.attrib['name'] = name
-
-    def set_beacon_port(self, port):
-        self._beacon.attrib['port'] = str(port)
-
-    def set_beacon_server(self, server):
-        self._beacon.attrib['server'] = server
-
-    def set_beacon_interval(self, interval):
-        self._beacon.attrib['interval'] = interval
-
-    def set_report_server(self, server):
-        self._report.attrib['server'] = server
-
-    def set_report_port(self, port):
-        self._report.attrib['port'] = str(port)
-
-    def set_listener_port(self, port):
-        self._listener.attrib['port'] = str(port)
-
-    def set_program_path(self, path):
-        self._program.attrib['path'] = path
-
-    def set_program_dbg_child(self, dbg_child):
-        self._program.attrib['dbg_child'] = dbg_child
-
-    def set_program_sleep_time(self, sleep_time):
-        self._program.attrib['sleep_time'] = sleep_time
-
-    def set_fuzzer(self, type, arg_dict):
-        self._fuzzer.attrib['type'] = type
-        for key in arg_dict.keys():
-            self._fuzzer.attrib[key] = arg_dict[key]
-
-    def dump(self):
-        return ET.tostring(self._root)
-
-
-class ConfigParser:
-    def __init__(self, config):
-        self._logger = logging.getLogger(__name__)
-        try:
-            self._root = ET.fromstring(config)
-            self._node_name = self._root.attrib['name']
-            self._node_mode = self._root.attrib['mode']
-            if self._node_mode == "net":
-                beacon = self._root.find("beacon")
-                reporting = self._root.find("reporting")
-                listener = self._root.find("listener")
-                self._beacon_server = beacon.attrib['server']
-                self._beacon_port = int(beacon.attrib['port'])
-                self._beacon_interval = int(beacon.attrib['interval'])
-                self._report_server = reporting.attrib['server']
-                self._report_port = reporting.attrib['port']
-                self._listener_port = int(listener.attrib['port'])
-            elif self._node_mode != "single":
-                raise ValueError("Only net and single are available modes for node!")
-            self._program_path = self._root.find("program").attrib['path']
-            self._program_dbg_child = bool(self._root.find("program").attrib['dbg_child'])
-            self._program_sleep_time = int(self._root.find("program").attrib['sleep_time'])
-            fuzzer = self._root.find("fuzzer")
-            self._fuzzer_type = fuzzer.attrib['type']
-            self._fuzz_config = []
-            if self._fuzzer_type == "bytemutation":
-                self._fuzz_config.append(("Fuzz File", fuzzer.attrib['fuzz_file']))
-                self._fuzz_config.append(("Min Change", int(fuzzer.attrib['min_change'])))
-                self._fuzz_config.append(("Max Change", int(fuzzer.attrib['max_change'])))
-                self._fuzz_config.append(("Seed",int(fuzzer.attrib['seed'])))
-            elif self._fuzzer_type == "js_fuzzer":
-                self._fuzz_config.append(("Starting Elements", int(fuzzer.attrib['starting_elements'])))
-                self._fuzz_config.append(("Total Operations", int(fuzzer.attrib['total_operations'])))
-                self._fuzz_config.append(("Browser", fuzzer.attrib['browser']))
-                self._fuzz_config.append(("Seed", int(fuzzer.attrib['seed'])))
-            else:
-                raise ValueError("Unsupported fuzzing type!")
-            self._fuzz_config.append(("File Type", fuzzer.attrib['file_type']))
-        except Exception as ex:
-            self._logger.error("General error occurred while parsing config: " + ex.message + str(ex.args))
-            quit()
-
-    @property
-    def node_name(self):
-        return self._node_name
-
-    @property
-    def node_mode(self):
-        return self._node_mode
-
-    @property
-    def beacon_config(self):
-        return self._beacon_server, self._beacon_port, self._beacon_interval if self._node_mode == "net" else None
-
-    @property
-    def report_config(self):
-        return self._report_server, self._report_port if self._node_mode == "net" else None
-
-    @property
-    def listener_config(self):
-        return self._listener_port if self._node_mode == "net" else None
-
-    @property
-    def program_path(self):
-        return self._program_path
-
-    @property
-    def dbg_child(self):
-        return self._program_dbg_child
-
-    @property
-    def sleep_time(self):
-        return self._program_sleep_time
-
-    @property
-    def fuzzer_type(self):
-        return self._fuzzer_type
-
-    @property
-    def fuzzer_config(self):
-        return self._fuzz_config
-
-    def dump_additional_information(self):
-        general_config = [("Beacon Server", self._beacon_server),
-                          ("Beacon Port", str(self._beacon_port)),
-                          ("Beacon Interval", str(self._beacon_interval)),
-                          ("Report Server", self._report_server),
-                          ("Report Port", str(self._report_port)),
-                          ("Program Path", self.program_path),
-                          ("Debug Child", str(self.dbg_child)),
-                          ("Sleep Time", str(self.sleep_time)),
-                          ("Fuzzer Type", self.fuzzer_type)]
-        fuzz_conf = [(x[0], str(x[1])) for x in self.fuzzer_config]
-        return general_config + fuzz_conf
-
-
-def create_config(data):
-    in_data = data.replace("+", " ").replace("%5C", "\\").replace("%3A", ":").split("&")
-    conf = {}
-    for elem in in_data:
-        value = elem.split("=")
-        conf[value[0].replace(" ", "_")] = value[1]
-    node_config = NodeConfig(conf.pop('node_name'), conf.pop('beacon_server'), conf.pop('beacon_port'),
-                             conf.pop('report_server'), conf.pop('report_port'), conf.pop('listener_port'),
-                             "node/node_config.xml")
-
-    node_config.set_beacon_interval(conf.pop('beacon_interval'))
-    node_config.set_program_path(conf.pop('program_path'))
-    node_config.set_program_dbg_child(conf.pop('debug_child'))
-    node_config.set_program_sleep_time(conf.pop('sleep_time'))
-    node_config.set_fuzzer(conf.pop('fuzzer_type'), conf)
-    return node_config.dump()
\ No newline at end of file
diff --git a/PyFuzz2-Server/node/node_config.xml b/PyFuzz2-Server/node/node_config.xml
deleted file mode 100644
index 96666ca..0000000
--- a/PyFuzz2-Server/node/node_config.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<PyFuzz2Node name="DUMMY" mode="net">
-    <beacon server="" port="0" interval="0"/>
-    <reporting server="" port="0"/>
-    <listener port="0"/>
-    <program path="" dbg_child="False" sleep_time="0"/>
-    <fuzzer type=""/>
-</PyFuzz2Node>
\ No newline at end of file
diff --git a/PyFuzz2-Server/web/index.html b/PyFuzz2-Server/web/index.html
deleted file mode 100644
index bd18d09..0000000
--- a/PyFuzz2-Server/web/index.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head lang="en">
-    <meta charset="UTF-8">
-    <link rel="stylesheet" href="style.css">
-    <title>PyFuzz 2</title>
-</head>
-<body>
-    <div id="header">
-        <h1>PyFuzz 2</h1>
-    </div>
-    <div id="nav">
-        <li class="active"><a href='index.py?func=home'><span>Overview</span></a></li>
-        <li class="active"><a href='index.py?func=info'><span>Info</span></a></li>
-    </div>
-    <div id="section">
-        <h2>SECTION_TITLE</h2>
-
-        REPLACE_ME<br>
-    </div>
-
-<div id="footer">
-    susperius@gmail.com 2015
-</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/PyFuzz2-Node/debugging/__init__.py b/__init__.py
similarity index 100%
rename from PyFuzz2-Node/debugging/__init__.py
rename to __init__.py
diff --git a/PyFuzz2-Server/communication/__init__.py b/communication/__init__.py
similarity index 100%
rename from PyFuzz2-Server/communication/__init__.py
rename to communication/__init__.py
diff --git a/PyFuzz2-Server/communication/beaconserver.py b/communication/beaconserver.py
similarity index 100%
rename from PyFuzz2-Server/communication/beaconserver.py
rename to communication/beaconserver.py
diff --git a/PyFuzz2-Server/communication/nodeclient.py b/communication/nodeclient.py
similarity index 100%
rename from PyFuzz2-Server/communication/nodeclient.py
rename to communication/nodeclient.py
diff --git a/PyFuzz2-Server/communication/reportserver.py b/communication/reportserver.py
similarity index 100%
rename from PyFuzz2-Server/communication/reportserver.py
rename to communication/reportserver.py
diff --git a/PyFuzz2-Server/communication/webserver.py b/communication/webserver.py
similarity index 100%
rename from PyFuzz2-Server/communication/webserver.py
rename to communication/webserver.py
diff --git a/PyFuzz2-Server/model/__init__.py b/model/__init__.py
similarity index 100%
rename from PyFuzz2-Server/model/__init__.py
rename to model/__init__.py
diff --git a/PyFuzz2-Server/model/config.py b/model/config.py
similarity index 100%
rename from PyFuzz2-Server/model/config.py
rename to model/config.py
diff --git a/PyFuzz2-Server/model/message_types.py b/model/message_types.py
similarity index 100%
rename from PyFuzz2-Server/model/message_types.py
rename to model/message_types.py
diff --git a/PyFuzz2-Server/model/node.py b/model/node.py
similarity index 100%
rename from PyFuzz2-Server/model/node.py
rename to model/node.py
diff --git a/PyFuzz2-Node/fuzzing/jsfuzzer/__init__.py b/node/__init__.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/jsfuzzer/__init__.py
rename to node/__init__.py
diff --git a/PyFuzz2-Node/communication/__init__.py b/node/communication/__init__.py
similarity index 100%
rename from PyFuzz2-Node/communication/__init__.py
rename to node/communication/__init__.py
diff --git a/PyFuzz2-Node/communication/beaconclient.py b/node/communication/beaconclient.py
similarity index 100%
rename from PyFuzz2-Node/communication/beaconclient.py
rename to node/communication/beaconclient.py
diff --git a/PyFuzz2-Node/communication/nodelistener.py b/node/communication/nodelistener.py
similarity index 100%
rename from PyFuzz2-Node/communication/nodelistener.py
rename to node/communication/nodelistener.py
diff --git a/PyFuzz2-Node/communication/reportclient.py b/node/communication/reportclient.py
similarity index 100%
rename from PyFuzz2-Node/communication/reportclient.py
rename to node/communication/reportclient.py
diff --git a/PyFuzz2-Node/worker/__init__.py b/node/debugging/__init__.py
similarity index 100%
rename from PyFuzz2-Node/worker/__init__.py
rename to node/debugging/__init__.py
diff --git a/PyFuzz2-Node/debugging/msec/MSEC.dll b/node/debugging/msec/MSEC.dll
similarity index 100%
rename from PyFuzz2-Node/debugging/msec/MSEC.dll
rename to node/debugging/msec/MSEC.dll
diff --git a/PyFuzz2-Node/debugging/msec/MSEC.pdb b/node/debugging/msec/MSEC.pdb
similarity index 100%
rename from PyFuzz2-Node/debugging/msec/MSEC.pdb
rename to node/debugging/msec/MSEC.pdb
diff --git a/PyFuzz2-Node/debugging/msec/license.txt b/node/debugging/msec/license.txt
similarity index 99%
rename from PyFuzz2-Node/debugging/msec/license.txt
rename to node/debugging/msec/license.txt
index d8c7dab..0c6aa3b 100755
--- a/PyFuzz2-Node/debugging/msec/license.txt
+++ b/node/debugging/msec/license.txt
@@ -1,14 +1,14 @@
-Microsoft Public License (Ms-PL)
-This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
-
-Definitions
-The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor's patent claims that read directly on its contribution.
-Grant of Rights
-(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
-(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
-Conditions and Limitations
-(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks. 
-(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically. 
-(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. 
-(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. 
+Microsoft Public License (Ms-PL)
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+Definitions
+The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+Grant of Rights
+(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+Conditions and Limitations
+(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks. 
+(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically. 
+(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. 
+(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. 
 (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
\ No newline at end of file
diff --git a/PyFuzz2-Node/debugging/windbg.py b/node/debugging/windbg.py
similarity index 100%
rename from PyFuzz2-Node/debugging/windbg.py
rename to node/debugging/windbg.py
diff --git a/PyFuzz2-Node/fuzzing/__init__.py b/node/fuzzing/__init__.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/__init__.py
rename to node/fuzzing/__init__.py
diff --git a/PyFuzz2-Node/fuzzing/bytemutation.py b/node/fuzzing/bytemutation.py
similarity index 99%
rename from PyFuzz2-Node/fuzzing/bytemutation.py
rename to node/fuzzing/bytemutation.py
index d9eb77d..4c5bd1d 100644
--- a/PyFuzz2-Node/fuzzing/bytemutation.py
+++ b/node/fuzzing/bytemutation.py
@@ -1,6 +1,7 @@
 __author__ = 'susperius'
 
 import random
+
 import helper
 import fuzzer
 
diff --git a/PyFuzz2-Node/fuzzing/fuzzer.py b/node/fuzzing/fuzzer.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/fuzzer.py
rename to node/fuzzing/fuzzer.py
diff --git a/PyFuzz2-Node/fuzzing/fuzzers.py b/node/fuzzing/fuzzers.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/fuzzers.py
rename to node/fuzzing/fuzzers.py
diff --git a/PyFuzz2-Node/fuzzing/helper.py b/node/fuzzing/helper.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/helper.py
rename to node/fuzzing/helper.py
diff --git a/PyFuzz2-Node/fuzzing/html.py b/node/fuzzing/html.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/html.py
rename to node/fuzzing/html.py
diff --git a/PyFuzz2-Node/fuzzing/javascript.py b/node/fuzzing/javascript.py
similarity index 99%
rename from PyFuzz2-Node/fuzzing/javascript.py
rename to node/fuzzing/javascript.py
index 9da4199..9f4830f 100644
--- a/PyFuzz2-Node/fuzzing/javascript.py
+++ b/node/fuzzing/javascript.py
@@ -1,18 +1,16 @@
 __author__ = 'susperius'
 
+import random
+
 from jsfuzzer.JsDocument import *
 from jsfuzzer.JsElement import *
-from jsfuzzer.JsAttrNodeMap import *
 from jsfuzzer.JsGlobal import JsGlobal
 from jsfuzzer.domObjects import *
 from jsfuzzer.htmlObjects import *
-from jsfuzzer.values import *
 from jsfuzzer.browserObjects import *
 from html import HtmlFuzzer
 from jsfuzzer.values import FuzzValues
 import fuzzer
-import random
-import os
 
 TEMPLATE_FILE = "fuzzing/jsfuzzer/template.dat"
 
diff --git a/PyFuzz2-Node/fuzzing/jsfuzzer/JsAttrNodeMap.py b/node/fuzzing/jsfuzzer/JsAttrNodeMap.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/jsfuzzer/JsAttrNodeMap.py
rename to node/fuzzing/jsfuzzer/JsAttrNodeMap.py
diff --git a/PyFuzz2-Node/fuzzing/jsfuzzer/JsDocument.py b/node/fuzzing/jsfuzzer/JsDocument.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/jsfuzzer/JsDocument.py
rename to node/fuzzing/jsfuzzer/JsDocument.py
diff --git a/PyFuzz2-Node/fuzzing/jsfuzzer/JsElement.py b/node/fuzzing/jsfuzzer/JsElement.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/jsfuzzer/JsElement.py
rename to node/fuzzing/jsfuzzer/JsElement.py
diff --git a/PyFuzz2-Node/fuzzing/jsfuzzer/JsGlobal.py b/node/fuzzing/jsfuzzer/JsGlobal.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/jsfuzzer/JsGlobal.py
rename to node/fuzzing/jsfuzzer/JsGlobal.py
diff --git a/PyFuzz2-Node/fuzzing/jsfuzzer/JsObject.py b/node/fuzzing/jsfuzzer/JsObject.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/jsfuzzer/JsObject.py
rename to node/fuzzing/jsfuzzer/JsObject.py
diff --git a/PyFuzz2-Server/node/__init__.py b/node/fuzzing/jsfuzzer/__init__.py
similarity index 100%
rename from PyFuzz2-Server/node/__init__.py
rename to node/fuzzing/jsfuzzer/__init__.py
diff --git a/PyFuzz2-Node/fuzzing/jsfuzzer/browserObjects.py b/node/fuzzing/jsfuzzer/browserObjects.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/jsfuzzer/browserObjects.py
rename to node/fuzzing/jsfuzzer/browserObjects.py
diff --git a/PyFuzz2-Node/fuzzing/jsfuzzer/cssProperties.py b/node/fuzzing/jsfuzzer/cssProperties.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/jsfuzzer/cssProperties.py
rename to node/fuzzing/jsfuzzer/cssProperties.py
diff --git a/PyFuzz2-Node/fuzzing/jsfuzzer/domObjects.py b/node/fuzzing/jsfuzzer/domObjects.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/jsfuzzer/domObjects.py
rename to node/fuzzing/jsfuzzer/domObjects.py
diff --git a/PyFuzz2-Node/fuzzing/jsfuzzer/htmlObjects.py b/node/fuzzing/jsfuzzer/htmlObjects.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/jsfuzzer/htmlObjects.py
rename to node/fuzzing/jsfuzzer/htmlObjects.py
diff --git a/PyFuzz2-Node/fuzzing/jsfuzzer/template.dat b/node/fuzzing/jsfuzzer/template.dat
similarity index 100%
rename from PyFuzz2-Node/fuzzing/jsfuzzer/template.dat
rename to node/fuzzing/jsfuzzer/template.dat
diff --git a/PyFuzz2-Node/fuzzing/jsfuzzer/values.py b/node/fuzzing/jsfuzzer/values.py
similarity index 100%
rename from PyFuzz2-Node/fuzzing/jsfuzzer/values.py
rename to node/fuzzing/jsfuzzer/values.py
diff --git a/PyFuzz2-Node/model/__init__.py b/node/model/__init__.py
similarity index 100%
rename from PyFuzz2-Node/model/__init__.py
rename to node/model/__init__.py
diff --git a/PyFuzz2-Node/model/config.py b/node/model/config.py
similarity index 100%
rename from PyFuzz2-Node/model/config.py
rename to node/model/config.py
diff --git a/PyFuzz2-Node/model/message_types.py b/node/model/message_types.py
similarity index 100%
rename from PyFuzz2-Node/model/message_types.py
rename to node/model/message_types.py
diff --git a/PyFuzz2-Node/node_config  - pdf.xml b/node/node_config  - pdf.xml
similarity index 100%
rename from PyFuzz2-Node/node_config  - pdf.xml
rename to node/node_config  - pdf.xml
diff --git a/PyFuzz2-Node/node_config - ByteMut ex.xml b/node/node_config - ByteMut ex.xml
similarity index 100%
rename from PyFuzz2-Node/node_config - ByteMut ex.xml
rename to node/node_config - ByteMut ex.xml
diff --git a/PyFuzz2-Node/node_config.xml b/node/node_config.xml
similarity index 100%
rename from PyFuzz2-Node/node_config.xml
rename to node/node_config.xml
diff --git a/PyFuzz2-Node/pyfuzz2_node.py b/node/pyfuzz2_node.py
similarity index 100%
rename from PyFuzz2-Node/pyfuzz2_node.py
rename to node/pyfuzz2_node.py
diff --git a/PyFuzz2-Node/testdbg.py b/node/testdbg.py
similarity index 100%
rename from PyFuzz2-Node/testdbg.py
rename to node/testdbg.py
diff --git a/PyFuzz2-Node/testjs.py b/node/testjs.py
similarity index 100%
rename from PyFuzz2-Node/testjs.py
rename to node/testjs.py
diff --git a/PyFuzz2-Server/web/__init__.py b/node/worker/__init__.py
similarity index 100%
rename from PyFuzz2-Server/web/__init__.py
rename to node/worker/__init__.py
diff --git a/PyFuzz2-Node/worker/debuggerworker.py b/node/worker/debuggerworker.py
similarity index 100%
rename from PyFuzz2-Node/worker/debuggerworker.py
rename to node/worker/debuggerworker.py
diff --git a/PyFuzz2-Node/worker/listenerworker.py b/node/worker/listenerworker.py
similarity index 100%
rename from PyFuzz2-Node/worker/listenerworker.py
rename to node/worker/listenerworker.py
diff --git a/PyFuzz2-Node/worker/reportworker.py b/node/worker/reportworker.py
similarity index 100%
rename from PyFuzz2-Node/worker/reportworker.py
rename to node/worker/reportworker.py
diff --git a/PyFuzz2-Node/worker/worker.py b/node/worker/worker.py
similarity index 100%
rename from PyFuzz2-Node/worker/worker.py
rename to node/worker/worker.py
diff --git a/PyFuzz2-Server/pyfuzz2_server.py b/pyfuzz2_server.py
similarity index 98%
rename from PyFuzz2-Server/pyfuzz2_server.py
rename to pyfuzz2_server.py
index 2bd0af9..ab76803 100644
--- a/PyFuzz2-Server/pyfuzz2_server.py
+++ b/pyfuzz2_server.py
@@ -1,10 +1,13 @@
 __author__ = 'susperius'
 
 import logging
+from urlparse import parse_qs
+
 import gevent
 import gevent.monkey
-import node.config
 from gevent.queue import Queue
+
+import node.model.config
 from communication.beaconserver import BeaconServer
 from communication.reportserver import ReportServer
 from communication.webserver import WebServer
@@ -13,8 +16,6 @@
 from worker.reportworker import ReportWorker
 from worker.nodeclientworker import NodeClientWorker
 from web.main import WebSite
-from urlparse import parse_qs
-import model.message_types as message_types
 
 gevent.monkey.patch_all()
 
diff --git a/PyFuzz2-Server/server_config.xml b/server_config.xml
similarity index 100%
rename from PyFuzz2-Server/server_config.xml
rename to server_config.xml
diff --git a/PyFuzz2-Server/worker/__init__.py b/web/__init__.py
similarity index 100%
rename from PyFuzz2-Server/worker/__init__.py
rename to web/__init__.py
diff --git a/PyFuzz2-Server/web/html.py b/web/html.py
similarity index 100%
rename from PyFuzz2-Server/web/html.py
rename to web/html.py
diff --git a/PyFuzz2-Server/web/main.py b/web/main.py
similarity index 99%
rename from PyFuzz2-Server/web/main.py
rename to web/main.py
index d954731..9ba822a 100644
--- a/PyFuzz2-Server/web/main.py
+++ b/web/main.py
@@ -1,6 +1,6 @@
 __author__ = 'susperius'
 import html
-from node.config import ConfigParser
+from node.model.config import ConfigParser
 
 class WebSite:
     def __init__(self):
diff --git a/PyFuzz2-Server/web/style.css b/web/style.css
similarity index 100%
rename from PyFuzz2-Server/web/style.css
rename to web/style.css
diff --git a/worker/__init__.py b/worker/__init__.py
new file mode 100644
index 0000000..53d2ec2
--- /dev/null
+++ b/worker/__init__.py
@@ -0,0 +1 @@
+__author__ = 'susperius'
diff --git a/PyFuzz2-Server/worker/beaconworker.py b/worker/beaconworker.py
similarity index 98%
rename from PyFuzz2-Server/worker/beaconworker.py
rename to worker/beaconworker.py
index 441e0b0..47e7ff4 100644
--- a/PyFuzz2-Server/worker/beaconworker.py
+++ b/worker/beaconworker.py
@@ -1,9 +1,10 @@
 __author__ = 'susperius'
 
-import gevent
 import logging
 import pickle
-from gevent.queue import Queue
+
+import gevent
+
 from model.node import PyFuzz2Node
 
 
diff --git a/PyFuzz2-Server/worker/nodeclientworker.py b/worker/nodeclientworker.py
similarity index 99%
rename from PyFuzz2-Server/worker/nodeclientworker.py
rename to worker/nodeclientworker.py
index 3dd225a..cdf37d5 100644
--- a/PyFuzz2-Server/worker/nodeclientworker.py
+++ b/worker/nodeclientworker.py
@@ -1,8 +1,10 @@
 __author__ = 'susperius'
 
-import gevent
 import logging
 import pickle
+
+import gevent
+
 from communication.nodeclient import NodeClient
 from worker import Worker
 
diff --git a/PyFuzz2-Server/worker/reportworker.py b/worker/reportworker.py
similarity index 100%
rename from PyFuzz2-Server/worker/reportworker.py
rename to worker/reportworker.py
diff --git a/PyFuzz2-Server/worker/worker.py b/worker/worker.py
similarity index 100%
rename from PyFuzz2-Server/worker/worker.py
rename to worker/worker.py