diff --git a/.gradle/4.2/fileChanges/last-build.bin b/.gradle/4.2/fileChanges/last-build.bin new file mode 100644 index 00000000..f76dd238 Binary files /dev/null and b/.gradle/4.2/fileChanges/last-build.bin differ diff --git a/.gradle/4.2/fileContent/annotation-processors.bin b/.gradle/4.2/fileContent/annotation-processors.bin new file mode 100644 index 00000000..b82504e0 Binary files /dev/null and b/.gradle/4.2/fileContent/annotation-processors.bin differ diff --git a/.gradle/4.2/fileContent/fileContent.lock b/.gradle/4.2/fileContent/fileContent.lock new file mode 100644 index 00000000..3b5a8344 Binary files /dev/null and b/.gradle/4.2/fileContent/fileContent.lock differ diff --git a/.gradle/4.2/fileHashes/fileHashes.bin b/.gradle/4.2/fileHashes/fileHashes.bin new file mode 100644 index 00000000..74758369 Binary files /dev/null and b/.gradle/4.2/fileHashes/fileHashes.bin differ diff --git a/.gradle/4.2/fileHashes/fileHashes.lock b/.gradle/4.2/fileHashes/fileHashes.lock new file mode 100644 index 00000000..4e613f91 Binary files /dev/null and b/.gradle/4.2/fileHashes/fileHashes.lock differ diff --git a/.gradle/4.2/fileHashes/resourceHashesCache.bin b/.gradle/4.2/fileHashes/resourceHashesCache.bin new file mode 100644 index 00000000..6b8ae15d Binary files /dev/null and b/.gradle/4.2/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/4.2/taskHistory/fileSnapshots.bin b/.gradle/4.2/taskHistory/fileSnapshots.bin new file mode 100644 index 00000000..6fe020b9 Binary files /dev/null and b/.gradle/4.2/taskHistory/fileSnapshots.bin differ diff --git a/.gradle/4.2/taskHistory/taskHistory.bin b/.gradle/4.2/taskHistory/taskHistory.bin new file mode 100644 index 00000000..a7493bc2 Binary files /dev/null and b/.gradle/4.2/taskHistory/taskHistory.bin differ diff --git a/.gradle/4.2/taskHistory/taskHistory.lock b/.gradle/4.2/taskHistory/taskHistory.lock new file mode 100644 index 00000000..e0280197 Binary files /dev/null and b/.gradle/4.2/taskHistory/taskHistory.lock differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock new file mode 100644 index 00000000..f8c272b0 Binary files /dev/null and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 00000000..6c43378c --- /dev/null +++ b/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Sun Dec 03 08:43:50 CST 2023 +gradle.version=4.2 diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin new file mode 100644 index 00000000..58653840 Binary files /dev/null and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..26d33521 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 00000000..61a9130c --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 00000000..f9163b40 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 00000000..c7747af7 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..ffcc3246 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/build/classes/java/main/cic/cs/unb/ca/LRUCache.class b/build/classes/java/main/cic/cs/unb/ca/LRUCache.class new file mode 100644 index 00000000..4060b286 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/LRUCache.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/Sys.class b/build/classes/java/main/cic/cs/unb/ca/Sys.class new file mode 100644 index 00000000..d250aa1e Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/Sys.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/FlowMgr.class b/build/classes/java/main/cic/cs/unb/ca/flow/FlowMgr.class new file mode 100644 index 00000000..d09619c8 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/FlowMgr.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/ChartContainer.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/ChartContainer.class new file mode 100644 index 00000000..528d5e61 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/ChartContainer.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartInfo.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartInfo.class new file mode 100644 index 00000000..f92ac835 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartInfo.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartPane$1.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartPane$1.class new file mode 100644 index 00000000..9066e1d1 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartPane$1.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartPane.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartPane.class new file mode 100644 index 00000000..ed9a625d Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartPane.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory$BuildIPChartWorker.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory$BuildIPChartWorker.class new file mode 100644 index 00000000..ea07bdb0 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory$BuildIPChartWorker.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory$BuildPortChartWorker.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory$BuildPortChartWorker.class new file mode 100644 index 00000000..97cd540b Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory$BuildPortChartWorker.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory$BuildProtocolChartWorker.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory$BuildProtocolChartWorker.class new file mode 100644 index 00000000..f05986c3 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory$BuildProtocolChartWorker.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory$FlowChartSwingWorker.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory$FlowChartSwingWorker.class new file mode 100644 index 00000000..4948c4d9 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory$FlowChartSwingWorker.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory.class new file mode 100644 index 00000000..a07f1d91 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowChartWorkerFactory.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowFileInfo.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowFileInfo.class new file mode 100644 index 00000000..e059c1c9 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowFileInfo.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowMonitorPane$1.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowMonitorPane$1.class new file mode 100644 index 00000000..f9ac0604 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowMonitorPane$1.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowMonitorPane.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowMonitorPane.class new file mode 100644 index 00000000..25368434 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowMonitorPane.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowOfflinePane$1.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowOfflinePane$1.class new file mode 100644 index 00000000..71f35fa2 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowOfflinePane$1.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowOfflinePane.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowOfflinePane.class new file mode 100644 index 00000000..a71b518d Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowOfflinePane.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowVisualPane$1.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowVisualPane$1.class new file mode 100644 index 00000000..99c98d94 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowVisualPane$1.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowVisualPane$CreateXMeansWorker.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowVisualPane$CreateXMeansWorker.class new file mode 100644 index 00000000..baac61fa Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowVisualPane$CreateXMeansWorker.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowVisualPane.class b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowVisualPane.class new file mode 100644 index 00000000..1afbc5d3 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/flow/ui/FlowVisualPane.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/guava/Event/FlowVisualEvent.class b/build/classes/java/main/cic/cs/unb/ca/guava/Event/FlowVisualEvent.class new file mode 100644 index 00000000..b22d7655 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/guava/Event/FlowVisualEvent.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/guava/GuavaMgr.class b/build/classes/java/main/cic/cs/unb/ca/guava/GuavaMgr.class new file mode 100644 index 00000000..ce0f34c3 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/guava/GuavaMgr.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/ifm/App.class b/build/classes/java/main/cic/cs/unb/ca/ifm/App.class new file mode 100644 index 00000000..e5ca2d32 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/ifm/App.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/ifm/Cmd$FlowListener.class b/build/classes/java/main/cic/cs/unb/ca/ifm/Cmd$FlowListener.class new file mode 100644 index 00000000..088469d7 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/ifm/Cmd$FlowListener.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/ifm/Cmd.class b/build/classes/java/main/cic/cs/unb/ca/ifm/Cmd.class new file mode 100644 index 00000000..85bf9348 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/ifm/Cmd.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/ifm/ui/AboutDialog.class b/build/classes/java/main/cic/cs/unb/ca/ifm/ui/AboutDialog.class new file mode 100644 index 00000000..78c1cc79 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/ifm/ui/AboutDialog.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/ifm/ui/MainFrame$1.class b/build/classes/java/main/cic/cs/unb/ca/ifm/ui/MainFrame$1.class new file mode 100644 index 00000000..b7451955 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/ifm/ui/MainFrame$1.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/ifm/ui/MainFrame.class b/build/classes/java/main/cic/cs/unb/ca/ifm/ui/MainFrame.class new file mode 100644 index 00000000..cb999c30 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/ifm/ui/MainFrame.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/BasicFlow.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/BasicFlow.class new file mode 100644 index 00000000..9a939e52 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/BasicFlow.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/BasicPacketInfo.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/BasicPacketInfo.class new file mode 100644 index 00000000..d20c453b Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/BasicPacketInfo.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/DateFormatter.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/DateFormatter.class new file mode 100644 index 00000000..632810d9 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/DateFormatter.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/FlowFeature$1.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/FlowFeature$1.class new file mode 100644 index 00000000..42c3cc01 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/FlowFeature$1.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/FlowFeature.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/FlowFeature.class new file mode 100644 index 00000000..22b046d6 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/FlowFeature.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/FlowGenerator.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/FlowGenerator.class new file mode 100644 index 00000000..0f1e04db Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/FlowGenerator.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/IdGenerator.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/IdGenerator.class new file mode 100644 index 00000000..00306664 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/IdGenerator.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/MutableInt.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/MutableInt.class new file mode 100644 index 00000000..df849b17 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/MutableInt.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/PacketReader.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/PacketReader.class new file mode 100644 index 00000000..ac6d882d Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/PacketReader.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/PcapIfWrapper.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/PcapIfWrapper.class new file mode 100644 index 00000000..019ffa31 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/PcapIfWrapper.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/Protocol.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/Protocol.class new file mode 100644 index 00000000..eb824133 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/Protocol.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/Utils.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/Utils.class new file mode 100644 index 00000000..05af8225 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/Utils.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/FlowGenListener.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/FlowGenListener.class new file mode 100644 index 00000000..ae7844e3 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/FlowGenListener.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/InsertCsvRow.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/InsertCsvRow.class new file mode 100644 index 00000000..5bc763b8 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/InsertCsvRow.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/LoadPcapInterfaceWorker.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/LoadPcapInterfaceWorker.class new file mode 100644 index 00000000..8bc271ec Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/LoadPcapInterfaceWorker.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/PcapReader$FlowListener.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/PcapReader$FlowListener.class new file mode 100644 index 00000000..18d054cb Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/PcapReader$FlowListener.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/PcapReader.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/PcapReader.class new file mode 100644 index 00000000..8dd6aedb Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/PcapReader.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/ReadPcapFileWorker$FlowListener.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/ReadPcapFileWorker$FlowListener.class new file mode 100644 index 00000000..b3f93915 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/ReadPcapFileWorker$FlowListener.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/ReadPcapFileWorker.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/ReadPcapFileWorker.class new file mode 100644 index 00000000..071dc417 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/ReadPcapFileWorker.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/TrafficFlowWorker.class b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/TrafficFlowWorker.class new file mode 100644 index 00000000..aa52697f Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/jnetpcap/worker/TrafficFlowWorker.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/weka/ClusterWorker.class b/build/classes/java/main/cic/cs/unb/ca/weka/ClusterWorker.class new file mode 100644 index 00000000..cd57a0b2 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/weka/ClusterWorker.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/weka/DimenReduce.class b/build/classes/java/main/cic/cs/unb/ca/weka/DimenReduce.class new file mode 100644 index 00000000..39d87b78 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/weka/DimenReduce.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/weka/WekaFactory.class b/build/classes/java/main/cic/cs/unb/ca/weka/WekaFactory.class new file mode 100644 index 00000000..ac36decf Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/weka/WekaFactory.class differ diff --git a/build/classes/java/main/cic/cs/unb/ca/weka/WekaXMeans.class b/build/classes/java/main/cic/cs/unb/ca/weka/WekaXMeans.class new file mode 100644 index 00000000..986c7aa3 Binary files /dev/null and b/build/classes/java/main/cic/cs/unb/ca/weka/WekaXMeans.class differ diff --git a/build/classes/java/main/swing/common/CsvFileWrapper.class b/build/classes/java/main/swing/common/CsvFileWrapper.class new file mode 100644 index 00000000..3c7fc12d Binary files /dev/null and b/build/classes/java/main/swing/common/CsvFileWrapper.class differ diff --git a/build/classes/java/main/swing/common/CsvPickerPane$1.class b/build/classes/java/main/swing/common/CsvPickerPane$1.class new file mode 100644 index 00000000..5af5de0d Binary files /dev/null and b/build/classes/java/main/swing/common/CsvPickerPane$1.class differ diff --git a/build/classes/java/main/swing/common/CsvPickerPane$CsvSelect.class b/build/classes/java/main/swing/common/CsvPickerPane$CsvSelect.class new file mode 100644 index 00000000..21c671b2 Binary files /dev/null and b/build/classes/java/main/swing/common/CsvPickerPane$CsvSelect.class differ diff --git a/build/classes/java/main/swing/common/CsvPickerPane.class b/build/classes/java/main/swing/common/CsvPickerPane.class new file mode 100644 index 00000000..5d73f6ec Binary files /dev/null and b/build/classes/java/main/swing/common/CsvPickerPane.class differ diff --git a/build/classes/java/main/swing/common/InsertCsvRow.class b/build/classes/java/main/swing/common/InsertCsvRow.class new file mode 100644 index 00000000..9d05006c Binary files /dev/null and b/build/classes/java/main/swing/common/InsertCsvRow.class differ diff --git a/build/classes/java/main/swing/common/InsertTableRow.class b/build/classes/java/main/swing/common/InsertTableRow.class new file mode 100644 index 00000000..5708456e Binary files /dev/null and b/build/classes/java/main/swing/common/InsertTableRow.class differ diff --git a/build/classes/java/main/swing/common/JTable2CSVWorker.class b/build/classes/java/main/swing/common/JTable2CSVWorker.class new file mode 100644 index 00000000..9b886f0a Binary files /dev/null and b/build/classes/java/main/swing/common/JTable2CSVWorker.class differ diff --git a/build/classes/java/main/swing/common/PcapFileFilter.class b/build/classes/java/main/swing/common/PcapFileFilter.class new file mode 100644 index 00000000..18a9acc3 Binary files /dev/null and b/build/classes/java/main/swing/common/PcapFileFilter.class differ diff --git a/build/classes/java/main/swing/common/StatusBar$1.class b/build/classes/java/main/swing/common/StatusBar$1.class new file mode 100644 index 00000000..b6f27385 Binary files /dev/null and b/build/classes/java/main/swing/common/StatusBar$1.class differ diff --git a/build/classes/java/main/swing/common/StatusBar.class b/build/classes/java/main/swing/common/StatusBar.class new file mode 100644 index 00000000..654e5e5d Binary files /dev/null and b/build/classes/java/main/swing/common/StatusBar.class differ diff --git a/build/classes/java/main/swing/common/SwingUtils.class b/build/classes/java/main/swing/common/SwingUtils.class new file mode 100644 index 00000000..9dc46f85 Binary files /dev/null and b/build/classes/java/main/swing/common/SwingUtils.class differ diff --git a/build/classes/java/main/swing/common/TextFileFilter.class b/build/classes/java/main/swing/common/TextFileFilter.class new file mode 100644 index 00000000..96fba1a3 Binary files /dev/null and b/build/classes/java/main/swing/common/TextFileFilter.class differ diff --git a/build/distributions/CICFlowMeter-4.0.tar b/build/distributions/CICFlowMeter-4.0.tar new file mode 100644 index 00000000..e34e8973 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0.tar differ diff --git a/build/distributions/CICFlowMeter-4.0.zip b/build/distributions/CICFlowMeter-4.0.zip new file mode 100644 index 00000000..fb7d0471 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0.zip differ diff --git a/build/distributions/CICFlowMeter-4.0/LICENSE.txt b/build/distributions/CICFlowMeter-4.0/LICENSE.txt new file mode 100644 index 00000000..befceff6 --- /dev/null +++ b/build/distributions/CICFlowMeter-4.0/LICENSE.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016 + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (CICFlowMeter), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# For citation in your works and also understanding CICFlowMeter (formerly ISCXFlowMeter) completely, you can find below published papers: + +Arash Habibi Lashkari, Gerard Draper-Gil, Mohammad Saiful Islam Mamun and Ali A. Ghorbani, "Characterization of Tor Traffic Using Time Based Features", In the proceeding of the 3rd International Conference on Information System Security and Privacy, SCITEPRESS, Porto, Portugal, 2017 + +Gerard Drapper Gil, Arash Habibi Lashkari, Mohammad Mamun, Ali A. Ghorbani, "Characterization of Encrypted and VPN Traffic Using Time-Related Features", In Proceedings of the 2nd International Conference on Information Systems Security and Privacy(ICISSP 2016) , pages 407-414, Rome , Italy + +# Contributors: +Arash Habibi Lashkari: Researcher and Developer (Founder) +Gerard Drapper: Researcher and Developer (Co-funder) +muhammad saiful islam: Researcher and Developer (Co-funder) diff --git a/build/distributions/CICFlowMeter-4.0/README.md b/build/distributions/CICFlowMeter-4.0/README.md new file mode 100644 index 00000000..1fecdda8 --- /dev/null +++ b/build/distributions/CICFlowMeter-4.0/README.md @@ -0,0 +1,94 @@ +The CICFlowMeter is an open source tool that generates Biflows from pcap files, and extracts features from these flows. + +CICFlowMeter is a network traffic flow generator available from here . It can be used to generate bidirectional flows, where the first packet determines the forward (source to destination) and backward (destination to source) directions, hence the statistical time-related features can be calculated separately in the forward and backward directions. Additional functionalities include, selecting features from the list of existing features, adding new features, and controlling the duration of flow timeout. + +NOTE: TCP flows are usually terminated upon connection teardown (by FIN packet) while UDP flows are terminated by a flow timeout. The flow timeout value can be assigned arbitrarily by the individual scheme e.g., 600 seconds for both TCP and UDP. + +For citation in your works and also understanding CICFlowMeter (formerly ISCXFlowMeter) completely, you can find below published papers: + +Arash Habibi Lashkari, Gerard Draper-Gil, Mohammad Saiful Islam Mamun and Ali A. Ghorbani, "Characterization of Tor Traffic Using Time Based Features", In the proceeding of the 3rd International Conference on Information System Security and Privacy, SCITEPRESS, Porto, Portugal, 2017 + +Gerard Drapper Gil, Arash Habibi Lashkari, Mohammad Mamun, Ali A. Ghorbani, "Characterization of Encrypted and VPN Traffic Using Time-Related Features", In Proceedings of the 2nd International Conference on Information Systems Security and Privacy(ICISSP 2016) , pages 407-414, Rome , Italy + +-------------------------------------------------------------- +List of extracted features and descriptions: +Feature Name Description +Flow duration Duration of the flow in Microsecond +total Fwd Packet Total packets in the forward direction +total Bwd packets Total packets in the backward direction +total Length of Fwd Packet Total size of packet in forward direction +total Length of Bwd Packet Total size of packet in backward direction +Fwd Packet Length Min Minimum size of packet in forward direction +Fwd Packet Length Max Maximum size of packet in forward direction +Fwd Packet Length Mean Mean size of packet in forward direction +Fwd Packet Length Std Standard deviation size of packet in forward direction +Bwd Packet Length Min Minimum size of packet in backward direction +Bwd Packet Length Max Maximum size of packet in backward direction +Bwd Packet Length Mean Mean size of packet in backward direction +Bwd Packet Length Std Standard deviation size of packet in backward direction +Flow Bytes/s Number of flow bytes per second +Flow Packets/s Number of flow packets per second +Flow IAT Mean Mean time between two packets sent in the flow +Flow IAT Std Standard deviation time between two packets sent in the flow +Flow IAT Max Maximum time between two packets sent in the flow +Flow IAT Min Minimum time between two packets sent in the flow +Fwd IAT Min Minimum time between two packets sent in the forward direction +Fwd IAT Max Maximum time between two packets sent in the forward direction +Fwd IAT Mean Mean time between two packets sent in the forward direction +Fwd IAT Std Standard deviation time between two packets sent in the forward direction +Fwd IAT Total Total time between two packets sent in the forward direction +Bwd IAT Min Minimum time between two packets sent in the backward direction +Bwd IAT Max Maximum time between two packets sent in the backward direction +Bwd IAT Mean Mean time between two packets sent in the backward direction +Bwd IAT Std Standard deviation time between two packets sent in the backward direction +Bwd IAT Total Total time between two packets sent in the backward direction +Fwd PSH flags Number of times the PSH flag was set in packets travelling in the forward direction (0 for UDP) +Bwd PSH Flags Number of times the PSH flag was set in packets travelling in the backward direction (0 for UDP) +Fwd URG Flags Number of times the URG flag was set in packets travelling in the forward direction (0 for UDP) +Bwd URG Flags Number of times the URG flag was set in packets travelling in the backward direction (0 for UDP) +Fwd Header Length Total bytes used for headers in the forward direction +Bwd Header Length Total bytes used for headers in the backward direction +FWD Packets/s Number of forward packets per second +Bwd Packets/s Number of backward packets per second +Packet Length Min Minimum length of a packet +Packet Length Max Maximum length of a packet +Packet Length Mean Mean length of a packet +Packet Length Std Standard deviation length of a packet +Packet Length Variance Variance length of a packet +FIN Flag Count Number of packets with FIN +SYN Flag Count Number of packets with SYN +RST Flag Count Number of packets with RST +PSH Flag Count Number of packets with PUSH +ACK Flag Count Number of packets with ACK +URG Flag Count Number of packets with URG +CWR Flag Count Number of packets with CWR +ECE Flag Count Number of packets with ECE +down/Up Ratio Download and upload ratio +Average Packet Size Average size of packet +Fwd Segment Size Avg Average size observed in the forward direction +Bwd Segment Size Avg Average size observed in the backward direction +Fwd Bytes/Bulk Avg Average number of bytes bulk rate in the forward direction +Fwd Packet/Bulk Avg Average number of packets bulk rate in the forward direction +Fwd Bulk Rate Avg Average number of bulk rate in the forward direction +Bwd Bytes/Bulk Avg Average number of bytes bulk rate in the backward direction +Bwd Packet/Bulk Avg Average number of packets bulk rate in the backward direction +Bwd Bulk Rate Avg Average number of bulk rate in the backward direction +Subflow Fwd Packets The average number of packets in a sub flow in the forward direction +Subflow Fwd Bytes The average number of bytes in a sub flow in the forward direction +Subflow Bwd Packets The average number of packets in a sub flow in the backward direction +Subflow Bwd Bytes The average number of bytes in a sub flow in the backward direction +Fwd Init Win bytes The total number of bytes sent in initial window in the forward direction +Bwd Init Win bytes The total number of bytes sent in initial window in the backward direction +Fwd Act Data Pkts Count of packets with at least 1 byte of TCP data payload in the forward direction +Fwd Seg Size Min Minimum segment size observed in the forward direction +Active Min Minimum time a flow was active before becoming idle +Active Mean Mean time a flow was active before becoming idle +Active Max Maximum time a flow was active before becoming idle +Active Std Standard deviation time a flow was active before becoming idle +Idle Min Minimum time a flow was idle before becoming active +Idle Mean Mean time a flow was idle before becoming active +Idle Max Maximum time a flow was idle before becoming active +Idle Std Standard deviation time a flow was idle before becoming active + +-------------------------------------------------------------------------------------- + diff --git a/build/distributions/CICFlowMeter-4.0/bin/CICFlowMeter b/build/distributions/CICFlowMeter-4.0/bin/CICFlowMeter new file mode 100755 index 00000000..910b4ec9 --- /dev/null +++ b/build/distributions/CICFlowMeter-4.0/bin/CICFlowMeter @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## CICFlowMeter start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/.." >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="CICFlowMeter" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and CIC_FLOW_METER_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Djava.library.path=../lib/native"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/lib/CICFlowMeter-4.0.jar:$APP_HOME/lib/log4j-core-2.11.0.jar:$APP_HOME/lib/slf4j-log4j12-1.7.25.jar:$APP_HOME/lib/jnetpcap-1.4.1.jar:$APP_HOME/lib/junit-4.12.jar:$APP_HOME/lib/commons-lang3-3.6.jar:$APP_HOME/lib/commons-math3-3.5.jar:$APP_HOME/lib/commons-io-2.5.jar:$APP_HOME/lib/weka-stable-3.6.14.jar:$APP_HOME/lib/jfreechart-1.5.0.jar:$APP_HOME/lib/guava-23.6-jre.jar:$APP_HOME/lib/tika-core-1.17.jar:$APP_HOME/lib/log4j-api-2.11.0.jar:$APP_HOME/lib/slf4j-api-1.7.25.jar:$APP_HOME/lib/log4j-1.2.17.jar:$APP_HOME/lib/hamcrest-core-1.3.jar:$APP_HOME/lib/java-cup-0.11a.jar:$APP_HOME/lib/jsr305-1.3.9.jar:$APP_HOME/lib/checker-compat-qual-2.0.0.jar:$APP_HOME/lib/error_prone_annotations-2.1.3.jar:$APP_HOME/lib/j2objc-annotations-1.1.jar:$APP_HOME/lib/animal-sniffer-annotations-1.14.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $CIC_FLOW_METER_OPTS -classpath "\"$CLASSPATH\"" cic.cs.unb.ca.ifm.App "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/build/distributions/CICFlowMeter-4.0/bin/CICFlowMeter.bat b/build/distributions/CICFlowMeter-4.0/bin/CICFlowMeter.bat new file mode 100755 index 00000000..fb4042e7 --- /dev/null +++ b/build/distributions/CICFlowMeter-4.0/bin/CICFlowMeter.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem CICFlowMeter startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME%.. + +@rem Add default JVM options here. You can also use JAVA_OPTS and CIC_FLOW_METER_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Djava.library.path=../lib/native" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\lib\CICFlowMeter-4.0.jar;%APP_HOME%\lib\log4j-core-2.11.0.jar;%APP_HOME%\lib\slf4j-log4j12-1.7.25.jar;%APP_HOME%\lib\jnetpcap-1.4.1.jar;%APP_HOME%\lib\junit-4.12.jar;%APP_HOME%\lib\commons-lang3-3.6.jar;%APP_HOME%\lib\commons-math3-3.5.jar;%APP_HOME%\lib\commons-io-2.5.jar;%APP_HOME%\lib\weka-stable-3.6.14.jar;%APP_HOME%\lib\jfreechart-1.5.0.jar;%APP_HOME%\lib\guava-23.6-jre.jar;%APP_HOME%\lib\tika-core-1.17.jar;%APP_HOME%\lib\log4j-api-2.11.0.jar;%APP_HOME%\lib\slf4j-api-1.7.25.jar;%APP_HOME%\lib\log4j-1.2.17.jar;%APP_HOME%\lib\hamcrest-core-1.3.jar;%APP_HOME%\lib\java-cup-0.11a.jar;%APP_HOME%\lib\jsr305-1.3.9.jar;%APP_HOME%\lib\checker-compat-qual-2.0.0.jar;%APP_HOME%\lib\error_prone_annotations-2.1.3.jar;%APP_HOME%\lib\j2objc-annotations-1.1.jar;%APP_HOME%\lib\animal-sniffer-annotations-1.14.jar + +@rem Execute CICFlowMeter +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %CIC_FLOW_METER_OPTS% -classpath "%CLASSPATH%" cic.cs.unb.ca.ifm.App %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable CIC_FLOW_METER_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%CIC_FLOW_METER_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/build/distributions/CICFlowMeter-4.0/bin/cfm b/build/distributions/CICFlowMeter-4.0/bin/cfm new file mode 100755 index 00000000..79462442 --- /dev/null +++ b/build/distributions/CICFlowMeter-4.0/bin/cfm @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## cfm start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/.." >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="cfm" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and CFM_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Djava.library.path=../lib/native"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/lib/CICFlowMeter-4.0.jar:$APP_HOME/lib/log4j-core-2.11.0.jar:$APP_HOME/lib/slf4j-log4j12-1.7.25.jar:$APP_HOME/lib/jnetpcap-1.4.1.jar:$APP_HOME/lib/junit-4.12.jar:$APP_HOME/lib/commons-lang3-3.6.jar:$APP_HOME/lib/commons-math3-3.5.jar:$APP_HOME/lib/commons-io-2.5.jar:$APP_HOME/lib/weka-stable-3.6.14.jar:$APP_HOME/lib/jfreechart-1.5.0.jar:$APP_HOME/lib/guava-23.6-jre.jar:$APP_HOME/lib/tika-core-1.17.jar:$APP_HOME/lib/log4j-api-2.11.0.jar:$APP_HOME/lib/slf4j-api-1.7.25.jar:$APP_HOME/lib/log4j-1.2.17.jar:$APP_HOME/lib/hamcrest-core-1.3.jar:$APP_HOME/lib/java-cup-0.11a.jar:$APP_HOME/lib/jsr305-1.3.9.jar:$APP_HOME/lib/checker-compat-qual-2.0.0.jar:$APP_HOME/lib/error_prone_annotations-2.1.3.jar:$APP_HOME/lib/j2objc-annotations-1.1.jar:$APP_HOME/lib/animal-sniffer-annotations-1.14.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $CFM_OPTS -classpath "\"$CLASSPATH\"" cic.cs.unb.ca.ifm.Cmd "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/build/distributions/CICFlowMeter-4.0/bin/cfm.bat b/build/distributions/CICFlowMeter-4.0/bin/cfm.bat new file mode 100755 index 00000000..0b125ac3 --- /dev/null +++ b/build/distributions/CICFlowMeter-4.0/bin/cfm.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem cfm startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME%.. + +@rem Add default JVM options here. You can also use JAVA_OPTS and CFM_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Djava.library.path=../lib/native" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\lib\CICFlowMeter-4.0.jar;%APP_HOME%\lib\log4j-core-2.11.0.jar;%APP_HOME%\lib\slf4j-log4j12-1.7.25.jar;%APP_HOME%\lib\jnetpcap-1.4.1.jar;%APP_HOME%\lib\junit-4.12.jar;%APP_HOME%\lib\commons-lang3-3.6.jar;%APP_HOME%\lib\commons-math3-3.5.jar;%APP_HOME%\lib\commons-io-2.5.jar;%APP_HOME%\lib\weka-stable-3.6.14.jar;%APP_HOME%\lib\jfreechart-1.5.0.jar;%APP_HOME%\lib\guava-23.6-jre.jar;%APP_HOME%\lib\tika-core-1.17.jar;%APP_HOME%\lib\log4j-api-2.11.0.jar;%APP_HOME%\lib\slf4j-api-1.7.25.jar;%APP_HOME%\lib\log4j-1.2.17.jar;%APP_HOME%\lib\hamcrest-core-1.3.jar;%APP_HOME%\lib\java-cup-0.11a.jar;%APP_HOME%\lib\jsr305-1.3.9.jar;%APP_HOME%\lib\checker-compat-qual-2.0.0.jar;%APP_HOME%\lib\error_prone_annotations-2.1.3.jar;%APP_HOME%\lib\j2objc-annotations-1.1.jar;%APP_HOME%\lib\animal-sniffer-annotations-1.14.jar + +@rem Execute cfm +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %CFM_OPTS% -classpath "%CLASSPATH%" cic.cs.unb.ca.ifm.Cmd %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable CFM_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%CFM_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/build/distributions/CICFlowMeter-4.0/bin/data/daily/2023-12-03_Flow.csv b/build/distributions/CICFlowMeter-4.0/bin/data/daily/2023-12-03_Flow.csv new file mode 100644 index 00000000..7eb451ab --- /dev/null +++ b/build/distributions/CICFlowMeter-4.0/bin/data/daily/2023-12-03_Flow.csv @@ -0,0 +1,35 @@ +Flow ID,Src IP,Src Port,Dst IP,Dst Port,Protocol,Timestamp,Flow Duration,Tot Fwd Pkts,Tot Bwd Pkts,TotLen Fwd Pkts,TotLen Bwd Pkts,Fwd Pkt Len Max,Fwd Pkt Len Min,Fwd Pkt Len Mean,Fwd Pkt Len Std,Bwd Pkt Len Max,Bwd Pkt Len Min,Bwd Pkt Len Mean,Bwd Pkt Len Std,Flow Byts/s,Flow Pkts/s,Flow IAT Mean,Flow IAT Std,Flow IAT Max,Flow IAT Min,Fwd IAT Tot,Fwd IAT Mean,Fwd IAT Std,Fwd IAT Max,Fwd IAT Min,Bwd IAT Tot,Bwd IAT Mean,Bwd IAT Std,Bwd IAT Max,Bwd IAT Min,Fwd PSH Flags,Bwd PSH Flags,Fwd URG Flags,Bwd URG Flags,Fwd Header Len,Bwd Header Len,Fwd Pkts/s,Bwd Pkts/s,Pkt Len Min,Pkt Len Max,Pkt Len Mean,Pkt Len Std,Pkt Len Var,FIN Flag Cnt,SYN Flag Cnt,RST Flag Cnt,PSH Flag Cnt,ACK Flag Cnt,URG Flag Cnt,CWE Flag Count,ECE Flag Cnt,Down/Up Ratio,Pkt Size Avg,Fwd Seg Size Avg,Bwd Seg Size Avg,Fwd Byts/b Avg,Fwd Pkts/b Avg,Fwd Blk Rate Avg,Bwd Byts/b Avg,Bwd Pkts/b Avg,Bwd Blk Rate Avg,Subflow Fwd Pkts,Subflow Fwd Byts,Subflow Bwd Pkts,Subflow Bwd Byts,Init Fwd Win Byts,Init Bwd Win Byts,Fwd Act Data Pkts,Fwd Seg Size Min,Active Mean,Active Std,Active Max,Active Min,Idle Mean,Idle Std,Idle Max,Idle Min,Label +192.168.1.107-172.217.19.195-57170-443-6,192.168.1.107,57170,172.217.19.195,443,6,03/12/2023 09:36:12 AM,111283,2,1,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,26.958295516835452,55641.5,78647.95173747375,111254.0,29.0,111283.0,111283.0,0.0,111283.0,111283.0,0,0,0,0,0,0,0,0,0,60,40,17.972197011223635,8.986098505611817,0.0,0.0,0.0,0.0,0.0,0,2,1,0,1,0,0,0,0.0,0.0,0.0,0.0,0,0,0,0,0,0,0,0,0,0,64240,65535,0,20,0,0,0,0,0,0,0,0,NeedManualLabel +192.168.1.107-172.217.19.195-57192-443-6,192.168.1.107,57192,172.217.19.195,443,6,03/12/2023 09:36:12 AM,127873,2,1,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.460777490166027,63936.5,90377.43902379619,127843.0,30.0,127873.0,127873.0,0.0,127873.0,127873.0,0,0,0,0,0,0,0,0,0,60,40,15.64051832677735,7.820259163388675,0.0,0.0,0.0,0.0,0.0,0,2,1,0,1,0,0,0,0.0,0.0,0.0,0.0,0,0,0,0,0,0,0,0,0,0,64240,65535,0,20,0,0,0,0,0,0,0,0,NeedManualLabel +192.168.1.107-172.217.19.195-57202-443-6,192.168.1.107,57202,172.217.19.195,443,6,03/12/2023 09:36:12 AM,127363,2,1,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.554721543933482,63681.5,90045.09883663853,127353.0,10.0,127363.0,127363.0,0.0,127363.0,127363.0,0,0,0,0,0,0,0,0,0,60,40,15.703147695955654,7.851573847977827,0.0,0.0,0.0,0.0,0.0,0,2,1,0,1,0,0,0,0.0,0.0,0.0,0.0,0,0,0,0,0,0,0,0,0,0,64240,65535,0,20,0,0,0,0,0,0,0,0,NeedManualLabel +192.168.1.107-172.217.19.195-57178-443-6,192.168.1.107,57178,172.217.19.195,443,6,03/12/2023 09:36:12 AM,129020,2,1,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.25220895985119,64510.0,91213.94634593988,129008.0,12.0,129020.0,129020.0,0.0,129020.0,129020.0,0,0,0,0,0,0,0,0,0,60,40,15.501472639900792,7.750736319950396,0.0,0.0,0.0,0.0,0.0,0,2,1,0,1,0,0,0,0.0,0.0,0.0,0.0,0,0,0,0,0,0,0,0,0,0,64240,65535,0,20,0,0,0,0,0,0,0,0,NeedManualLabel +192.168.1.107-196.189.186.26-37516-443-6,192.168.1.107,37516,196.189.186.26,443,6,03/12/2023 09:36:24 AM,311403,17,19,2312.0,30075.0,1388.0,0.0,136.00000000000006,352.2990562008363,4164.0,0.0,1582.8947368421054,1104.9491136969382,104003.49386486322,115.60582267993566,8897.228571428574,20452.41281334295,74816.0,0.0,311403.0,19462.687499999996,28374.644020601092,78097.0,16.0,237020.0,13167.777777777777,25189.658402175697,79056.0,0.0,0,0,0,0,540,616,54.59163848774739,61.01418419218826,0.0,4164.0,875.3243243243246,1099.6605803118944,1209253.391891892,1,2,1,9,34,0,0,0,1.0,899.6388888888889,136.0,1582.8947368421052,0,0,0,32387,21,139131,0,0,0,0,64240,274,5,20,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,20,1,1,1388.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,6.94E7,99999.99999999999,20.0,0.0,20.0,20.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20,49999.99999999999,49999.99999999999,0.0,1388.0,925.3333333333333,801.3621736352006,642181.3333333334,0,0,1,0,1,0,0,0,1.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,33,2,1,4164.0,0.0,2776.0,1388.0,2082.0,981.4642122869279,0.0,0.0,0.0,0.0,1.2618181818181817E8,90909.0909090909,16.5,23.33452377915607,33.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0,0,0,0,1,0,0,0,64,20,60606.0606060606,30303.0303030303,0.0,2776.0,1735.0,1328.9088255657973,1765998.6666666667,0,0,1,1,2,0,0,0,0.0,2313.3333333333335,2082.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,1,32,0,0,0,0,0,0,0,0,NeedManualLabel +192.168.1.107-196.189.186.26-37516-443-6,192.168.1.107,37516,196.189.186.26,443,6,03/12/2023 09:36:25 AM,5234,2,1,0.0,1388.0,0.0,0.0,0.0,0.0,1388.0,1388.0,1388.0,0.0,265189.14787925105,573.175391669851,2617.0,3657.1562722968238,5203.0,31.0,5234.0,5234.0,0.0,5234.0,5234.0,0,0,0,0,0,0,0,0,0,40,32,382.11692777990066,191.05846388995033,0.0,1388.0,347.0,694.0,481636.0,0,0,2,0,1,0,0,0,0.0,462.6666666666667,0.0,1388.0,0,0,0,0,0,0,0,0,0,0,0,274,0,20,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,15,1,1,2776.0,0.0,2776.0,2776.0,2776.0,0.0,0.0,0.0,0.0,0.0,1.8506666666666666E8,133333.33333333334,15.0,0.0,15.0,15.0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,20,66666.66666666667,66666.66666666667,0.0,2776.0,1850.6666666666665,1602.7243472704013,2568725.3333333335,0,0,1,1,1,0,0,0,1.0,2776.0,2776.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,32,1,1,2776.0,0.0,2776.0,2776.0,2776.0,0.0,0.0,0.0,0.0,0.0,8.675E7,62500.0,32.0,0.0,32.0,32.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20,31250.0,31250.0,0.0,2776.0,1850.6666666666665,1602.7243472704013,2568725.3333333335,0,0,1,0,1,0,0,0,1.0,2776.0,2776.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,22,1,1,2776.0,0.0,2776.0,2776.0,2776.0,0.0,0.0,0.0,0.0,0.0,1.2618181818181819E8,90909.09090909091,22.0,0.0,22.0,22.0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,20,45454.545454545456,45454.545454545456,0.0,2776.0,1850.6666666666665,1602.7243472704013,2568725.3333333335,0,0,1,1,1,0,0,0,1.0,2776.0,2776.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,34,1,1,1388.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,4.08235294117647E7,58823.529411764706,34.0,0.0,34.0,34.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20,29411.764705882353,29411.764705882353,0.0,1388.0,925.3333333333333,801.3621736352006,642181.3333333334,0,0,1,0,1,0,0,0,1.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,17,1,1,1388.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,8.16470588235294E7,117647.05882352941,17.0,0.0,17.0,17.0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,20,58823.529411764706,58823.529411764706,0.0,1388.0,925.3333333333333,801.3621736352006,642181.3333333334,0,0,1,1,1,0,0,0,1.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,32,1,1,1388.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,4.3375E7,62500.0,32.0,0.0,32.0,32.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20,31250.0,31250.0,0.0,1388.0,925.3333333333333,801.3621736352006,642181.3333333334,0,0,1,0,1,0,0,0,1.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,12,1,1,1388.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,1.1566666666666666E8,166666.66666666666,12.0,0.0,12.0,12.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20,83333.33333333333,83333.33333333333,0.0,1388.0,925.3333333333333,801.3621736352006,642181.3333333334,0,0,1,0,1,0,0,0,1.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,28,1,1,2776.0,0.0,2776.0,2776.0,2776.0,0.0,0.0,0.0,0.0,0.0,9.914285714285715E7,71428.57142857143,28.0,0.0,28.0,28.0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,20,35714.28571428572,35714.28571428572,0.0,2776.0,1850.6666666666665,1602.7243472704013,2568725.3333333335,0,0,1,1,1,0,0,0,1.0,2776.0,2776.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,32,1,1,1388.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,4.3375E7,62500.0,32.0,0.0,32.0,32.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20,31250.0,31250.0,0.0,1388.0,925.3333333333333,801.3621736352006,642181.3333333334,0,0,1,0,1,0,0,0,1.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,12,1,1,1388.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,1.1566666666666666E8,166666.66666666666,12.0,0.0,12.0,12.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20,83333.33333333333,83333.33333333333,0.0,1388.0,925.3333333333333,801.3621736352006,642181.3333333334,0,0,1,0,1,0,0,0,1.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,22,1,1,1388.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,6.309090909090909E7,90909.09090909091,22.0,0.0,22.0,22.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20,45454.545454545456,45454.545454545456,0.0,1388.0,925.3333333333333,801.3621736352006,642181.3333333334,0,0,1,0,1,0,0,0,1.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,38,1,1,1388.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,3.652631578947368E7,52631.57894736842,38.0,0.0,38.0,38.0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,20,26315.78947368421,26315.78947368421,0.0,1388.0,925.3333333333333,801.3621736352006,642181.3333333334,0,0,1,1,1,0,0,0,1.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,23,1,1,4164.0,0.0,4164.0,4164.0,4164.0,0.0,0.0,0.0,0.0,0.0,1.8104347826086956E8,86956.52173913043,23.0,0.0,23.0,23.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20,43478.260869565216,43478.260869565216,0.0,4164.0,2776.0,2404.086520905602,5779632.0,0,0,1,0,1,0,0,0,1.0,4164.0,4164.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,30,1,1,1388.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,4.6266666666666664E7,66666.66666666667,30.0,0.0,30.0,30.0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,20,33333.333333333336,33333.333333333336,0.0,1388.0,925.3333333333333,801.3621736352006,642181.3333333334,0,0,1,1,1,0,0,0,1.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,13,1,1,1388.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,1.0676923076923078E8,153846.15384615384,13.0,0.0,13.0,13.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20,76923.07692307692,76923.07692307692,0.0,1388.0,925.3333333333333,801.3621736352006,642181.3333333334,0,0,1,0,1,0,0,0,1.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,14,1,1,2776.0,0.0,2776.0,2776.0,2776.0,0.0,0.0,0.0,0.0,0.0,1.982857142857143E8,142857.14285714287,14.0,0.0,14.0,14.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20,71428.57142857143,71428.57142857143,0.0,2776.0,1850.6666666666665,1602.7243472704013,2568725.3333333335,0,0,1,0,1,0,0,0,1.0,2776.0,2776.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,39,1,1,1388.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,3.558974358974359E7,51282.05128205128,39.0,0.0,39.0,39.0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,20,25641.02564102564,25641.02564102564,0.0,1388.0,925.3333333333333,801.3621736352006,642181.3333333334,0,0,1,1,1,0,0,0,1.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,14,1,1,1388.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,9.914285714285715E7,142857.14285714287,14.0,0.0,14.0,14.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20,71428.57142857143,71428.57142857143,0.0,1388.0,925.3333333333333,801.3621736352006,642181.3333333334,0,0,1,0,1,0,0,0,1.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,17,1,1,2776.0,0.0,2776.0,2776.0,2776.0,0.0,0.0,0.0,0.0,0.0,1.632941176470588E8,117647.05882352941,17.0,0.0,17.0,17.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20,58823.529411764706,58823.529411764706,0.0,2776.0,1850.6666666666665,1602.7243472704013,2568725.3333333335,0,0,1,0,1,0,0,0,1.0,2776.0,2776.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +196.189.186.26-192.168.1.107-443-37516-6,196.189.186.26,443,192.168.1.107,37516,6,03/12/2023 09:36:25 AM,24,1,1,1388.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,5.783333333333333E7,83333.33333333333,24.0,0.0,24.0,24.0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,20,41666.666666666664,41666.666666666664,0.0,1388.0,925.3333333333333,801.3621736352006,642181.3333333334,0,0,1,1,1,0,0,0,1.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,274,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +192.168.1.107-216.58.209.131-58764-443-6,192.168.1.107,58764,216.58.209.131,443,6,03/12/2023 09:36:28 AM,393927,5,3,517.0,1388.0,517.0,0.0,103.4,231.2094288734783,1388.0,0.0,462.6666666666667,801.3621736352006,4835.921376295608,20.308331239036672,56275.28571428571,66991.19855054167,166334.0,61.0,393927.0,98481.75,67924.22998398043,166334.0,4941.0,291524.0,145762.0,60249.740397780966,188365.0,103159.0,0,0,0,0,156,104,12.69270702439792,7.6156242146387525,0.0,1388.0,211.66666666666666,473.102525886303,223826.0,1,2,1,1,6,0,0,0,0.0,238.125,103.4,462.6666666666667,0,0,0,0,0,0,0,0,0,0,64240,261,1,20,0,0,0,0,0,0,0,0,NeedManualLabel +216.58.209.131-192.168.1.107-443-58764-6,216.58.209.131,443,192.168.1.107,58764,6,03/12/2023 09:36:29 AM,18,2,1,2776.0,0.0,1388.0,1388.0,1388.0,0.0,0.0,0.0,0.0,0.0,1.542222222222222E8,166666.66666666666,9.0,12.727922061357855,18.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0,0,0,0,1,0,0,0,64,20,111111.11111111111,55555.555555555555,0.0,1388.0,1041.0,694.0,481636.0,0,0,1,1,2,0,0,0,0.0,1388.0,1388.0,0.0,0,0,0,0,0,0,0,0,0,0,261,0,1,32,0,0,0,0,0,0,0,0,NeedManualLabel +192.168.1.107-216.58.209.131-58764-443-6,192.168.1.107,58764,216.58.209.131,443,6,03/12/2023 09:36:29 AM,69,2,1,0.0,158.0,0.0,0.0,0.0,0.0,158.0,158.0,158.0,0.0,2289855.072463768,43478.260869565216,34.5,37.476659402887016,61.0,8.0,69.0,69.0,0.0,69.0,69.0,0,0,0,0,0,0,0,0,0,40,32,28985.507246376812,14492.753623188406,0.0,158.0,39.5,79.0,6240.999999999999,0,0,2,1,1,0,0,0,0.0,52.666666666666664,0.0,158.0,0,0,0,0,0,0,0,0,0,0,0,261,0,20,0,0,0,0,0,0,0,0,NeedManualLabel +216.58.209.131-192.168.1.107-443-58764-6,216.58.209.131,443,192.168.1.107,58764,6,03/12/2023 09:36:29 AM,101,1,1,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,19801.980198019803,101.0,0.0,101.0,101.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,20,9900.990099009901,9900.990099009901,0.0,0.0,0.0,0.0,0.0,1,0,1,0,1,0,0,0,1.0,0.0,0.0,0.0,0,0,0,0,0,0,0,0,0,0,261,0,0,32,0,0,0,0,0,0,0,0,NeedManualLabel +192.168.1.107-216.58.209.131-44666-443-6,192.168.1.107,44666,216.58.209.131,443,6,03/12/2023 09:36:35 AM,1530323,14,11,792.0,4966.0,517.0,0.0,56.57142857142857,141.99822007861405,1388.0,0.0,451.45454545454544,627.7192626702423,3762.604365222244,16.336420481166392,63763.45833333333,137151.48288534966,505967.0,0.0,1530323.0,117717.15384615384,209113.4558693941,505998.0,34.0,1024321.0,102432.09999999998,144249.52994604714,367844.0,0.0,0,0,0,0,444,368,9.148395469453181,7.188025011713213,0.0,1388.0,221.46153846153848,456.68336783983983,208559.69846153847,1,3,1,8,23,0,0,0,0.0,230.32,56.57142857142857,451.45454545454544,0,0,0,5758,10,5673,0,0,0,0,64240,265,4,20,0,0,0,0,0,0,0,0,NeedManualLabel +216.58.209.131-192.168.1.107-443-44666-6,216.58.209.131,443,192.168.1.107,44666,6,03/12/2023 09:36:36 AM,13206,2,0,0.0,0.0,0.0,0.0,0.0,0.0,0,0,0,0,0.0,151.4463122822959,13206.0,0.0,13206.0,13206.0,13206.0,13206.0,0.0,13206.0,13206.0,0,0,0,0,0,0,0,0,0,40,0,151.4463122822959,0.0,0.0,0.0,0.0,0.0,0.0,0,0,2,0,0,0,0,0,0.0,0.0,0.0,0.0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,NeedManualLabel diff --git a/build/distributions/CICFlowMeter-4.0/bin/logs/debug b/build/distributions/CICFlowMeter-4.0/bin/logs/debug new file mode 100644 index 00000000..f3468885 --- /dev/null +++ b/build/distributions/CICFlowMeter-4.0/bin/logs/debug @@ -0,0 +1,49 @@ +2023-12-03 09:23:40 INFO cic.cs.unb.ca.jnetpcap.worker.TrafficFlowWorker Pcap is listening... +2023-12-03 09:26:22 INFO cic.cs.unb.ca.flow.ui.FlowMonitorPane Pcap stop listening +2023-12-03 09:26:23 INFO cic.cs.unb.ca.flow.ui.FlowMonitorPane path:/home/user/Music/UEBA-PY/java/CICFlowMeter/build/distributions/CICFlowMeter-4.0/bin/data/daily/2023-12-03_Flow.csv +2023-12-03 09:27:56 INFO cic.cs.unb.ca.ifm.Cmd The pcap file or folder does not exist! -> -i +2023-12-03 09:31:18 INFO cic.cs.unb.ca.ifm.Cmd The pcap file or folder does not exist! -> -i +2023-12-03 09:33:59 INFO cic.cs.unb.ca.ifm.Cmd The pcap file or folder does not exist! -> -i +2023-12-03 09:34:57 INFO cic.cs.unb.ca.ifm.Cmd The pcap file or folder does not exist! -> -i +2023-12-03 09:35:06 INFO cic.cs.unb.ca.ifm.Cmd Please select pcap! +2023-12-03 09:35:57 INFO cic.cs.unb.ca.jnetpcap.worker.TrafficFlowWorker Pcap is listening... +2023-12-03 09:36:21 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 32 flow +2023-12-03 09:36:21 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 31 flow +2023-12-03 09:36:21 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 30 flow +2023-12-03 09:36:21 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 29 flow +2023-12-03 09:36:26 INFO cic.cs.unb.ca.jnetpcap.FlowGenerator Forward flow closed due to FIN Flag +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:26 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 45 flow +2023-12-03 09:36:29 INFO cic.cs.unb.ca.jnetpcap.FlowGenerator Forward flow closed due to FIN Flag +2023-12-03 09:36:29 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 48 flow +2023-12-03 09:36:29 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 48 flow +2023-12-03 09:36:29 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 48 flow +2023-12-03 09:36:29 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 48 flow +2023-12-03 09:36:36 INFO cic.cs.unb.ca.jnetpcap.FlowGenerator Forward flow closed due to FIN Flag +2023-12-03 09:36:36 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 50 flow +2023-12-03 09:36:37 DEBUG cic.cs.unb.ca.jnetpcap.FlowGenerator FlagRST current has 50 flow +2023-12-03 09:36:54 INFO cic.cs.unb.ca.flow.ui.FlowMonitorPane Pcap stop listening +2023-12-03 09:36:54 INFO cic.cs.unb.ca.flow.ui.FlowMonitorPane path:/home/user/Music/UEBA-PY/java/CICFlowMeter/build/distributions/CICFlowMeter-4.0/bin/data/daily/2023-12-03_Flow.csv +2023-12-03 09:37:00 DEBUG cic.cs.unb.ca.jnetpcap.worker.TrafficFlowWorker break Packet loop diff --git a/build/distributions/CICFlowMeter-4.0/bin/logs/info.log b/build/distributions/CICFlowMeter-4.0/bin/logs/info.log new file mode 100644 index 00000000..4b03d132 --- /dev/null +++ b/build/distributions/CICFlowMeter-4.0/bin/logs/info.log @@ -0,0 +1,14 @@ +2023-12-03 09:23:40 - Pcap is listening... +2023-12-03 09:26:22 - Pcap stop listening +2023-12-03 09:26:23 - path:/home/user/Music/UEBA-PY/java/CICFlowMeter/build/distributions/CICFlowMeter-4.0/bin/data/daily/2023-12-03_Flow.csv +2023-12-03 09:27:56 - The pcap file or folder does not exist! -> -i +2023-12-03 09:31:18 - The pcap file or folder does not exist! -> -i +2023-12-03 09:33:59 - The pcap file or folder does not exist! -> -i +2023-12-03 09:34:57 - The pcap file or folder does not exist! -> -i +2023-12-03 09:35:06 - Please select pcap! +2023-12-03 09:35:57 - Pcap is listening... +2023-12-03 09:36:26 - Forward flow closed due to FIN Flag +2023-12-03 09:36:29 - Forward flow closed due to FIN Flag +2023-12-03 09:36:36 - Forward flow closed due to FIN Flag +2023-12-03 09:36:54 - Pcap stop listening +2023-12-03 09:36:54 - path:/home/user/Music/UEBA-PY/java/CICFlowMeter/build/distributions/CICFlowMeter-4.0/bin/data/daily/2023-12-03_Flow.csv diff --git a/build/distributions/CICFlowMeter-4.0/lib/CICFlowMeter-4.0.jar b/build/distributions/CICFlowMeter-4.0/lib/CICFlowMeter-4.0.jar new file mode 100644 index 00000000..7332c827 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/CICFlowMeter-4.0.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/animal-sniffer-annotations-1.14.jar b/build/distributions/CICFlowMeter-4.0/lib/animal-sniffer-annotations-1.14.jar new file mode 100644 index 00000000..fb76acf7 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/animal-sniffer-annotations-1.14.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/checker-compat-qual-2.0.0.jar b/build/distributions/CICFlowMeter-4.0/lib/checker-compat-qual-2.0.0.jar new file mode 100644 index 00000000..c55d4bc9 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/checker-compat-qual-2.0.0.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/commons-io-2.5.jar b/build/distributions/CICFlowMeter-4.0/lib/commons-io-2.5.jar new file mode 100644 index 00000000..107b061f Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/commons-io-2.5.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/commons-lang3-3.6.jar b/build/distributions/CICFlowMeter-4.0/lib/commons-lang3-3.6.jar new file mode 100644 index 00000000..c25fd4d3 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/commons-lang3-3.6.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/commons-math3-3.5.jar b/build/distributions/CICFlowMeter-4.0/lib/commons-math3-3.5.jar new file mode 100644 index 00000000..db99f8c2 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/commons-math3-3.5.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/error_prone_annotations-2.1.3.jar b/build/distributions/CICFlowMeter-4.0/lib/error_prone_annotations-2.1.3.jar new file mode 100644 index 00000000..ec3b1856 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/error_prone_annotations-2.1.3.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/guava-23.6-jre.jar b/build/distributions/CICFlowMeter-4.0/lib/guava-23.6-jre.jar new file mode 100644 index 00000000..bdfa172c Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/guava-23.6-jre.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/hamcrest-core-1.3.jar b/build/distributions/CICFlowMeter-4.0/lib/hamcrest-core-1.3.jar new file mode 100644 index 00000000..9d5fe16e Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/hamcrest-core-1.3.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/j2objc-annotations-1.1.jar b/build/distributions/CICFlowMeter-4.0/lib/j2objc-annotations-1.1.jar new file mode 100644 index 00000000..4b6f1274 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/j2objc-annotations-1.1.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/java-cup-0.11a.jar b/build/distributions/CICFlowMeter-4.0/lib/java-cup-0.11a.jar new file mode 100644 index 00000000..73ffa0b3 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/java-cup-0.11a.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/jfreechart-1.5.0.jar b/build/distributions/CICFlowMeter-4.0/lib/jfreechart-1.5.0.jar new file mode 100644 index 00000000..a6bebed7 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/jfreechart-1.5.0.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/jnetpcap-1.4.1.jar b/build/distributions/CICFlowMeter-4.0/lib/jnetpcap-1.4.1.jar new file mode 100644 index 00000000..9b1a8928 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/jnetpcap-1.4.1.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/jsr305-1.3.9.jar b/build/distributions/CICFlowMeter-4.0/lib/jsr305-1.3.9.jar new file mode 100644 index 00000000..a9afc661 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/jsr305-1.3.9.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/junit-4.12.jar b/build/distributions/CICFlowMeter-4.0/lib/junit-4.12.jar new file mode 100644 index 00000000..3a7fc266 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/junit-4.12.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/log4j-1.2.17.jar b/build/distributions/CICFlowMeter-4.0/lib/log4j-1.2.17.jar new file mode 100644 index 00000000..1d425cf7 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/log4j-1.2.17.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/log4j-api-2.11.0.jar b/build/distributions/CICFlowMeter-4.0/lib/log4j-api-2.11.0.jar new file mode 100644 index 00000000..ac408c6f Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/log4j-api-2.11.0.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/log4j-core-2.11.0.jar b/build/distributions/CICFlowMeter-4.0/lib/log4j-core-2.11.0.jar new file mode 100644 index 00000000..a0b39ef2 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/log4j-core-2.11.0.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/native/jnetpcap-pcap100.dll b/build/distributions/CICFlowMeter-4.0/lib/native/jnetpcap-pcap100.dll new file mode 100644 index 00000000..edf51016 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/native/jnetpcap-pcap100.dll differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/native/jnetpcap.dll b/build/distributions/CICFlowMeter-4.0/lib/native/jnetpcap.dll new file mode 100644 index 00000000..b905ece0 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/native/jnetpcap.dll differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/native/libjnetpcap-pcap100.so b/build/distributions/CICFlowMeter-4.0/lib/native/libjnetpcap-pcap100.so new file mode 100644 index 00000000..f2bcce1e Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/native/libjnetpcap-pcap100.so differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/native/libjnetpcap.so b/build/distributions/CICFlowMeter-4.0/lib/native/libjnetpcap.so new file mode 100644 index 00000000..e4e3a985 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/native/libjnetpcap.so differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/slf4j-api-1.7.25.jar b/build/distributions/CICFlowMeter-4.0/lib/slf4j-api-1.7.25.jar new file mode 100644 index 00000000..0143c099 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/slf4j-api-1.7.25.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/slf4j-log4j12-1.7.25.jar b/build/distributions/CICFlowMeter-4.0/lib/slf4j-log4j12-1.7.25.jar new file mode 100644 index 00000000..7d88a6e7 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/slf4j-log4j12-1.7.25.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/tika-core-1.17.jar b/build/distributions/CICFlowMeter-4.0/lib/tika-core-1.17.jar new file mode 100644 index 00000000..93b72c7c Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/tika-core-1.17.jar differ diff --git a/build/distributions/CICFlowMeter-4.0/lib/weka-stable-3.6.14.jar b/build/distributions/CICFlowMeter-4.0/lib/weka-stable-3.6.14.jar new file mode 100644 index 00000000..c06c8019 Binary files /dev/null and b/build/distributions/CICFlowMeter-4.0/lib/weka-stable-3.6.14.jar differ diff --git a/build/install/CICFlowMeter/LICENSE.txt b/build/install/CICFlowMeter/LICENSE.txt new file mode 100644 index 00000000..befceff6 --- /dev/null +++ b/build/install/CICFlowMeter/LICENSE.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016 + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (CICFlowMeter), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# For citation in your works and also understanding CICFlowMeter (formerly ISCXFlowMeter) completely, you can find below published papers: + +Arash Habibi Lashkari, Gerard Draper-Gil, Mohammad Saiful Islam Mamun and Ali A. Ghorbani, "Characterization of Tor Traffic Using Time Based Features", In the proceeding of the 3rd International Conference on Information System Security and Privacy, SCITEPRESS, Porto, Portugal, 2017 + +Gerard Drapper Gil, Arash Habibi Lashkari, Mohammad Mamun, Ali A. Ghorbani, "Characterization of Encrypted and VPN Traffic Using Time-Related Features", In Proceedings of the 2nd International Conference on Information Systems Security and Privacy(ICISSP 2016) , pages 407-414, Rome , Italy + +# Contributors: +Arash Habibi Lashkari: Researcher and Developer (Founder) +Gerard Drapper: Researcher and Developer (Co-funder) +muhammad saiful islam: Researcher and Developer (Co-funder) diff --git a/build/install/CICFlowMeter/README.md b/build/install/CICFlowMeter/README.md new file mode 100644 index 00000000..1fecdda8 --- /dev/null +++ b/build/install/CICFlowMeter/README.md @@ -0,0 +1,94 @@ +The CICFlowMeter is an open source tool that generates Biflows from pcap files, and extracts features from these flows. + +CICFlowMeter is a network traffic flow generator available from here . It can be used to generate bidirectional flows, where the first packet determines the forward (source to destination) and backward (destination to source) directions, hence the statistical time-related features can be calculated separately in the forward and backward directions. Additional functionalities include, selecting features from the list of existing features, adding new features, and controlling the duration of flow timeout. + +NOTE: TCP flows are usually terminated upon connection teardown (by FIN packet) while UDP flows are terminated by a flow timeout. The flow timeout value can be assigned arbitrarily by the individual scheme e.g., 600 seconds for both TCP and UDP. + +For citation in your works and also understanding CICFlowMeter (formerly ISCXFlowMeter) completely, you can find below published papers: + +Arash Habibi Lashkari, Gerard Draper-Gil, Mohammad Saiful Islam Mamun and Ali A. Ghorbani, "Characterization of Tor Traffic Using Time Based Features", In the proceeding of the 3rd International Conference on Information System Security and Privacy, SCITEPRESS, Porto, Portugal, 2017 + +Gerard Drapper Gil, Arash Habibi Lashkari, Mohammad Mamun, Ali A. Ghorbani, "Characterization of Encrypted and VPN Traffic Using Time-Related Features", In Proceedings of the 2nd International Conference on Information Systems Security and Privacy(ICISSP 2016) , pages 407-414, Rome , Italy + +-------------------------------------------------------------- +List of extracted features and descriptions: +Feature Name Description +Flow duration Duration of the flow in Microsecond +total Fwd Packet Total packets in the forward direction +total Bwd packets Total packets in the backward direction +total Length of Fwd Packet Total size of packet in forward direction +total Length of Bwd Packet Total size of packet in backward direction +Fwd Packet Length Min Minimum size of packet in forward direction +Fwd Packet Length Max Maximum size of packet in forward direction +Fwd Packet Length Mean Mean size of packet in forward direction +Fwd Packet Length Std Standard deviation size of packet in forward direction +Bwd Packet Length Min Minimum size of packet in backward direction +Bwd Packet Length Max Maximum size of packet in backward direction +Bwd Packet Length Mean Mean size of packet in backward direction +Bwd Packet Length Std Standard deviation size of packet in backward direction +Flow Bytes/s Number of flow bytes per second +Flow Packets/s Number of flow packets per second +Flow IAT Mean Mean time between two packets sent in the flow +Flow IAT Std Standard deviation time between two packets sent in the flow +Flow IAT Max Maximum time between two packets sent in the flow +Flow IAT Min Minimum time between two packets sent in the flow +Fwd IAT Min Minimum time between two packets sent in the forward direction +Fwd IAT Max Maximum time between two packets sent in the forward direction +Fwd IAT Mean Mean time between two packets sent in the forward direction +Fwd IAT Std Standard deviation time between two packets sent in the forward direction +Fwd IAT Total Total time between two packets sent in the forward direction +Bwd IAT Min Minimum time between two packets sent in the backward direction +Bwd IAT Max Maximum time between two packets sent in the backward direction +Bwd IAT Mean Mean time between two packets sent in the backward direction +Bwd IAT Std Standard deviation time between two packets sent in the backward direction +Bwd IAT Total Total time between two packets sent in the backward direction +Fwd PSH flags Number of times the PSH flag was set in packets travelling in the forward direction (0 for UDP) +Bwd PSH Flags Number of times the PSH flag was set in packets travelling in the backward direction (0 for UDP) +Fwd URG Flags Number of times the URG flag was set in packets travelling in the forward direction (0 for UDP) +Bwd URG Flags Number of times the URG flag was set in packets travelling in the backward direction (0 for UDP) +Fwd Header Length Total bytes used for headers in the forward direction +Bwd Header Length Total bytes used for headers in the backward direction +FWD Packets/s Number of forward packets per second +Bwd Packets/s Number of backward packets per second +Packet Length Min Minimum length of a packet +Packet Length Max Maximum length of a packet +Packet Length Mean Mean length of a packet +Packet Length Std Standard deviation length of a packet +Packet Length Variance Variance length of a packet +FIN Flag Count Number of packets with FIN +SYN Flag Count Number of packets with SYN +RST Flag Count Number of packets with RST +PSH Flag Count Number of packets with PUSH +ACK Flag Count Number of packets with ACK +URG Flag Count Number of packets with URG +CWR Flag Count Number of packets with CWR +ECE Flag Count Number of packets with ECE +down/Up Ratio Download and upload ratio +Average Packet Size Average size of packet +Fwd Segment Size Avg Average size observed in the forward direction +Bwd Segment Size Avg Average size observed in the backward direction +Fwd Bytes/Bulk Avg Average number of bytes bulk rate in the forward direction +Fwd Packet/Bulk Avg Average number of packets bulk rate in the forward direction +Fwd Bulk Rate Avg Average number of bulk rate in the forward direction +Bwd Bytes/Bulk Avg Average number of bytes bulk rate in the backward direction +Bwd Packet/Bulk Avg Average number of packets bulk rate in the backward direction +Bwd Bulk Rate Avg Average number of bulk rate in the backward direction +Subflow Fwd Packets The average number of packets in a sub flow in the forward direction +Subflow Fwd Bytes The average number of bytes in a sub flow in the forward direction +Subflow Bwd Packets The average number of packets in a sub flow in the backward direction +Subflow Bwd Bytes The average number of bytes in a sub flow in the backward direction +Fwd Init Win bytes The total number of bytes sent in initial window in the forward direction +Bwd Init Win bytes The total number of bytes sent in initial window in the backward direction +Fwd Act Data Pkts Count of packets with at least 1 byte of TCP data payload in the forward direction +Fwd Seg Size Min Minimum segment size observed in the forward direction +Active Min Minimum time a flow was active before becoming idle +Active Mean Mean time a flow was active before becoming idle +Active Max Maximum time a flow was active before becoming idle +Active Std Standard deviation time a flow was active before becoming idle +Idle Min Minimum time a flow was idle before becoming active +Idle Mean Mean time a flow was idle before becoming active +Idle Max Maximum time a flow was idle before becoming active +Idle Std Standard deviation time a flow was idle before becoming active + +-------------------------------------------------------------------------------------- + diff --git a/build/install/CICFlowMeter/bin/CICFlowMeter b/build/install/CICFlowMeter/bin/CICFlowMeter new file mode 100755 index 00000000..910b4ec9 --- /dev/null +++ b/build/install/CICFlowMeter/bin/CICFlowMeter @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## CICFlowMeter start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/.." >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="CICFlowMeter" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and CIC_FLOW_METER_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Djava.library.path=../lib/native"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/lib/CICFlowMeter-4.0.jar:$APP_HOME/lib/log4j-core-2.11.0.jar:$APP_HOME/lib/slf4j-log4j12-1.7.25.jar:$APP_HOME/lib/jnetpcap-1.4.1.jar:$APP_HOME/lib/junit-4.12.jar:$APP_HOME/lib/commons-lang3-3.6.jar:$APP_HOME/lib/commons-math3-3.5.jar:$APP_HOME/lib/commons-io-2.5.jar:$APP_HOME/lib/weka-stable-3.6.14.jar:$APP_HOME/lib/jfreechart-1.5.0.jar:$APP_HOME/lib/guava-23.6-jre.jar:$APP_HOME/lib/tika-core-1.17.jar:$APP_HOME/lib/log4j-api-2.11.0.jar:$APP_HOME/lib/slf4j-api-1.7.25.jar:$APP_HOME/lib/log4j-1.2.17.jar:$APP_HOME/lib/hamcrest-core-1.3.jar:$APP_HOME/lib/java-cup-0.11a.jar:$APP_HOME/lib/jsr305-1.3.9.jar:$APP_HOME/lib/checker-compat-qual-2.0.0.jar:$APP_HOME/lib/error_prone_annotations-2.1.3.jar:$APP_HOME/lib/j2objc-annotations-1.1.jar:$APP_HOME/lib/animal-sniffer-annotations-1.14.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $CIC_FLOW_METER_OPTS -classpath "\"$CLASSPATH\"" cic.cs.unb.ca.ifm.App "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/build/install/CICFlowMeter/bin/CICFlowMeter.bat b/build/install/CICFlowMeter/bin/CICFlowMeter.bat new file mode 100755 index 00000000..fb4042e7 --- /dev/null +++ b/build/install/CICFlowMeter/bin/CICFlowMeter.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem CICFlowMeter startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME%.. + +@rem Add default JVM options here. You can also use JAVA_OPTS and CIC_FLOW_METER_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Djava.library.path=../lib/native" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\lib\CICFlowMeter-4.0.jar;%APP_HOME%\lib\log4j-core-2.11.0.jar;%APP_HOME%\lib\slf4j-log4j12-1.7.25.jar;%APP_HOME%\lib\jnetpcap-1.4.1.jar;%APP_HOME%\lib\junit-4.12.jar;%APP_HOME%\lib\commons-lang3-3.6.jar;%APP_HOME%\lib\commons-math3-3.5.jar;%APP_HOME%\lib\commons-io-2.5.jar;%APP_HOME%\lib\weka-stable-3.6.14.jar;%APP_HOME%\lib\jfreechart-1.5.0.jar;%APP_HOME%\lib\guava-23.6-jre.jar;%APP_HOME%\lib\tika-core-1.17.jar;%APP_HOME%\lib\log4j-api-2.11.0.jar;%APP_HOME%\lib\slf4j-api-1.7.25.jar;%APP_HOME%\lib\log4j-1.2.17.jar;%APP_HOME%\lib\hamcrest-core-1.3.jar;%APP_HOME%\lib\java-cup-0.11a.jar;%APP_HOME%\lib\jsr305-1.3.9.jar;%APP_HOME%\lib\checker-compat-qual-2.0.0.jar;%APP_HOME%\lib\error_prone_annotations-2.1.3.jar;%APP_HOME%\lib\j2objc-annotations-1.1.jar;%APP_HOME%\lib\animal-sniffer-annotations-1.14.jar + +@rem Execute CICFlowMeter +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %CIC_FLOW_METER_OPTS% -classpath "%CLASSPATH%" cic.cs.unb.ca.ifm.App %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable CIC_FLOW_METER_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%CIC_FLOW_METER_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/build/install/CICFlowMeter/bin/cfm b/build/install/CICFlowMeter/bin/cfm new file mode 100755 index 00000000..79df30d6 --- /dev/null +++ b/build/install/CICFlowMeter/bin/cfm @@ -0,0 +1,233 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# cfm start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh cfm +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and CFM_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}.." && pwd -P ) || exit + +APP_NAME="cfm" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and CFM_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Djava.library.path=../lib/native"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/lib/CICFlowMeter-4.0.jar:$APP_HOME/lib/log4j-core-2.11.0.jar:$APP_HOME/lib/slf4j-log4j12-1.7.25.jar:$APP_HOME/lib/jnetpcap-1.5.r1457-1i.jar:$APP_HOME/lib/junit-4.12.jar:$APP_HOME/lib/commons-lang3-3.6.jar:$APP_HOME/lib/commons-math3-3.5.jar:$APP_HOME/lib/commons-io-2.5.jar:$APP_HOME/lib/weka-stable-3.6.14.jar:$APP_HOME/lib/jfreechart-1.5.0.jar:$APP_HOME/lib/guava-23.6-jre.jar:$APP_HOME/lib/tika-core-1.17.jar:$APP_HOME/lib/log4j-api-2.11.0.jar:$APP_HOME/lib/slf4j-api-1.7.25.jar:$APP_HOME/lib/log4j-1.2.17.jar:$APP_HOME/lib/hamcrest-core-1.3.jar:$APP_HOME/lib/java-cup-0.11a.jar:$APP_HOME/lib/jsr305-1.3.9.jar:$APP_HOME/lib/checker-compat-qual-2.0.0.jar:$APP_HOME/lib/error_prone_annotations-2.1.3.jar:$APP_HOME/lib/j2objc-annotations-1.1.jar:$APP_HOME/lib/animal-sniffer-annotations-1.14.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and CFM_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $CFM_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + -classpath "$CLASSPATH" \ + cic.cs.unb.ca.ifm.Cmd\ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $CFM_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/build/install/CICFlowMeter/bin/cfm.bat b/build/install/CICFlowMeter/bin/cfm.bat new file mode 100755 index 00000000..0b125ac3 --- /dev/null +++ b/build/install/CICFlowMeter/bin/cfm.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem cfm startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME%.. + +@rem Add default JVM options here. You can also use JAVA_OPTS and CFM_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Djava.library.path=../lib/native" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\lib\CICFlowMeter-4.0.jar;%APP_HOME%\lib\log4j-core-2.11.0.jar;%APP_HOME%\lib\slf4j-log4j12-1.7.25.jar;%APP_HOME%\lib\jnetpcap-1.4.1.jar;%APP_HOME%\lib\junit-4.12.jar;%APP_HOME%\lib\commons-lang3-3.6.jar;%APP_HOME%\lib\commons-math3-3.5.jar;%APP_HOME%\lib\commons-io-2.5.jar;%APP_HOME%\lib\weka-stable-3.6.14.jar;%APP_HOME%\lib\jfreechart-1.5.0.jar;%APP_HOME%\lib\guava-23.6-jre.jar;%APP_HOME%\lib\tika-core-1.17.jar;%APP_HOME%\lib\log4j-api-2.11.0.jar;%APP_HOME%\lib\slf4j-api-1.7.25.jar;%APP_HOME%\lib\log4j-1.2.17.jar;%APP_HOME%\lib\hamcrest-core-1.3.jar;%APP_HOME%\lib\java-cup-0.11a.jar;%APP_HOME%\lib\jsr305-1.3.9.jar;%APP_HOME%\lib\checker-compat-qual-2.0.0.jar;%APP_HOME%\lib\error_prone_annotations-2.1.3.jar;%APP_HOME%\lib\j2objc-annotations-1.1.jar;%APP_HOME%\lib\animal-sniffer-annotations-1.14.jar + +@rem Execute cfm +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %CFM_OPTS% -classpath "%CLASSPATH%" cic.cs.unb.ca.ifm.Cmd %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable CFM_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%CFM_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/build/install/CICFlowMeter/bin/logs/debug b/build/install/CICFlowMeter/bin/logs/debug new file mode 100644 index 00000000..4913893b --- /dev/null +++ b/build/install/CICFlowMeter/bin/logs/debug @@ -0,0 +1,2 @@ +2023-12-03 09:29:45 INFO cic.cs.unb.ca.ifm.Cmd The pcap file or folder does not exist! -> -i +2023-12-03 09:29:58 INFO cic.cs.unb.ca.ifm.Cmd Please select pcap! diff --git a/build/install/CICFlowMeter/bin/logs/info.log b/build/install/CICFlowMeter/bin/logs/info.log new file mode 100644 index 00000000..5bf51230 --- /dev/null +++ b/build/install/CICFlowMeter/bin/logs/info.log @@ -0,0 +1,2 @@ +2023-12-03 09:29:45 - The pcap file or folder does not exist! -> -i +2023-12-03 09:29:58 - Please select pcap! diff --git a/build/install/CICFlowMeter/lib/CICFlowMeter-4.0.jar b/build/install/CICFlowMeter/lib/CICFlowMeter-4.0.jar new file mode 100644 index 00000000..7332c827 Binary files /dev/null and b/build/install/CICFlowMeter/lib/CICFlowMeter-4.0.jar differ diff --git a/build/install/CICFlowMeter/lib/animal-sniffer-annotations-1.14.jar b/build/install/CICFlowMeter/lib/animal-sniffer-annotations-1.14.jar new file mode 100644 index 00000000..fb76acf7 Binary files /dev/null and b/build/install/CICFlowMeter/lib/animal-sniffer-annotations-1.14.jar differ diff --git a/build/install/CICFlowMeter/lib/checker-compat-qual-2.0.0.jar b/build/install/CICFlowMeter/lib/checker-compat-qual-2.0.0.jar new file mode 100644 index 00000000..c55d4bc9 Binary files /dev/null and b/build/install/CICFlowMeter/lib/checker-compat-qual-2.0.0.jar differ diff --git a/build/install/CICFlowMeter/lib/commons-io-2.5.jar b/build/install/CICFlowMeter/lib/commons-io-2.5.jar new file mode 100644 index 00000000..107b061f Binary files /dev/null and b/build/install/CICFlowMeter/lib/commons-io-2.5.jar differ diff --git a/build/install/CICFlowMeter/lib/commons-lang3-3.6.jar b/build/install/CICFlowMeter/lib/commons-lang3-3.6.jar new file mode 100644 index 00000000..c25fd4d3 Binary files /dev/null and b/build/install/CICFlowMeter/lib/commons-lang3-3.6.jar differ diff --git a/build/install/CICFlowMeter/lib/commons-math3-3.5.jar b/build/install/CICFlowMeter/lib/commons-math3-3.5.jar new file mode 100644 index 00000000..db99f8c2 Binary files /dev/null and b/build/install/CICFlowMeter/lib/commons-math3-3.5.jar differ diff --git a/build/install/CICFlowMeter/lib/error_prone_annotations-2.1.3.jar b/build/install/CICFlowMeter/lib/error_prone_annotations-2.1.3.jar new file mode 100644 index 00000000..ec3b1856 Binary files /dev/null and b/build/install/CICFlowMeter/lib/error_prone_annotations-2.1.3.jar differ diff --git a/build/install/CICFlowMeter/lib/guava-23.6-jre.jar b/build/install/CICFlowMeter/lib/guava-23.6-jre.jar new file mode 100644 index 00000000..bdfa172c Binary files /dev/null and b/build/install/CICFlowMeter/lib/guava-23.6-jre.jar differ diff --git a/build/install/CICFlowMeter/lib/hamcrest-core-1.3.jar b/build/install/CICFlowMeter/lib/hamcrest-core-1.3.jar new file mode 100644 index 00000000..9d5fe16e Binary files /dev/null and b/build/install/CICFlowMeter/lib/hamcrest-core-1.3.jar differ diff --git a/build/install/CICFlowMeter/lib/j2objc-annotations-1.1.jar b/build/install/CICFlowMeter/lib/j2objc-annotations-1.1.jar new file mode 100644 index 00000000..4b6f1274 Binary files /dev/null and b/build/install/CICFlowMeter/lib/j2objc-annotations-1.1.jar differ diff --git a/build/install/CICFlowMeter/lib/java-cup-0.11a.jar b/build/install/CICFlowMeter/lib/java-cup-0.11a.jar new file mode 100644 index 00000000..73ffa0b3 Binary files /dev/null and b/build/install/CICFlowMeter/lib/java-cup-0.11a.jar differ diff --git a/build/install/CICFlowMeter/lib/jfreechart-1.5.0.jar b/build/install/CICFlowMeter/lib/jfreechart-1.5.0.jar new file mode 100644 index 00000000..a6bebed7 Binary files /dev/null and b/build/install/CICFlowMeter/lib/jfreechart-1.5.0.jar differ diff --git a/build/install/CICFlowMeter/lib/jnetpcap-1.4.1.jar b/build/install/CICFlowMeter/lib/jnetpcap-1.4.1.jar new file mode 100644 index 00000000..9b1a8928 Binary files /dev/null and b/build/install/CICFlowMeter/lib/jnetpcap-1.4.1.jar differ diff --git a/build/install/CICFlowMeter/lib/jsr305-1.3.9.jar b/build/install/CICFlowMeter/lib/jsr305-1.3.9.jar new file mode 100644 index 00000000..a9afc661 Binary files /dev/null and b/build/install/CICFlowMeter/lib/jsr305-1.3.9.jar differ diff --git a/build/install/CICFlowMeter/lib/junit-4.12.jar b/build/install/CICFlowMeter/lib/junit-4.12.jar new file mode 100644 index 00000000..3a7fc266 Binary files /dev/null and b/build/install/CICFlowMeter/lib/junit-4.12.jar differ diff --git a/build/install/CICFlowMeter/lib/log4j-1.2.17.jar b/build/install/CICFlowMeter/lib/log4j-1.2.17.jar new file mode 100644 index 00000000..1d425cf7 Binary files /dev/null and b/build/install/CICFlowMeter/lib/log4j-1.2.17.jar differ diff --git a/build/install/CICFlowMeter/lib/log4j-api-2.11.0.jar b/build/install/CICFlowMeter/lib/log4j-api-2.11.0.jar new file mode 100644 index 00000000..ac408c6f Binary files /dev/null and b/build/install/CICFlowMeter/lib/log4j-api-2.11.0.jar differ diff --git a/build/install/CICFlowMeter/lib/log4j-core-2.11.0.jar b/build/install/CICFlowMeter/lib/log4j-core-2.11.0.jar new file mode 100644 index 00000000..a0b39ef2 Binary files /dev/null and b/build/install/CICFlowMeter/lib/log4j-core-2.11.0.jar differ diff --git a/build/install/CICFlowMeter/lib/native/jnetpcap-pcap100.dll b/build/install/CICFlowMeter/lib/native/jnetpcap-pcap100.dll new file mode 100644 index 00000000..edf51016 Binary files /dev/null and b/build/install/CICFlowMeter/lib/native/jnetpcap-pcap100.dll differ diff --git a/build/install/CICFlowMeter/lib/native/jnetpcap.dll b/build/install/CICFlowMeter/lib/native/jnetpcap.dll new file mode 100644 index 00000000..b905ece0 Binary files /dev/null and b/build/install/CICFlowMeter/lib/native/jnetpcap.dll differ diff --git a/build/install/CICFlowMeter/lib/native/libjnetpcap-pcap100.so b/build/install/CICFlowMeter/lib/native/libjnetpcap-pcap100.so new file mode 100644 index 00000000..f2bcce1e Binary files /dev/null and b/build/install/CICFlowMeter/lib/native/libjnetpcap-pcap100.so differ diff --git a/build/install/CICFlowMeter/lib/native/libjnetpcap.so b/build/install/CICFlowMeter/lib/native/libjnetpcap.so new file mode 100644 index 00000000..e4e3a985 Binary files /dev/null and b/build/install/CICFlowMeter/lib/native/libjnetpcap.so differ diff --git a/build/install/CICFlowMeter/lib/slf4j-api-1.7.25.jar b/build/install/CICFlowMeter/lib/slf4j-api-1.7.25.jar new file mode 100644 index 00000000..0143c099 Binary files /dev/null and b/build/install/CICFlowMeter/lib/slf4j-api-1.7.25.jar differ diff --git a/build/install/CICFlowMeter/lib/slf4j-log4j12-1.7.25.jar b/build/install/CICFlowMeter/lib/slf4j-log4j12-1.7.25.jar new file mode 100644 index 00000000..7d88a6e7 Binary files /dev/null and b/build/install/CICFlowMeter/lib/slf4j-log4j12-1.7.25.jar differ diff --git a/build/install/CICFlowMeter/lib/tika-core-1.17.jar b/build/install/CICFlowMeter/lib/tika-core-1.17.jar new file mode 100644 index 00000000..93b72c7c Binary files /dev/null and b/build/install/CICFlowMeter/lib/tika-core-1.17.jar differ diff --git a/build/install/CICFlowMeter/lib/weka-stable-3.6.14.jar b/build/install/CICFlowMeter/lib/weka-stable-3.6.14.jar new file mode 100644 index 00000000..c06c8019 Binary files /dev/null and b/build/install/CICFlowMeter/lib/weka-stable-3.6.14.jar differ diff --git a/build/libs/CICFlowMeter-4.0.jar b/build/libs/CICFlowMeter-4.0.jar new file mode 100644 index 00000000..7332c827 Binary files /dev/null and b/build/libs/CICFlowMeter-4.0.jar differ diff --git a/build/resources/main/CIC_Logo.gif b/build/resources/main/CIC_Logo.gif new file mode 100644 index 00000000..79cb8be4 Binary files /dev/null and b/build/resources/main/CIC_Logo.gif differ diff --git a/build/resources/main/CIC_Logo.png b/build/resources/main/CIC_Logo.png new file mode 100644 index 00000000..a8622345 Binary files /dev/null and b/build/resources/main/CIC_Logo.png differ diff --git a/build/resources/main/cicaboutlogo.png b/build/resources/main/cicaboutlogo.png new file mode 100644 index 00000000..ff6d9e9c Binary files /dev/null and b/build/resources/main/cicaboutlogo.png differ diff --git a/build/resources/main/ciclogo.png b/build/resources/main/ciclogo.png new file mode 100644 index 00000000..f61ea51e Binary files /dev/null and b/build/resources/main/ciclogo.png differ diff --git a/build/resources/main/images/CIC_Logo.gif b/build/resources/main/images/CIC_Logo.gif new file mode 100644 index 00000000..79cb8be4 Binary files /dev/null and b/build/resources/main/images/CIC_Logo.gif differ diff --git a/build/resources/main/images/CIC_Logo.png b/build/resources/main/images/CIC_Logo.png new file mode 100644 index 00000000..a8622345 Binary files /dev/null and b/build/resources/main/images/CIC_Logo.png differ diff --git a/build/resources/main/images/cicaboutlogo.png b/build/resources/main/images/cicaboutlogo.png new file mode 100644 index 00000000..ff6d9e9c Binary files /dev/null and b/build/resources/main/images/cicaboutlogo.png differ diff --git a/build/resources/main/images/ciclogo.png b/build/resources/main/images/ciclogo.png new file mode 100644 index 00000000..f61ea51e Binary files /dev/null and b/build/resources/main/images/ciclogo.png differ diff --git a/build/resources/main/log4j.properties b/build/resources/main/log4j.properties new file mode 100644 index 00000000..a7ee330f --- /dev/null +++ b/build/resources/main/log4j.properties @@ -0,0 +1,41 @@ +#Root Logger +log4j.rootLogger=DEBUG,CONSOLE,DEBUGFILE,FILE + +#ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF + +#Log to Console as STDOUT +log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender +log4j.appender.CONSOLE.threshold = INFO +log4j.appender.CONSOLE.Target=System.out +log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout +log4j.appender.CONSOLE.layout.ConversionPattern=%c %m%n + +#Log to daily file +log4j.appender.DEBUGFILE= org.apache.log4j.DailyRollingFileAppender +log4j.appender.DEBUGFILE.threshold=DEBUG +log4j.appender.DEBUGFILE.File=logs/debug +log4j.appender.DEBUGFILE.ImmediateFlush=true +log4j.appender.DEBUGFILE.append=true +log4j.appender.DEBUGFILE.DatePattern='-'yyyy-MM-dd'.log' +log4j.appender.DEBUGFILE.layout=org.apache.log4j.PatternLayout +log4j.appender.DEBUGFILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c %3x%m%n + +#Log to file FILE +log4j.appender.FILE=org.apache.log4j.RollingFileAppender +log4j.appender.FILE.maxFileSize=5GB +log4j.appender.FILE.threshold=INFO +log4j.appender.FILE.File=logs/info.log +log4j.appender.FILE.ImmediateFlush=true +log4j.appender.FILE.append=true +log4j.appender.FILE.layout=org.apache.log4j.PatternLayout +log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - %m%n + + +#log4j.appender.EXCEPTION=org.apache.log4j.RollingFileAppender +#log4j.appender.EXCEPTION.maxFileSize=5GB +#log4j.appender.EXCEPTION.File=logs/exception.log +#log4j.appender.EXCEPTION.Append = true +#log4j.appender.EXCEPTION.Threshold=WARN +#log4j.appender.EXCEPTION.layout=org.apache.log4j.PatternLayout +#log4j.appender.EXCEPTION.layout.ConversionPattern=%d{${yyyy-MM-dd HH:mm:ss}} %5p: %c{2} - %m%n + diff --git a/build/resources/main/manifest.mf b/build/resources/main/manifest.mf new file mode 100644 index 00000000..58630c02 --- /dev/null +++ b/build/resources/main/manifest.mf @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/build/scripts/CICFlowMeter b/build/scripts/CICFlowMeter new file mode 100755 index 00000000..910b4ec9 --- /dev/null +++ b/build/scripts/CICFlowMeter @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## CICFlowMeter start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/.." >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="CICFlowMeter" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and CIC_FLOW_METER_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Djava.library.path=../lib/native"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/lib/CICFlowMeter-4.0.jar:$APP_HOME/lib/log4j-core-2.11.0.jar:$APP_HOME/lib/slf4j-log4j12-1.7.25.jar:$APP_HOME/lib/jnetpcap-1.4.1.jar:$APP_HOME/lib/junit-4.12.jar:$APP_HOME/lib/commons-lang3-3.6.jar:$APP_HOME/lib/commons-math3-3.5.jar:$APP_HOME/lib/commons-io-2.5.jar:$APP_HOME/lib/weka-stable-3.6.14.jar:$APP_HOME/lib/jfreechart-1.5.0.jar:$APP_HOME/lib/guava-23.6-jre.jar:$APP_HOME/lib/tika-core-1.17.jar:$APP_HOME/lib/log4j-api-2.11.0.jar:$APP_HOME/lib/slf4j-api-1.7.25.jar:$APP_HOME/lib/log4j-1.2.17.jar:$APP_HOME/lib/hamcrest-core-1.3.jar:$APP_HOME/lib/java-cup-0.11a.jar:$APP_HOME/lib/jsr305-1.3.9.jar:$APP_HOME/lib/checker-compat-qual-2.0.0.jar:$APP_HOME/lib/error_prone_annotations-2.1.3.jar:$APP_HOME/lib/j2objc-annotations-1.1.jar:$APP_HOME/lib/animal-sniffer-annotations-1.14.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $CIC_FLOW_METER_OPTS -classpath "\"$CLASSPATH\"" cic.cs.unb.ca.ifm.App "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/build/scripts/CICFlowMeter.bat b/build/scripts/CICFlowMeter.bat new file mode 100644 index 00000000..fb4042e7 --- /dev/null +++ b/build/scripts/CICFlowMeter.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem CICFlowMeter startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME%.. + +@rem Add default JVM options here. You can also use JAVA_OPTS and CIC_FLOW_METER_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Djava.library.path=../lib/native" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\lib\CICFlowMeter-4.0.jar;%APP_HOME%\lib\log4j-core-2.11.0.jar;%APP_HOME%\lib\slf4j-log4j12-1.7.25.jar;%APP_HOME%\lib\jnetpcap-1.4.1.jar;%APP_HOME%\lib\junit-4.12.jar;%APP_HOME%\lib\commons-lang3-3.6.jar;%APP_HOME%\lib\commons-math3-3.5.jar;%APP_HOME%\lib\commons-io-2.5.jar;%APP_HOME%\lib\weka-stable-3.6.14.jar;%APP_HOME%\lib\jfreechart-1.5.0.jar;%APP_HOME%\lib\guava-23.6-jre.jar;%APP_HOME%\lib\tika-core-1.17.jar;%APP_HOME%\lib\log4j-api-2.11.0.jar;%APP_HOME%\lib\slf4j-api-1.7.25.jar;%APP_HOME%\lib\log4j-1.2.17.jar;%APP_HOME%\lib\hamcrest-core-1.3.jar;%APP_HOME%\lib\java-cup-0.11a.jar;%APP_HOME%\lib\jsr305-1.3.9.jar;%APP_HOME%\lib\checker-compat-qual-2.0.0.jar;%APP_HOME%\lib\error_prone_annotations-2.1.3.jar;%APP_HOME%\lib\j2objc-annotations-1.1.jar;%APP_HOME%\lib\animal-sniffer-annotations-1.14.jar + +@rem Execute CICFlowMeter +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %CIC_FLOW_METER_OPTS% -classpath "%CLASSPATH%" cic.cs.unb.ca.ifm.App %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable CIC_FLOW_METER_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%CIC_FLOW_METER_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/build/scripts/cfm b/build/scripts/cfm new file mode 100755 index 00000000..79462442 --- /dev/null +++ b/build/scripts/cfm @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## cfm start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/.." >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="cfm" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and CFM_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Djava.library.path=../lib/native"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/lib/CICFlowMeter-4.0.jar:$APP_HOME/lib/log4j-core-2.11.0.jar:$APP_HOME/lib/slf4j-log4j12-1.7.25.jar:$APP_HOME/lib/jnetpcap-1.4.1.jar:$APP_HOME/lib/junit-4.12.jar:$APP_HOME/lib/commons-lang3-3.6.jar:$APP_HOME/lib/commons-math3-3.5.jar:$APP_HOME/lib/commons-io-2.5.jar:$APP_HOME/lib/weka-stable-3.6.14.jar:$APP_HOME/lib/jfreechart-1.5.0.jar:$APP_HOME/lib/guava-23.6-jre.jar:$APP_HOME/lib/tika-core-1.17.jar:$APP_HOME/lib/log4j-api-2.11.0.jar:$APP_HOME/lib/slf4j-api-1.7.25.jar:$APP_HOME/lib/log4j-1.2.17.jar:$APP_HOME/lib/hamcrest-core-1.3.jar:$APP_HOME/lib/java-cup-0.11a.jar:$APP_HOME/lib/jsr305-1.3.9.jar:$APP_HOME/lib/checker-compat-qual-2.0.0.jar:$APP_HOME/lib/error_prone_annotations-2.1.3.jar:$APP_HOME/lib/j2objc-annotations-1.1.jar:$APP_HOME/lib/animal-sniffer-annotations-1.14.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $CFM_OPTS -classpath "\"$CLASSPATH\"" cic.cs.unb.ca.ifm.Cmd "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/build/scripts/cfm.bat b/build/scripts/cfm.bat new file mode 100644 index 00000000..0b125ac3 --- /dev/null +++ b/build/scripts/cfm.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem cfm startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME%.. + +@rem Add default JVM options here. You can also use JAVA_OPTS and CFM_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Djava.library.path=../lib/native" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\lib\CICFlowMeter-4.0.jar;%APP_HOME%\lib\log4j-core-2.11.0.jar;%APP_HOME%\lib\slf4j-log4j12-1.7.25.jar;%APP_HOME%\lib\jnetpcap-1.4.1.jar;%APP_HOME%\lib\junit-4.12.jar;%APP_HOME%\lib\commons-lang3-3.6.jar;%APP_HOME%\lib\commons-math3-3.5.jar;%APP_HOME%\lib\commons-io-2.5.jar;%APP_HOME%\lib\weka-stable-3.6.14.jar;%APP_HOME%\lib\jfreechart-1.5.0.jar;%APP_HOME%\lib\guava-23.6-jre.jar;%APP_HOME%\lib\tika-core-1.17.jar;%APP_HOME%\lib\log4j-api-2.11.0.jar;%APP_HOME%\lib\slf4j-api-1.7.25.jar;%APP_HOME%\lib\log4j-1.2.17.jar;%APP_HOME%\lib\hamcrest-core-1.3.jar;%APP_HOME%\lib\java-cup-0.11a.jar;%APP_HOME%\lib\jsr305-1.3.9.jar;%APP_HOME%\lib\checker-compat-qual-2.0.0.jar;%APP_HOME%\lib\error_prone_annotations-2.1.3.jar;%APP_HOME%\lib\j2objc-annotations-1.1.jar;%APP_HOME%\lib\animal-sniffer-annotations-1.14.jar + +@rem Execute cfm +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %CFM_OPTS% -classpath "%CLASSPATH%" cic.cs.unb.ca.ifm.Cmd %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable CFM_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%CFM_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/build/tmp/jar/MANIFEST.MF b/build/tmp/jar/MANIFEST.MF new file mode 100644 index 00000000..58630c02 --- /dev/null +++ b/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/src/main/java/cic/cs/unb/ca/ifm/Cmd2.java b/src/main/java/cic/cs/unb/ca/ifm/Cmd2.java new file mode 100644 index 00000000..651d51ea --- /dev/null +++ b/src/main/java/cic/cs/unb/ca/ifm/Cmd2.java @@ -0,0 +1,305 @@ +package cic.cs.unb.ca.ifm; + +import cic.cs.unb.ca.Sys; +import cic.cs.unb.ca.flow.FlowMgr; +import cic.cs.unb.ca.jnetpcap.BasicFlow; +import cic.cs.unb.ca.jnetpcap.BasicPacketInfo; +import cic.cs.unb.ca.jnetpcap.FlowFeature; +import cic.cs.unb.ca.jnetpcap.FlowGenerator; +import cic.cs.unb.ca.jnetpcap.PacketReader; +import cic.cs.unb.ca.jnetpcap.PcapIfWrapper; +import cic.cs.unb.ca.jnetpcap.worker.FlowGenListener; +import cic.cs.unb.ca.jnetpcap.worker.InsertCsvRow; +import cic.cs.unb.ca.jnetpcap.worker.LoadPcapInterfaceWorker; +import cic.cs.unb.ca.jnetpcap.worker.TrafficFlowWorker; +import java.beans.PropertyChangeEvent; +import java.io.File; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; +import java.util.concurrent.CancellationException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import javax.swing.DefaultListModel; +import javax.swing.SwingUtilities; +import javax.swing.SwingWorker; +import org.apache.commons.io.FilenameUtils; +import org.jnetpcap.PcapClosedException; +import org.jnetpcap.PcapIf; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import swing.common.SwingUtils; + +public class Cmd2 { + public static final Logger logger = LoggerFactory.getLogger(Cmd.class); + + private static final String DividingLine = "-------------------------------------------------------------------------------"; + + private static boolean loadDone = false; + + private static boolean captureDone = false; + + private static ExecutorService csvWriterThread; + + private static DefaultListModel listModel; + + public static void main(String[] args) { + String pcapPath, outPath; + File in, out; + long flowTimeout = 120000000L; + long activityTimeout = 5000000L; + String rootPath = System.getProperty("user.dir"); + if (args.length < 1) { + showUsage(); + return; + } + switch (args[0]) { + case "-l": + logger.info("\nLoad the list of network interfaces.\n"); + try { + SwingUtilities.invokeAndWait(Cmd2::loadPcapIfs); + } catch (InterruptedException|java.lang.reflect.InvocationTargetException e) { + logger.error(e.getMessage()); + } + return; + case "-i": + logger.info("\nCapture packets from the given interface in realtime.\n"); + try { + initRealtimeCapture(); + SwingUtilities.invokeAndWait(() -> startTrafficFlow(args[1])); + } catch (InterruptedException|java.lang.reflect.InvocationTargetException e) { + logger.error(e.getMessage()); + } + while (!captureDone) + pauseMainThread(60000L); + return; + case "-r": + logger.info("\nLoad interfaces and select the interface to capture.\n"); + try { + initRealtimeCapture(); + SwingUtilities.invokeAndWait(Cmd2::loadPcapIfs); + } catch (InterruptedException|java.lang.reflect.InvocationTargetException e) { + logger.error(e.getMessage()); + } + while (!loadDone) + pauseMainThread(1000L); + try { + Scanner sc = new Scanner(System.in); + System.out.print("\nChoose index of the interface to capture: "); + int input = sc.nextInt(); + SwingUtilities.invokeAndWait(() -> startTrafficFlow(input)); + } catch (InterruptedException|java.lang.reflect.InvocationTargetException e) { + logger.error(e.getMessage()); + } + while (!captureDone) + pauseMainThread(60000L); + return; + case "-o": + logger.info("\nOffline pcap analysis.\n"); + if (args.length < 3) { + showUsage(); + return; + } + pcapPath = args[1]; + outPath = args[2]; + in = new File(pcapPath); + if (!in.exists()) { + logger.info("The pcap file or folder does not exist! -> {}", pcapPath); + return; + } + out = new File(outPath); + if (out.isFile()) { + logger.info("The out folder does not exist! -> {}", outPath); + return; + } + logger.info("You select: {}", pcapPath); + logger.info("Out folder: {}", outPath); + if (in.isDirectory()) { + readPcapDir(in, outPath, flowTimeout, activityTimeout); + } else if (!SwingUtils.isPcapFile(in)) { + logger.info("Please select pcap file!"); + } else { + logger.info("CICFlowMeter received 1 pcap file"); + readPcapFile(in.getPath(), outPath, flowTimeout, activityTimeout); + } + return; + } + showUsage(); + } + + private static void showUsage() { + logger.info("\n\nUsage: sh cfm command [ \n-l load the list of interfaces \n-r load list of interfaces and next select the one to capture \n-i [name_of_interface] capture realtime packet from name_of_interface \n-o [input path/file] [output path] offline pcap analysis\n ]\n"); + } + + private static void initRealtimeCapture() { + FlowMgr.getInstance().init(); + csvWriterThread = Executors.newSingleThreadExecutor(); + } + + private static void pauseMainThread(long millis) { + try { + Thread.sleep(millis); + } catch (InterruptedException e) { + logger.error(e.getMessage()); + } + } + + private static void loadPcapIfs() { + loadDone = false; + listModel = new DefaultListModel<>(); + LoadPcapInterfaceWorker task = new LoadPcapInterfaceWorker(); + task.addPropertyChangeListener(event -> { + if ("state".equals(event.getPropertyName())) { + LoadPcapInterfaceWorker task1 = (LoadPcapInterfaceWorker)event.getSource(); + switch (task1.getState()) { + case DONE: + try { + List ifs = (List)task1.get(); + List pcapiflist = PcapIfWrapper.fromPcapIf(ifs); + int i = 0; + for (PcapIfWrapper w : pcapiflist) { + listModel.addElement(w); + System.out.println(i + " : " + w); + i++; + } + loadDone = true; + } catch (InterruptedException|java.util.concurrent.ExecutionException e) { + logger.error(e.getMessage()); + } + break; + } + } + }); + task.execute(); + } + + private static void startTrafficFlow(int id) { + try { + String ifName = ((PcapIfWrapper)listModel.get(id)).name(); + if (ifName != null) + startTrafficFlow(ifName); + } catch (Exception e) { + logger.error(e.getMessage()); + } + } + + private static void startTrafficFlow(String name) { + TrafficFlowWorker task = new TrafficFlowWorker(name); + task.addPropertyChangeListener(event -> { + TrafficFlowWorker task1 = (TrafficFlowWorker)event.getSource(); + if ("progress".equals(event.getPropertyName())) { + logger.info(String.valueOf(event.getNewValue())); + } else if ("flow".equalsIgnoreCase(event.getPropertyName())) { + insertFlow((BasicFlow)event.getNewValue()); + } else if ("state".equals(event.getPropertyName())) { + switch (task1.getState()) { + case DONE: + try { + captureDone = true; + logger.info((String)task.get()); + } catch (CancellationException e) { + logger.info("Pcap stop listening"); + } catch (Exception e) { + logger.error(e.getMessage()); + } + break; + } + } + }); + task.execute(); + } + + private static void insertFlow(BasicFlow flow) { + List flowStringList = new ArrayList<>(); + String flowDump = flow.dumpFlowBasedFeaturesEx(); + flowStringList.add(flowDump); + String header = FlowFeature.getHeader(); + String path = FlowMgr.getInstance().getSavePath(); + String filename = LocalDate.now() + "_Flow.csv"; + csvWriterThread.execute((Runnable)new InsertCsvRow(header, flowStringList, path, filename)); + } + + private static void readPcapDir(File inputPath, String outPath, long flowTimeout, long activityTimeout) { + if (inputPath == null || outPath == null) + return; + File[] pcapFiles = inputPath.listFiles(SwingUtils::isPcapFile); + int file_cnt = pcapFiles.length; + System.out.println(String.format("CICFlowMeter found :%d pcap files", new Object[] { Integer.valueOf(file_cnt) })); + for (int i = 0; i < file_cnt; i++) { + File file = pcapFiles[i]; + if (!file.isDirectory()) { + int cur = i + 1; + System.out.println(String.format("==> %d / %d", new Object[] { Integer.valueOf(cur), Integer.valueOf(file_cnt) })); + readPcapFile(file.getPath(), outPath, flowTimeout, activityTimeout); + } + } + System.out.println("Completed!"); + } + + private static void readPcapFile(String inputFile, String outPath, long flowTimeout, long activityTimeout) { + if (inputFile == null || outPath == null) + return; + String fileName = FilenameUtils.getName(inputFile); + if (!outPath.endsWith(Sys.FILE_SEP)) + outPath = outPath + Sys.FILE_SEP; + File saveFileFullPath = new File(outPath + fileName + "_Flow.csv"); + if (saveFileFullPath.exists() && + !saveFileFullPath.delete()) + System.out.println("Save file can not be deleted"); + FlowGenerator flowGen = new FlowGenerator(true, flowTimeout, activityTimeout); + flowGen.addFlowListener(new FlowListener(fileName, outPath)); + boolean readIP6 = false; + boolean readIP4 = true; + PacketReader packetReader = new PacketReader(inputFile, readIP4, readIP6); + System.out.println(String.format("Working on... %s", new Object[] { fileName })); + int nValid = 0; + int nTotal = 0; + int nDiscarded = 0; + long start = System.currentTimeMillis(); + int i = 0; + while (true) { + try { + BasicPacketInfo basicPacket = packetReader.nextPacket(); + nTotal++; + if (basicPacket != null) { + flowGen.addPacket(basicPacket); + nValid++; + } else { + nDiscarded++; + } + } catch (PcapClosedException e) { + break; + } + i++; + } + flowGen.dumpLabeledCurrentFlow(saveFileFullPath.getPath(), FlowFeature.getHeader()); + long lines = SwingUtils.countLines(saveFileFullPath.getPath()); + System.out.println(String.format("%s is done. total %d flows ", new Object[] { fileName, Long.valueOf(lines) })); + System.out.println(String.format("Packet stats: Total=%d,Valid=%d,Discarded=%d", new Object[] { Integer.valueOf(nTotal), Integer.valueOf(nValid), Integer.valueOf(nDiscarded) })); + System.out.println("-------------------------------------------------------------------------------"); + } + + static class FlowListener implements FlowGenListener { + private String fileName; + + private String outPath; + + private long cnt; + + public FlowListener(String fileName, String outPath) { + this.fileName = fileName; + this.outPath = outPath; + } + + public void onFlowGenerated(BasicFlow flow) { + String flowDump = flow.dumpFlowBasedFeaturesEx(); + List flowStringList = new ArrayList<>(); + flowStringList.add(flowDump); + InsertCsvRow.insert(FlowFeature.getHeader(), flowStringList, this.outPath, this.fileName + "_Flow.csv"); + this.cnt++; + String console = String.format("%s -> %d flows \r", new Object[] { this.fileName, Long.valueOf(this.cnt) }); + System.out.print(console); + } + } +} diff --git a/src/main/java/cic/cs/unb/ca/jnetpcap/FlowFeature.java b/src/main/java/cic/cs/unb/ca/jnetpcap/FlowFeature.java index 35a8849b..2512705a 100644 --- a/src/main/java/cic/cs/unb/ca/jnetpcap/FlowFeature.java +++ b/src/main/java/cic/cs/unb/ca/jnetpcap/FlowFeature.java @@ -10,90 +10,89 @@ public enum FlowFeature { - fid("Flow ID","FID",false), //1 this index is for feature not for ordinal - src_ip("Src IP","SIP",false), //2 + fid("Flow ID","FID",false), //1 this index is for feature not for ordinal + src_ip("Src IP","SIP",false), //2 src_port("Src Port","SPT"), //3 - dst_ip("Dst IP","DIP",false), //4 - dst_pot("Dst Port","DPT"), //5 - prot("Protocol","PROT"), //6 - tstp("Timestamp","TSTP",false), //7 + dst_ip("Dst IP","DIP",false), //4 + dst_pot("Dst Port","DPT"), //5 + prot("Protocol","PROT"), //6 + tstp("Timestamp","TSTP",false), //7 fl_dur("Flow Duration","DUR"), //8 - tot_fw_pkt("Total Fwd Packet","TFwP"), //9 - tot_bw_pkt("Total Bwd packets","TBwP"), //10 - tot_l_fw_pkt("Total Length of Fwd Packet","TLFwP"), //11 - tot_l_bw_pkt("Total Length of Bwd Packet","TLBwP"), //12 - fw_pkt_l_max("Fwd Packet Length Max","FwPLMA"), //13 - fw_pkt_l_min("Fwd Packet Length Min","FwPLMI"), //14 - fw_pkt_l_avg("Fwd Packet Length Mean","FwPLAG"), //15 - fw_pkt_l_std("Fwd Packet Length Std","FwPLSD"), //16 - bw_pkt_l_max("Bwd Packet Length Max","BwPLMA"), //17 - bw_pkt_l_min("Bwd Packet Length Min","BwPLMI"), //18 - bw_pkt_l_avg("Bwd Packet Length Mean","BwPLAG"), //19 - bw_pkt_l_std("Bwd Packet Length Std","BwPLSD"), //20 - fl_byt_s("Flow Bytes/s","FB/s"), //21 - fl_pkt_s("Flow Packets/s","FP/s"), //22 - fl_iat_avg("Flow IAT Mean","FLIATAG"), //23 - fl_iat_std("Flow IAT Std","FLIATSD"), //24 - fl_iat_max("Flow IAT Max","FLIATMA"), //25 - fl_iat_min("Flow IAT Min","FLIATMI"), //26 - fw_iat_tot("Fwd IAT Total","FwIATTO"), //27 - fw_iat_avg("Fwd IAT Mean","FwIATAG"), //28 - fw_iat_std("Fwd IAT Std","FwIATSD"), //29 - fw_iat_max("Fwd IAT Max","FwIATMA"), //30 - fw_iat_min("Fwd IAT Min","FwIATMI"), //31 - bw_iat_tot("Bwd IAT Total","BwIATTO"), //32 - bw_iat_avg("Bwd IAT Mean","BwIATAG"), //33 - bw_iat_std("Bwd IAT Std","BwIATSD"), //34 - bw_iat_max("Bwd IAT Max","BwIATMA"), //35 - bw_iat_min("Bwd IAT Min","BwIATMI"), //36 - fw_psh_flag("Fwd PSH Flags","FwPSH"), //37 - bw_psh_flag("Bwd PSH Flags","BwPSH"), //38 - fw_urg_flag("Fwd URG Flags","FwURG"), //39 - bw_urg_flag("Bwd URG Flags","BwURG"), //40 - fw_hdr_len("Fwd Header Length","FwHL"), //41 - bw_hdr_len("Bwd Header Length","BwHL"), //42 - fw_pkt_s("Fwd Packets/s","FwP/s"), //43 - bw_pkt_s("Bwd Packets/s","Bwp/s"), //44 - pkt_len_min("Packet Length Min","PLMI"), //45 - pkt_len_max("Packet Length Max","PLMA"), //46 - pkt_len_avg("Packet Length Mean","PLAG"), //47 - pkt_len_std("Packet Length Std","PLSD"), //48 - pkt_len_var("Packet Length Variance","PLVA"), //49 - fin_cnt("FIN Flag Count","FINCT"), //50 - syn_cnt("SYN Flag Count","SYNCT"), //51 - rst_cnt("RST Flag Count","RSTCT"), //52 - pst_cnt("PSH Flag Count","PSHCT"), //53 - ack_cnt("ACK Flag Count","ACKCT"), //54 - urg_cnt("URG Flag Count","URGCT"), //55 - CWR_cnt("CWR Flag Count","CWRCT"), //56 - ece_cnt("ECE Flag Count","ECECT"), //57 - down_up_ratio("Down/Up Ratio","D/URO"), //58 - pkt_size_avg("Average Packet Size","PSAG"), //59 - fw_seg_avg("Fwd Segment Size Avg","FwSgAG"), //60 - bw_seg_avg("Bwd Segment Size Avg","BwSgAG"), //61 - fw_byt_blk_avg("Fwd Bytes/Bulk Avg","FwB/BAG"), //63 62 is duplicated with 41,so has been deleted - fw_pkt_blk_avg("Fwd Packet/Bulk Avg","FwP/BAG"), //64 - fw_blk_rate_avg("Fwd Bulk Rate Avg","FwBRAG"), //65 - bw_byt_blk_avg("Bwd Bytes/Bulk Avg","BwB/BAG"), //66 - bw_pkt_blk_avg("Bwd Packet/Bulk Avg","BwP/BAG"), //67 - bw_blk_rate_avg("Bwd Bulk Rate Avg","BwBRAG"), //68 - subfl_fw_pkt("Subflow Fwd Packets","SFFwP"), //69 - subfl_fw_byt("Subflow Fwd Bytes","SFFwB"), //70 - subfl_bw_pkt("Subflow Bwd Packets","SFBwP"), //71 - subfl_bw_byt("Subflow Bwd Bytes","SFBwB"), //72 - fw_win_byt("FWD Init Win Bytes","FwWB"), //73 - bw_win_byt("Bwd Init Win Bytes","BwWB"), //74 + tot_fw_pkt("Tot Fwd Pkts","TFwP"), //9 + tot_bw_pkt("Tot Bwd Pkts","TBwP"), //10 + tot_l_fw_pkt("TotLen Fwd Pkts","TLFwP"), //11 + tot_l_bw_pkt("TotLen Bwd Pkts","TLBwP"), //12 + fw_pkt_l_max("Fwd Pkt Len Max","FwPLMA"), //13 + fw_pkt_l_min("Fwd Pkt Len Min","FwPLMI"), //14 + fw_pkt_l_avg("Fwd Pkt Len Mean","FwPLAG"), //15 + fw_pkt_l_std("Fwd Pkt Len Std","FwPLSD"), //16 + bw_pkt_l_max("Bwd Pkt Len Max","BwPLMA"), //17 + bw_pkt_l_min("Bwd Pkt Len Min","BwPLMI"), //18 + bw_pkt_l_avg("Bwd Pkt Len Mean","BwPLAG"), //19 + bw_pkt_l_std("Bwd Pkt Len Std","BwPLSD"), //20 + fl_byt_s("Flow Byts/s","FB/s"), //21 + fl_pkt_s("Flow Pkts/s","FP/s"), //22 + fl_iat_avg("Flow IAT Mean","FLIATAG"), //23 + fl_iat_std("Flow IAT Std","FLIATSD"), //24 + fl_iat_max("Flow IAT Max","FLIATMA"), //25 + fl_iat_min("Flow IAT Min","FLIATMI"), //26 + fw_iat_tot("Fwd IAT Tot","FwIATTO"), //27 + fw_iat_avg("Fwd IAT Mean","FwIATAG"), //28 + fw_iat_std("Fwd IAT Std","FwIATSD"), //29 + fw_iat_max("Fwd IAT Max","FwIATMA"), //30 + fw_iat_min("Fwd IAT Min","FwIATMI"), //31 + bw_iat_tot("Bwd IAT Tot","BwIATTO"), //32 + bw_iat_avg("Bwd IAT Mean","BwIATAG"), //33 + bw_iat_std("Bwd IAT Std","BwIATSD"), //34 + bw_iat_max("Bwd IAT Max","BwIATMA"), //35 + bw_iat_min("Bwd IAT Min","BwIATMI"), //36 + fw_psh_flag("Fwd PSH Flags","FwPSH"), //37 + bw_psh_flag("Bwd PSH Flags","BwPSH"), //38 + fw_urg_flag("Fwd URG Flags","FwURG"), //39 + bw_urg_flag("Bwd URG Flags","BwURG"), //40 + fw_hdr_len("Fwd Header Len","FwHL"), //41 + bw_hdr_len("Bwd Header Len","BwHL"), //42 + fw_pkt_s("Fwd Pkts/s","FwP/s"), //43 + bw_pkt_s("Bwd Pkts/s","Bwp/s"), //44 + pkt_len_min("Pkt Len Min","PLMI"), //45 + pkt_len_max("Pkt Len Max","PLMA"), //46 + pkt_len_avg("Pkt Len Mean","PLAG"), //47 + pkt_len_std("Pkt Len Std","PLSD"), //48 + pkt_len_var("Pkt Len Var","PLVA"), //49 + fin_cnt("FIN Flag Cnt","FINCT"), //50 + syn_cnt("SYN Flag Cnt","SYNCT"), //51 + rst_cnt("RST Flag Cnt","RSTCT"), //52 + pst_cnt("PSH Flag Cnt","PSHCT"), //53 + ack_cnt("ACK Flag Cnt","ACKCT"), //54 + urg_cnt("URG Flag Cnt","URGCT"), //55 + cwe_cnt("CWE Flag Count","CWECT"), //56 + ece_cnt("ECE Flag Cnt","ECECT"), //57 + down_up_ratio("Down/Up Ratio","D/URO"), //58 + pkt_size_avg("Pkt Size Avg","PSAG"), //59 + fw_seg_avg("Fwd Seg Size Avg","FwSgAG"), //60 + bw_seg_avg("Bwd Seg Size Avg","BwSgAG"), //61 + fw_byt_blk_avg("Fwd Byts/b Avg","FwB/BAG"), //63 62 is duplicated with 41,so has been deleted + fw_pkt_blk_avg("Fwd Pkts/b Avg","FwP/BAG"), //64 + fw_blk_rate_avg("Fwd Blk Rate Avg","FwBRAG"), //65 + bw_byt_blk_avg("Bwd Byts/b Avg","BwB/BAG"), //66 + bw_pkt_blk_avg("Bwd Pkts/b Avg","BwP/BAG"), //67 + bw_blk_rate_avg("Bwd Blk Rate Avg","BwBRAG"), //68 + subfl_fw_pkt("Subflow Fwd Pkts","SFFwP"), //69 + subfl_fw_byt("Subflow Fwd Byts","SFFwB"), //70 + subfl_bw_pkt("Subflow Bwd Pkts","SFBwP"), //71 + subfl_bw_byt("Subflow Bwd Byts","SFBwB"), //72 + fw_win_byt("Init Fwd Win Byts","FwWB"), //73 + bw_win_byt("Init Bwd Win Byts","BwWB"), //74 Fw_act_pkt("Fwd Act Data Pkts","FwAP"), //75 - fw_seg_min("Fwd Seg Size Min","FwSgMI"), //76 - atv_avg("Active Mean","AcAG"), //77 - atv_std("Active Std","AcSD"), //78 - atv_max("Active Max","AcMA"), //79 - atv_min("Active Min","AcMI"), //80 - idl_avg("Idle Mean","IlAG"), //81 + fw_seg_min("Fwd Seg Size Min","FwSgMI"), //76 + atv_avg("Active Mean","AcAG"), //77 + atv_std("Active Std","AcSD"), //78 + atv_max("Active Max","AcMA"), //79 + atv_min("Active Min","AcMI"), //80 + idl_avg("Idle Mean","IlAG"), //81 idl_std("Idle Std","IlSD"), //82 idl_max("Idle Max","IlMA"), //83 idl_min("Idle Min","IlMI"), //84 - Label("Label","LBL",new String[]{"NeedManualLabel"}); //85