diff --git a/src/client_backend/.vs/client_backend/FileContentIndex/850e2cd0-40b3-4296-9e67-a66ed14a57f3.vsidx b/src/client_backend/.vs/client_backend/FileContentIndex/850e2cd0-40b3-4296-9e67-a66ed14a57f3.vsidx
deleted file mode 100644
index 808aac9..0000000
Binary files a/src/client_backend/.vs/client_backend/FileContentIndex/850e2cd0-40b3-4296-9e67-a66ed14a57f3.vsidx and /dev/null differ
diff --git a/src/client_backend/.vs/client_backend/FileContentIndex/98a16e52-49f0-4f82-b933-bc6dc5e18279.vsidx b/src/client_backend/.vs/client_backend/FileContentIndex/98a16e52-49f0-4f82-b933-bc6dc5e18279.vsidx
deleted file mode 100644
index 5d18560..0000000
Binary files a/src/client_backend/.vs/client_backend/FileContentIndex/98a16e52-49f0-4f82-b933-bc6dc5e18279.vsidx and /dev/null differ
diff --git a/src/client_backend/.vs/client_backend/FileContentIndex/a14359fc-78aa-4a67-aa84-bab4c6d6abee.vsidx b/src/client_backend/.vs/client_backend/FileContentIndex/a14359fc-78aa-4a67-aa84-bab4c6d6abee.vsidx
deleted file mode 100644
index eae5372..0000000
Binary files a/src/client_backend/.vs/client_backend/FileContentIndex/a14359fc-78aa-4a67-aa84-bab4c6d6abee.vsidx and /dev/null differ
diff --git a/src/client_backend/.vs/client_backend/FileContentIndex/efc8e9f2-907e-4168-9099-5a45b172d1fb.vsidx b/src/client_backend/.vs/client_backend/FileContentIndex/efc8e9f2-907e-4168-9099-5a45b172d1fb.vsidx
deleted file mode 100644
index 6ed4f50..0000000
Binary files a/src/client_backend/.vs/client_backend/FileContentIndex/efc8e9f2-907e-4168-9099-5a45b172d1fb.vsidx and /dev/null differ
diff --git a/src/client_backend/.vs/client_backend/v17/.suo b/src/client_backend/.vs/client_backend/v17/.suo
index 8dcc78d..1cee2a4 100644
Binary files a/src/client_backend/.vs/client_backend/v17/.suo and b/src/client_backend/.vs/client_backend/v17/.suo differ
diff --git a/src/client_backend/.vs/client_backend/v17/Browse.VC.db b/src/client_backend/.vs/client_backend/v17/Browse.VC.db
index 24e189c..6899cf3 100644
Binary files a/src/client_backend/.vs/client_backend/v17/Browse.VC.db and b/src/client_backend/.vs/client_backend/v17/Browse.VC.db differ
diff --git a/src/client_backend/.vs/client_backend/v17/Browse.VC.db-shm b/src/client_backend/.vs/client_backend/v17/Browse.VC.db-shm
deleted file mode 100644
index 8bababd..0000000
Binary files a/src/client_backend/.vs/client_backend/v17/Browse.VC.db-shm and /dev/null differ
diff --git a/src/client_backend/.vs/client_backend/v17/Browse.VC.db-wal b/src/client_backend/.vs/client_backend/v17/Browse.VC.db-wal
deleted file mode 100644
index e69de29..0000000
diff --git a/src/client_backend/.vs/client_backend/v17/DocumentLayout.json b/src/client_backend/.vs/client_backend/v17/DocumentLayout.json
new file mode 100644
index 0000000..6180868
--- /dev/null
+++ b/src/client_backend/.vs/client_backend/v17/DocumentLayout.json
@@ -0,0 +1,495 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\virus_ctrl.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:virus_ctrl.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\well_known.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:well_known.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\client_backend.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:client_backend.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\log.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:log.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\log.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:log.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\settings.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:settings.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\update.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:update.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_schedule.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:local_schedule.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\security.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:security.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\update.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:update.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\thread_ctrl.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:thread_ctrl.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\scan.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:scan.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_com.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:local_com.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\check_dir.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:check_dir.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\connect.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:connect.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\security.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:security.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\settings.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:settings.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\check_dir.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:check_dir.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\md5hash.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:md5hash.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\thread_ctrl.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:thread_ctrl.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_schedule.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:local_schedule.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\scan.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:scan.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\queue_ctrl.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:queue_ctrl.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\queue _ctrl.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:queue _ctrl.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\app_ctrl.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:app_ctrl.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\app_ctrl.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:app_ctrl.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\md5hash.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:md5hash.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\permissions.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:permissions.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\permissions.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:permissions.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 0,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "virus_ctrl.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\virus_ctrl.cpp",
+ "RelativeDocumentMoniker": "virus_ctrl.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\virus_ctrl.cpp",
+ "RelativeToolTip": "virus_ctrl.cpp",
+ "ViewState": "AQIAAAcAAAAAAAAAAAAAAAcAAAAAAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-02-18T12:49:41.861Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 15,
+ "Title": "security.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\security.h",
+ "RelativeDocumentMoniker": "security.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\security.h",
+ "RelativeToolTip": "security.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAgAAAAFAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2024-02-17T09:05:01.412Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 8,
+ "Title": "security.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\security.cpp",
+ "RelativeDocumentMoniker": "security.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\security.cpp",
+ "RelativeToolTip": "security.cpp",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAEIAAAAMAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-02-17T09:04:52.66Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 16,
+ "Title": "settings.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\settings.h",
+ "RelativeDocumentMoniker": "settings.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\settings.h",
+ "RelativeToolTip": "settings.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAkAAAAXAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2024-01-28T20:40:06.248Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 5,
+ "Title": "settings.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\settings.cpp",
+ "RelativeDocumentMoniker": "settings.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\settings.cpp",
+ "RelativeToolTip": "settings.cpp",
+ "ViewState": "AQIAAA8AAAAAAAAAAAAAAFMAAAA1AAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-01-28T20:40:06.264Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 19,
+ "Title": "thread_ctrl.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\thread_ctrl.h",
+ "RelativeDocumentMoniker": "thread_ctrl.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\thread_ctrl.h",
+ "RelativeToolTip": "thread_ctrl.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAkAAAAlAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2024-01-28T20:40:06.264Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 10,
+ "Title": "thread_ctrl.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\thread_ctrl.cpp",
+ "RelativeDocumentMoniker": "thread_ctrl.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\thread_ctrl.cpp",
+ "RelativeToolTip": "thread_ctrl.cpp",
+ "ViewState": "AQIAABUAAAAAAAAAAAAAACAAAAAnAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-01-28T20:40:06.264Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 17,
+ "Title": "check_dir.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\check_dir.h",
+ "RelativeDocumentMoniker": "check_dir.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\check_dir.h",
+ "RelativeToolTip": "check_dir.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAcAAAAqAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2024-01-28T20:40:06.264Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 13,
+ "Title": "check_dir.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\check_dir.cpp",
+ "RelativeDocumentMoniker": "check_dir.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\check_dir.cpp",
+ "RelativeToolTip": "check_dir.cpp",
+ "ViewState": "AQIAAH4AAAAAAAAAAAAAAI0AAAAAAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-01-28T20:40:06.279Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "client_backend.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\client_backend.cpp",
+ "RelativeDocumentMoniker": "client_backend.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\client_backend.cpp",
+ "RelativeToolTip": "client_backend.cpp",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAACQAAAAsAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-01-28T20:40:06.279Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "well_known.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\well_known.h",
+ "RelativeDocumentMoniker": "well_known.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\well_known.h",
+ "RelativeToolTip": "well_known.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAoAAAAAAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2024-01-28T20:40:06.295Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 11,
+ "Title": "scan.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\scan.cpp",
+ "RelativeDocumentMoniker": "scan.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\scan.cpp",
+ "RelativeToolTip": "scan.cpp",
+ "ViewState": "AQIAAHQAAAAAAAAAAAAjwH4AAAAQAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-01-28T20:40:06.248Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 6,
+ "Title": "update.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\update.cpp",
+ "RelativeDocumentMoniker": "update.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\update.cpp",
+ "RelativeToolTip": "update.cpp",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAABgAAABPAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-01-28T20:40:06.248Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 7,
+ "Title": "local_schedule.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_schedule.cpp",
+ "RelativeDocumentMoniker": "local_schedule.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_schedule.cpp",
+ "RelativeToolTip": "local_schedule.cpp",
+ "ViewState": "AQIAAHIAAAAAAAAAAAAjwJcAAABKAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-01-28T20:40:06.279Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 9,
+ "Title": "update.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\update.h",
+ "RelativeDocumentMoniker": "update.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\update.h",
+ "RelativeToolTip": "update.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAUAAAAlAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2024-01-28T20:40:06.279Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "log.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\log.h",
+ "RelativeDocumentMoniker": "log.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\log.h",
+ "RelativeToolTip": "log.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAFYAAAASAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2024-01-28T20:40:06.279Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
+ "Title": "log.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\log.cpp",
+ "RelativeDocumentMoniker": "log.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\log.cpp",
+ "RelativeToolTip": "log.cpp",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAA4AAAAYAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-01-28T20:40:06.295Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 20,
+ "Title": "local_schedule.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_schedule.h",
+ "RelativeDocumentMoniker": "local_schedule.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_schedule.h",
+ "RelativeToolTip": "local_schedule.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAoAAAAvAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2024-01-28T20:40:06.295Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 21,
+ "Title": "scan.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\scan.h",
+ "RelativeDocumentMoniker": "scan.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\scan.h",
+ "RelativeToolTip": "scan.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAA4AAAAdAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2024-01-28T20:40:06.295Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 22,
+ "Title": "queue_ctrl.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\queue_ctrl.h",
+ "RelativeDocumentMoniker": "queue_ctrl.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\queue_ctrl.h",
+ "RelativeToolTip": "queue_ctrl.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAgAAAAXAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2024-01-28T20:40:06.295Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 23,
+ "Title": "queue _ctrl.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\queue _ctrl.cpp",
+ "RelativeDocumentMoniker": "queue _ctrl.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\queue _ctrl.cpp",
+ "RelativeToolTip": "queue _ctrl.cpp",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAUAAAAaAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-01-28T20:40:06.295Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 24,
+ "Title": "app_ctrl.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\app_ctrl.h",
+ "RelativeDocumentMoniker": "app_ctrl.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\app_ctrl.h",
+ "RelativeToolTip": "app_ctrl.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAgAAAAbAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2024-01-28T20:40:06.31Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 25,
+ "Title": "app_ctrl.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\app_ctrl.cpp",
+ "RelativeDocumentMoniker": "app_ctrl.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\app_ctrl.cpp",
+ "RelativeToolTip": "app_ctrl.cpp",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAwAAAAPAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-01-28T20:40:06.31Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 26,
+ "Title": "md5hash.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\md5hash.h",
+ "RelativeDocumentMoniker": "md5hash.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\md5hash.h",
+ "RelativeToolTip": "md5hash.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAgAAAAxAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2024-01-28T20:40:06.315Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 27,
+ "Title": "permissions.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\permissions.cpp",
+ "RelativeDocumentMoniker": "permissions.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\permissions.cpp",
+ "RelativeToolTip": "permissions.cpp",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAABYAAAABAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-01-28T20:40:06.315Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 14,
+ "Title": "connect.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\connect.cpp",
+ "RelativeDocumentMoniker": "connect.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\connect.cpp",
+ "RelativeToolTip": "connect.cpp",
+ "ViewState": "AQIAACoAAAAAAAAAAAAAADkAAAARAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-01-28T20:40:06.315Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 12,
+ "Title": "local_com.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_com.cpp",
+ "RelativeDocumentMoniker": "local_com.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_com.cpp",
+ "RelativeToolTip": "local_com.cpp",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAQAAAAXAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-01-28T20:40:06.217Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 18,
+ "Title": "md5hash.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\md5hash.cpp",
+ "RelativeDocumentMoniker": "md5hash.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\md5hash.cpp",
+ "RelativeToolTip": "md5hash.cpp",
+ "ViewState": "AQIAAEYAAAAAAAAAAABBwFYAAABdAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2024-01-28T20:40:06.248Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 28,
+ "Title": "permissions.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\permissions.h",
+ "RelativeDocumentMoniker": "permissions.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\permissions.h",
+ "RelativeToolTip": "permissions.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAA4AAAASAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2024-01-28T20:40:06.315Z"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/client_backend/client_backend.cpp b/src/client_backend/client_backend.cpp
index 693dc62..52fb12b 100644
--- a/src/client_backend/client_backend.cpp
+++ b/src/client_backend/client_backend.cpp
@@ -21,20 +21,26 @@
int main() {
log(LOGLEVEL::INFO, "[main()]:Starting main thread.");
printf("welcome to the jakach security tool main thread\n");
- load_settings();//load the settings from the settings file
- if (update_settings("settings")) { //update the settings from the server
- log(LOGLEVEL::ERR, "[main()]:Could not update settings from server.");
+ if (load_settings() == 0) {//load the settings from the settings file
+ if (update_settings("settings")) { //update the settings from the server
+ log(LOGLEVEL::ERR, "[main()]:Could not update settings from server.");
+ }
+ if (update_settings("rtp_included")) { //update the settings from the server
+ log(LOGLEVEL::ERR, "[main()]:Could not update settings from server.");
+ }
+ if (update_settings("rtp_excluded")) { //update the settings from the server
+ log(LOGLEVEL::ERR, "[main()]:Could not update settings from server.");
+ }
+ if (update_settings("sched")) { //update the settings from the server
+ log(LOGLEVEL::ERR, "[main()]:Could not update settings from server.");
+ }
+ load_settings(); //load the updated settings from the settings file
}
- if (update_settings("rtp_included")) { //update the settings from the server
- log(LOGLEVEL::ERR, "[main()]:Could not update settings from server.");
- }
- if (update_settings("rtp_excluded")) { //update the settings from the server
- log(LOGLEVEL::ERR, "[main()]:Could not update settings from server.");
- }
- if (update_settings("sched")) { //update the settings from the server
- log(LOGLEVEL::ERR, "[main()]:Could not update settings from server.");
- }
- load_settings();
+ else {
+ log(LOGLEVEL::ERR, "[main()]:Could not load settings from file.");
+ log(LOGLEVEL::PANIC, "[main()]:Panic, no settings file loaded, terminating process!");
+ exit(0);
+ }
initialize(DB_DIR); //load the hash databases into memory
//start a second thread which will scan for new files
diff --git a/src/client_backend/client_backend/x64/Debug/app_ctrl.h.ifc b/src/client_backend/client_backend/x64/Debug/app_ctrl.h.ifc
new file mode 100644
index 0000000..9861a4a
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/app_ctrl.h.ifc differ
diff --git a/src/client_backend/client_backend/x64/Debug/app_ctrl.h.ifc.d.json b/src/client_backend/client_backend/x64/Debug/app_ctrl.h.ifc.d.json
new file mode 100644
index 0000000..39a581a
--- /dev/null
+++ b/src/client_backend/client_backend/x64/Debug/app_ctrl.h.ifc.d.json
@@ -0,0 +1,10 @@
+{
+ "Version": "1.2",
+ "Data": {
+ "Source": "c:\\users\\janis\\documents\\projekte_mit_c\\ma\\ma\\src\\client_backend\\app_ctrl.h",
+ "ProvidedModule": "",
+ "Includes": [],
+ "ImportedModules": [],
+ "ImportedHeaderUnits": []
+ }
+}
\ No newline at end of file
diff --git a/src/client_backend/client_backend/x64/Debug/app_ctrl.h.module.json b/src/client_backend/client_backend/x64/Debug/app_ctrl.h.module.json
new file mode 100644
index 0000000..703d24b
--- /dev/null
+++ b/src/client_backend/client_backend/x64/Debug/app_ctrl.h.module.json
@@ -0,0 +1,22 @@
+{
+ "version": 1,
+ "revision": 0,
+ "rules": [
+ {
+ "primary-output": "client_backend\\x64\\Debug\\app_ctrl.h.obj",
+ "outputs": [
+ "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\client_backend\\x64\\Debug\\vc143.pdb",
+ "client_backend\\x64\\Debug\\",
+ "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\client_backend\\x64\\Debug\\app_ctrl.h.ifc"
+ ],
+ "provides": [
+ {
+ "logical-name": "app_ctrl.h",
+ "source-path": "c:\\users\\janis\\documents\\projekte_mit_c\\ma\\ma\\src\\client_backend\\app_ctrl.h",
+ "lookup-method": "absolute"
+ }
+ ],
+ "requires": []
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/client_backend/client_backend/x64/Debug/app_ctrl.h_A879EF61C7609A7B.ifc.dt.d.json b/src/client_backend/client_backend/x64/Debug/app_ctrl.h_A879EF61C7609A7B.ifc.dt.d.json
new file mode 100644
index 0000000..39a581a
--- /dev/null
+++ b/src/client_backend/client_backend/x64/Debug/app_ctrl.h_A879EF61C7609A7B.ifc.dt.d.json
@@ -0,0 +1,10 @@
+{
+ "Version": "1.2",
+ "Data": {
+ "Source": "c:\\users\\janis\\documents\\projekte_mit_c\\ma\\ma\\src\\client_backend\\app_ctrl.h",
+ "ProvidedModule": "",
+ "Includes": [],
+ "ImportedModules": [],
+ "ImportedHeaderUnits": []
+ }
+}
\ No newline at end of file
diff --git a/src/client_backend/client_backend/x64/Debug/app_ctrl.h_A879EF61C7609A7B.ifc.dt.module.json b/src/client_backend/client_backend/x64/Debug/app_ctrl.h_A879EF61C7609A7B.ifc.dt.module.json
new file mode 100644
index 0000000..a1ac063
--- /dev/null
+++ b/src/client_backend/client_backend/x64/Debug/app_ctrl.h_A879EF61C7609A7B.ifc.dt.module.json
@@ -0,0 +1,9 @@
+{
+ "Version": "1.1",
+ "Data": {
+ "Source": "c:\\users\\janis\\documents\\projekte_mit_c\\ma\\ma\\src\\client_backend\\app_ctrl.h",
+ "ProvidedModule": "",
+ "ImportedModules": [],
+ "ImportedHeaderUnits": []
+ }
+}
\ No newline at end of file
diff --git a/src/client_backend/client_backend/x64/Debug/app_ctrl.h_A879EF61C7609A7B.ifc.dt.module.json.command b/src/client_backend/client_backend/x64/Debug/app_ctrl.h_A879EF61C7609A7B.ifc.dt.module.json.command
new file mode 100644
index 0000000..6d72dd0
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/app_ctrl.h_A879EF61C7609A7B.ifc.dt.module.json.command differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.exe.recipe b/src/client_backend/client_backend/x64/Debug/client_backend.exe.recipe
new file mode 100644
index 0000000..129ccb4
--- /dev/null
+++ b/src/client_backend/client_backend/x64/Debug/client_backend.exe.recipe
@@ -0,0 +1,11 @@
+
+
+
+
+ C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\x64\Debug\client_backend.exe
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.ilk b/src/client_backend/client_backend/x64/Debug/client_backend.ilk
new file mode 100644
index 0000000..f600e92
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend.ilk differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.log b/src/client_backend/client_backend/x64/Debug/client_backend.log
new file mode 100644
index 0000000..304b2cc
--- /dev/null
+++ b/src/client_backend/client_backend/x64/Debug/client_backend.log
@@ -0,0 +1,57 @@
+ Quellen werden auf Modulabhängigkeiten überprüft...
+ check_dir.cpp
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\check_dir.cpp(361,7): warning C4101: "fp": Unreferenzierte lokale Variable
+C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\xutility(4537,18): warning C4244: "=": Konvertierung von "wchar_t" in "char", möglicher Datenverlust
+ (Quelldatei „check_dir.cpp“ wird kompiliert)
+ C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\xutility(4537,18):
+ der Vorlageninstanziierungskontext (der älteste zuerst) ist
+ C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\check_dir.cpp(155,29):
+ Siehe Verweis auf die gerade kompilierte Instanziierung "std::basic_string,std::allocator>::basic_string>>,0>(_Iter,_Iter,const _Alloc &)" der Funktions-Vorlage.
+ with
+ [
+ _Elem=wchar_t,
+ _Iter=std::_String_iterator>>,
+ _Alloc=std::allocator
+ ]
+ C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\check_dir.cpp(155,29):
+ Ersten Verweis auf "std::basic_string,std::allocator>::basic_string" in "process_changes" anzeigen
+ C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\xstring(2600,17):
+ Siehe Verweis auf die gerade kompilierte Instanziierung "void std::basic_string,std::allocator>::_Construct_from_iter(_Iter,const _Sent,_Size)" der Funktions-Vorlage.
+ with
+ [
+ _Size_type=unsigned __int64,
+ _Iter=wchar_t *,
+ _Sent=wchar_t *,
+ _Size=unsigned __int64
+ ]
+ C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\xstring(2756,18):
+ Siehe Verweis auf die gerade kompilierte Instanziierung "_OutIt *std::_Copy_n_unchecked4(_InIt,_SizeTy,_OutIt)" der Funktions-Vorlage.
+ with
+ [
+ _OutIt=char *,
+ _Size=unsigned __int64,
+ _InIt=wchar_t *,
+ _SizeTy=unsigned __int64
+ ]
+
+ client_backend.cpp
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend.cpp(88,24): warning C4244: "Argument": Konvertierung von "_Rep" in "DWORD", möglicher Datenverlust
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend.cpp(88,24): warning C4244: with
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend.cpp(88,24): warning C4244: [
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend.cpp(88,24): warning C4244: _Rep=__int64
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend.cpp(88,24): warning C4244: ]
+ connect.cpp
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\connect.cpp(118,65): warning C4267: "Argument": Konvertierung von "size_t" nach "int", Datenverlust möglich
+ local_com.cpp
+ local_schedule.cpp
+ log.cpp
+ md5hash.cpp
+ scan.cpp
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\scan.cpp(153,32): warning C4018: ">=": Konflikt zwischen "signed" und "unsigned"
+ settings.cpp
+ thread_ctrl.cpp
+ update.cpp
+ virus_ctrl.cpp
+ Code wird generiert...
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\md5hash.cpp(36,1): warning C4715: "md5_file": Nicht alle Codepfade geben einen Wert zurück.
+ client_backend.vcxproj -> C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\x64\Debug\client_backend.exe
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.res b/src/client_backend/client_backend/x64/Debug/client_backend.res
new file mode 100644
index 0000000..36f26e2
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend.res differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.tlog/CL.command.1.tlog b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/CL.command.1.tlog
new file mode 100644
index 0000000..e894e55
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/CL.command.1.tlog differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.tlog/CL.read.1.tlog b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/CL.read.1.tlog
new file mode 100644
index 0000000..30c0944
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/CL.read.1.tlog differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.tlog/CL.write.1.tlog b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/CL.write.1.tlog
new file mode 100644
index 0000000..fce1de6
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/CL.write.1.tlog differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.tlog/Cl.items.tlog b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/Cl.items.tlog
new file mode 100644
index 0000000..fb512bc
--- /dev/null
+++ b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/Cl.items.tlog
@@ -0,0 +1,17 @@
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\app_ctrl.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\app_ctrl.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\app_ctrl.h;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\app_ctrl.h.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\check_dir.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\check_dir.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\client_backend.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\connect.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\connect.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\local_com.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\local_com.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\local_schedule.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\local_schedule.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\log.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\log.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\md5hash.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\md5hash.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\permissions.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\permissions.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\queue _ctrl.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\queue _ctrl.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\scan.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\scan.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\security.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\security.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\settings.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\settings.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\thread_ctrl.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\thread_ctrl.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\update.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\update.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\virus_ctrl.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\virus_ctrl.obj
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.tlog/client_backend.lastbuildstate b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/client_backend.lastbuildstate
new file mode 100644
index 0000000..d1a802b
--- /dev/null
+++ b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/client_backend.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.39.33519:TargetPlatformVersion=10.0.22621.0:VcpkgTriplet=x64-windows:
+Debug|x64|C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\|
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.tlog/client_backend.write.1u.tlog b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/client_backend.write.1u.tlog
new file mode 100644
index 0000000..bb0df9f
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/client_backend.write.1u.tlog differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.tlog/link.command.1.tlog b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/link.command.1.tlog
new file mode 100644
index 0000000..b5f3197
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/link.command.1.tlog differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.tlog/link.read.1.tlog b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/link.read.1.tlog
new file mode 100644
index 0000000..d81366e
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/link.read.1.tlog differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.tlog/link.secondary.1.tlog b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/link.secondary.1.tlog
new file mode 100644
index 0000000..922b6b4
--- /dev/null
+++ b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/link.secondary.1.tlog
@@ -0,0 +1,2 @@
+^C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\APP_CTRL.H.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\APP_CTRL.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\CHECK_DIR.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\CLIENT_BACKEND.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\CLIENT_BACKEND.RES|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\CONNECT.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\LOCAL_COM.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\LOCAL_SCHEDULE.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\LOG.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\MD5HASH.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\PERMISSIONS.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\QUEUE _CTRL.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\SCAN.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\SECURITY.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\SETTINGS.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\THREAD_CTRL.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\UPDATE.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\CLIENT_BACKEND\CLIENT_BACKEND\X64\DEBUG\VIRUS_CTRL.OBJ
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\client_backend.ilk
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.tlog/link.write.1.tlog b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/link.write.1.tlog
new file mode 100644
index 0000000..1e38ebc
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/link.write.1.tlog differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.tlog/rc.command.1.tlog b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/rc.command.1.tlog
new file mode 100644
index 0000000..5757e95
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/rc.command.1.tlog differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.tlog/rc.read.1.tlog b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/rc.read.1.tlog
new file mode 100644
index 0000000..8e4afb3
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/rc.read.1.tlog differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.tlog/rc.write.1.tlog b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/rc.write.1.tlog
new file mode 100644
index 0000000..5a88583
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend.tlog/rc.write.1.tlog differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend.vcxproj.FileListAbsolute.txt b/src/client_backend/client_backend/x64/Debug/client_backend.vcxproj.FileListAbsolute.txt
new file mode 100644
index 0000000..d364fae
--- /dev/null
+++ b/src/client_backend/client_backend/x64/Debug/client_backend.vcxproj.FileListAbsolute.txt
@@ -0,0 +1,2 @@
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\x64\Debug\libcrypto-3-x64.dll
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\client_b.C1767528.Up2Date
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend_MD.tlog/CL.command.1.tlog b/src/client_backend/client_backend/x64/Debug/client_backend_MD.tlog/CL.command.1.tlog
new file mode 100644
index 0000000..a03a93e
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend_MD.tlog/CL.command.1.tlog differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend_MD.tlog/Microsoft.Build.CPPTasks.CL.read.1.tlog b/src/client_backend/client_backend/x64/Debug/client_backend_MD.tlog/Microsoft.Build.CPPTasks.CL.read.1.tlog
new file mode 100644
index 0000000..fd0c85c
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend_MD.tlog/Microsoft.Build.CPPTasks.CL.read.1.tlog differ
diff --git a/src/client_backend/client_backend/x64/Debug/client_backend_MD.tlog/Microsoft.Build.CPPTasks.CL.write.1.tlog b/src/client_backend/client_backend/x64/Debug/client_backend_MD.tlog/Microsoft.Build.CPPTasks.CL.write.1.tlog
new file mode 100644
index 0000000..8dea2b7
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/client_backend_MD.tlog/Microsoft.Build.CPPTasks.CL.write.1.tlog differ
diff --git a/src/client_backend/client_backend/x64/Debug/vc143.idb b/src/client_backend/client_backend/x64/Debug/vc143.idb
new file mode 100644
index 0000000..9651c32
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/vc143.idb differ
diff --git a/src/client_backend/client_backend/x64/Debug/vc143.pdb b/src/client_backend/client_backend/x64/Debug/vc143.pdb
new file mode 100644
index 0000000..4fd1d21
Binary files /dev/null and b/src/client_backend/client_backend/x64/Debug/vc143.pdb differ
diff --git a/src/client_backend/client_backend/x64/Debug/vcpkg.applocal.log b/src/client_backend/client_backend/x64/Debug/vcpkg.applocal.log
new file mode 100644
index 0000000..01ac38b
--- /dev/null
+++ b/src/client_backend/client_backend/x64/Debug/vcpkg.applocal.log
@@ -0,0 +1,2 @@
+
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\x64\Debug\libcrypto-3-x64.dll
diff --git a/src/client_backend/log.cpp b/src/client_backend/log.cpp
index 29a75eb..67c628d 100644
--- a/src/client_backend/log.cpp
+++ b/src/client_backend/log.cpp
@@ -14,6 +14,8 @@ std::string get_loglevel(LOGLEVEL level) {
return "VIRUS";
case LOGLEVEL::RISK:
return "RISK";
+ case LOGLEVEL::PANIC:
+ return "PANIC";
default:
return "UNKNOWN";
diff --git a/src/client_backend/log.h b/src/client_backend/log.h
index 4ee232a..1a18eb4 100644
--- a/src/client_backend/log.h
+++ b/src/client_backend/log.h
@@ -11,7 +11,8 @@ enum class LOGLEVEL {
WARN,
ERR,
VIRUS,
- RISK
+ RISK,
+ PANIC
};
std::string get_loglevel(LOGLEVEL level);
@@ -54,6 +55,9 @@ void log(LOGLEVEL level, const std::string& message, Args&&... args) {
case LOGLEVEL::RISK:
error=fopen_s(&fp, RISKFILE, "a");
break;
+ case LOGLEVEL::PANIC:
+ error = fopen_s(&fp, PANICFILE, "a");
+ break;
default:
error=fopen_s(&fp, LOGFILE, "a");
@@ -81,6 +85,9 @@ void log(LOGLEVEL level, const std::string& message, Args&&... args) {
case LOGLEVEL::RISK:
fprintf_s(fp, "%s", logString.c_str());
break;
+ case LOGLEVEL::PANIC:
+ fprintf_s(fp, "%s", logString.c_str());
+ break;
default:
fprintf_s(fp, "%s", logString.c_str());
diff --git a/src/client_backend/security.cpp b/src/client_backend/security.cpp
index 4530125..2fb0154 100644
--- a/src/client_backend/security.cpp
+++ b/src/client_backend/security.cpp
@@ -12,15 +12,17 @@ int check_cert(const char*cert,const char*secrets_path) {
if (strcmp("cert", secrets) == 0) {
fscanf_s(fp, "%s", secrets, 500); // get the secret
if (strcmp(cert, secrets) == 0) {
+ fclose(fp);
delete[] secrets;
return 0;
}
}
}
+ fclose(fp);
delete[] secrets;
return 2;
}
-
+ fclose(fp);
}
char* get_apikey(const char* secrets_path) {
FILE* fp;
@@ -33,12 +35,15 @@ char* get_apikey(const char* secrets_path) {
fscanf_s(fp, "%s", secrets, 500); // get the secret
if (strcmp("apikey", secrets) == 0) {
fscanf_s(fp, "%s", secrets, 500); // get the secret
+ fclose(fp);
return secrets;
}
}
+ fclose(fp);
delete[] secrets;
return 0;
}
+ fclose(fp);
}
char* get_machineid(const char*secrets_path){
FILE* fp;
@@ -51,10 +56,13 @@ char* get_machineid(const char*secrets_path){
fscanf_s(fp, "%s", secrets, 295); // get the secret
if (strcmp("machineid", secrets) == 0) {
fscanf_s(fp, "%s", secrets, 295); // get the secret
+ fclose(fp);
return secrets;
}
}
+ fclose(fp);
delete[] secrets;
return 0;
}
+ fclose(fp);
}
\ No newline at end of file
diff --git a/src/client_backend/settings.cpp b/src/client_backend/settings.cpp
index d2ec200..c69e8b5 100644
--- a/src/client_backend/settings.cpp
+++ b/src/client_backend/settings.cpp
@@ -17,7 +17,7 @@ int load_settings() {
if (fopen_s(&fp, SETTINGS_DB, "r")!=0) {
log(LOGLEVEL::ERR, "[load_settings()]: Could not open settings file. ", SETTINGS_DB);
- strcpy_s(setting_server_server_url, 295, "http://localhost");
+ strcpy_s(setting_server_server_url, 295, "nan");
return 1;
}
else {
diff --git a/src/client_backend/update.cpp b/src/client_backend/update.cpp
index 4da816a..f866cf1 100644
--- a/src/client_backend/update.cpp
+++ b/src/client_backend/update.cpp
@@ -6,7 +6,8 @@
#include "settings.h"
#include "security.h"
-int update_db(const std::string& folder_path) {
+
+int update_db(const char* folder_path) {
//download the databases from the server
for (char firstChar = '0'; firstChar <= 'f'; ++firstChar) {
for (char secondChar = '0'; secondChar <= 'f'; ++secondChar) {
@@ -16,22 +17,26 @@ int update_db(const std::string& folder_path) {
}
// Create the filename based on the naming convention
- std::string file_path = folder_path + "\\" + firstChar + secondChar + ".jdbf";
- std::string file_name = firstChar + secondChar + ".jdbf";
+
+ char file_name[] = { firstChar, secondChar ,'.','j','d','b','f','\0' };
//create the strings to download the files
- char*url=new char[300];
- char*output_path=new char[300];
- get_setting("server:server_url", url);
- strcat_s(url, 295,"/database/");
- strcat_s(url, 295,file_name.c_str() );
- strcpy_s(output_path, 295, file_path.c_str());
-
- int res = download_file_from_srv(url, output_path);
- if (res != 0) {
- log(LOGLEVEL::ERR, "[update_db()]: Error downloading database file from server", url);
- return 1;
+ char* output_path = new char[300];
+ char* url = new char[1000];
+ if (get_setting("server:server_url", url) == 0 or strcmp(url, "nan") == 0) {
+ strcat_s(url, 295, "/database_srv/");
+ strcat_s(url, 295, file_name);
+ strcpy_s(output_path, 295, folder_path);
+ strcat_s(output_path, 295, "\\");
+ strcat_s(output_path, 295, file_name);
+ printf("%s\n", url);
+ int res = download_file_from_srv(url, output_path);
+ if (res != 0) {
+ return 10;
+ }
+ }
+ else {
+ return 2;
}
-
delete[] url;
delete[] output_path;
@@ -43,30 +48,36 @@ int update_db(const std::string& folder_path) {
int update_settings(const char*settings_type) {
//create the strings to download the files
char* url = new char[1000];
- get_setting("server:server_url", url);
- strcat_s(url, 1000, "/api/php/settings/get_settings.php?");//need to add machine_id and apikey
- strcat_s(url, 1000, settings_type);
- strcat_s(url, 1000, "&machine_id=");
- strcat_s(url, 1000, get_machineid(SECRETS));
- strcat_s(url, 1000, "&apikey=");
- strcat_s(url, 1000, get_apikey(SECRETS));
- int res = 1;
- if(strcmp(settings_type,"settings")==0)
- res = download_file_from_srv(url, SETTINGS_DB);
- else if (strcmp(settings_type, "rtp_included") == 0)
- res = download_file_from_srv(url, INCLUDED_FOLDERS);
- else if (strcmp(settings_type, "rtp_excluded") == 0)
- res = download_file_from_srv(url, EXCLUDED_FOLDERS);
- else if (strcmp(settings_type, "sched") == 0)
- res = download_file_from_srv(url, SCHED_PATH);
- //int res = 0;
- if (res != 0) {
- log(LOGLEVEL::ERR, "[update_settings()]: Error downloading settings database file from server", url, " ERROR:",res);
- return 1;
- }
+ if (get_setting("server:server_url", url) == 0 or strcmp(url,"nan")==0) {
+ strcat_s(url, 1000, "/api/php/settings/get_settings.php?");//need to add machine_id and apikey
+ strcat_s(url, 1000, settings_type);
+ strcat_s(url, 1000, "&machine_id=");
+ strcat_s(url, 1000, get_machineid(SECRETS));
+ strcat_s(url, 1000, "&apikey=");
+ strcat_s(url, 1000, get_apikey(SECRETS));
+ int res = 1;
+ if (strcmp(settings_type, "settings") == 0)
+ res = download_file_from_srv(url, SETTINGS_DB);
+ else if (strcmp(settings_type, "rtp_included") == 0)
+ res = download_file_from_srv(url, INCLUDED_FOLDERS);
+ else if (strcmp(settings_type, "rtp_excluded") == 0)
+ res = download_file_from_srv(url, EXCLUDED_FOLDERS);
+ else if (strcmp(settings_type, "sched") == 0)
+ res = download_file_from_srv(url, SCHED_PATH);
+ //int res = 0;
+ if (res != 0) {
+ log(LOGLEVEL::ERR, "[update_settings()]: Error downloading settings database file from server", url, " ERROR:", res);
+ return 1;
+ }
- delete[] url;
- return 0;
+ delete[] url;
+ return 0;
+ }
+ else {
+ delete[] url;
+ return 2;
+ }
+ return 2;
}
int action_update_settings() {
//update the settings
diff --git a/src/client_backend/update.h b/src/client_backend/update.h
index 3fb2d61..25a0369 100644
--- a/src/client_backend/update.h
+++ b/src/client_backend/update.h
@@ -3,7 +3,7 @@
#define UPDATE_H
#include
#include
-int update_db(const std::string& folder_path);
+int update_db(const char* folder_path);
int update_settings(const char*settings_type);
int action_update_settings();
#endif
\ No newline at end of file
diff --git a/src/client_backend/virus_ctrl.cpp b/src/client_backend/virus_ctrl.cpp
index 22986f8..2ebed6f 100644
--- a/src/client_backend/virus_ctrl.cpp
+++ b/src/client_backend/virus_ctrl.cpp
@@ -5,6 +5,7 @@
#include "log.h"
#include "settings.h"
#include "connect.h"
+
int virus_ctrl_store( const char*path, const char*hash, const char*id) {
FILE* fp;
char *db_path = new char[300];
@@ -31,7 +32,7 @@ int virus_ctrl_process( const char* id) {
strcpy_s(db_path, 295, VIRUS_CTRL_DB);
strcat_s(db_path, 295, id);
if (fopen_s(&fp, db_path, "r") != 0) {
- log(LOGLEVEL::ERR, "[virus_ctrl_process()]:Failed to open virus control database to process it.", VIRUS_CTRL_DB);
+ log(LOGLEVEL::ERR, "[virus_ctrl_process()]:Failed to open virus control database to process it.", db_path);
delete[] db_path;
return 1;
}
diff --git a/src/client_backend/well_known.h b/src/client_backend/well_known.h
index d2a8657..4cd9eb4 100644
--- a/src/client_backend/well_known.h
+++ b/src/client_backend/well_known.h
@@ -18,6 +18,7 @@
#define ERRORFILE "C:\\Program Files\\cyberhex\\secure\\log\\error.txt"
#define VIRUSFILE "C:\\Program Files\\cyberhex\\secure\\log\\virus.txt"
#define RISKFILE "C:\\Program Files\\cyberhex\\secure\\log\\risk.txt"
+#define PANICFILE "C:\\Program Files\\cyberhex\\secure\\log\\panic.txt"
#define SRV_LOGFILE "C:\\Program Files\\cyberhex\\secure\\log\\srv_log.txt"
diff --git a/src/client_backend/x64/Debug/client_backend.pdb b/src/client_backend/x64/Debug/client_backend.pdb
index fbaef71..953fecf 100644
Binary files a/src/client_backend/x64/Debug/client_backend.pdb and b/src/client_backend/x64/Debug/client_backend.pdb differ
diff --git a/src/ma_installer/.vs/ma_installer/v17/.suo b/src/ma_installer/.vs/ma_installer/v17/.suo
index fa3b413..35eb3d4 100644
Binary files a/src/ma_installer/.vs/ma_installer/v17/.suo and b/src/ma_installer/.vs/ma_installer/v17/.suo differ
diff --git a/src/ma_installer/.vs/ma_installer/v17/Browse.VC.db b/src/ma_installer/.vs/ma_installer/v17/Browse.VC.db
index 2d55a24..ca8b1c3 100644
Binary files a/src/ma_installer/.vs/ma_installer/v17/Browse.VC.db and b/src/ma_installer/.vs/ma_installer/v17/Browse.VC.db differ
diff --git a/src/ma_installer/.vs/ma_installer/v17/Browse.VC.db-shm b/src/ma_installer/.vs/ma_installer/v17/Browse.VC.db-shm
deleted file mode 100644
index d5012a4..0000000
Binary files a/src/ma_installer/.vs/ma_installer/v17/Browse.VC.db-shm and /dev/null differ
diff --git a/src/ma_installer/.vs/ma_installer/v17/Browse.VC.db-wal b/src/ma_installer/.vs/ma_installer/v17/Browse.VC.db-wal
deleted file mode 100644
index e69de29..0000000
diff --git a/src/ma_installer/.vs/ma_installer/v17/DocumentLayout.json b/src/ma_installer/.vs/ma_installer/v17/DocumentLayout.json
new file mode 100644
index 0000000..b7d16ff
--- /dev/null
+++ b/src/ma_installer/.vs/ma_installer/v17/DocumentLayout.json
@@ -0,0 +1,87 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{AAE7A550-D2C0-45AC-8C26-ED57DF20BFC3}|ma_installer.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\ma_installer.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{AAE7A550-D2C0-45AC-8C26-ED57DF20BFC3}|ma_installer.vcxproj|solutionrelative:ma_installer.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{AAE7A550-D2C0-45AC-8C26-ED57DF20BFC3}|ma_installer.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\well_known.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{AAE7A550-D2C0-45AC-8C26-ED57DF20BFC3}|ma_installer.vcxproj|solutionrelative:well_known.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{AAE7A550-D2C0-45AC-8C26-ED57DF20BFC3}|ma_installer.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\download.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{AAE7A550-D2C0-45AC-8C26-ED57DF20BFC3}|ma_installer.vcxproj|solutionrelative:download.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{AAE7A550-D2C0-45AC-8C26-ED57DF20BFC3}|ma_installer.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\download.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{AAE7A550-D2C0-45AC-8C26-ED57DF20BFC3}|ma_installer.vcxproj|solutionrelative:download.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 3,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "well_known.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\well_known.h",
+ "RelativeDocumentMoniker": "well_known.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\well_known.h",
+ "RelativeToolTip": "well_known.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAABoAAAAOAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2024-02-17T10:06:35.859Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "download.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\download.cpp",
+ "RelativeDocumentMoniker": "download.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\download.cpp",
+ "RelativeToolTip": "download.cpp",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAwAAAABAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2023-12-22T19:47:31.583Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "download.h",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\download.h",
+ "RelativeDocumentMoniker": "download.h",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\download.h",
+ "RelativeToolTip": "download.h",
+ "ViewState": "AQIAAAAAAAAAAAAAAAAAAAQAAABIAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+ "WhenOpened": "2023-12-22T19:47:23.597Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "ma_installer.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\ma_installer.cpp",
+ "RelativeDocumentMoniker": "ma_installer.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\ma_installer.cpp",
+ "RelativeToolTip": "ma_installer.cpp",
+ "ViewState": "AQIAACwAAAAAAAAAAAAuwDwAAAAyAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2023-12-22T18:52:51.74Z",
+ "EditorCaption": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/ma_installer/install.bat b/src/ma_installer/install.bat
new file mode 100644
index 0000000..b7d54ee
--- /dev/null
+++ b/src/ma_installer/install.bat
@@ -0,0 +1,21 @@
+#cyberhex installer downloader
+@echo off
+echo "Downloading Cyberhex installer"
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/ma_installer.exe
+echo "Downloading dll files"
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/libcrypto-3-x64.dll
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/libcurl.dll
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/zlib1.dll
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/client_frontend.exe
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/client_backend.exe
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/ma_uninstaller.exe
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/libcurl-d.dll
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/msvcp140.dll
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/vcruntime140.dll
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/vcruntime140_1d.dll
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/msvcp140d.dll
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/vcruntime140d.dll
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/ucrtbased.dll
+curl -O -L https://github.com/jakani24/cyberhex_bin_distro/raw/main/zlibd1.dll
+echo "Download finished, starting installer"
+start ma_installer.exe
diff --git a/src/ma_installer/ma_installer.cpp b/src/ma_installer/ma_installer.cpp
index 1a5a47c..56d6c96 100644
--- a/src/ma_installer/ma_installer.cpp
+++ b/src/ma_installer/ma_installer.cpp
@@ -19,6 +19,243 @@ Tasks to do:
- create folder for communication
*/
+//create task thx chatgpt ;)#define _WIN32_DCOM
+
+#include
+#include
+#include
+#include
+#include
+#pragma comment(lib, "taskschd.lib")
+#pragma comment(lib, "comsupp.lib")
+
+using namespace std;
+
+int CreateTask()
+{
+ HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
+ if (FAILED(hr))
+ {
+ cout << "CoInitializeEx failed: " << hex << hr << endl;
+ return 1;
+ }
+
+ hr = CoInitializeSecurity(
+ NULL,
+ -1,
+ NULL,
+ NULL,
+ RPC_C_AUTHN_LEVEL_PKT_PRIVACY,
+ RPC_C_IMP_LEVEL_IMPERSONATE,
+ NULL,
+ 0,
+ NULL);
+
+ if (FAILED(hr))
+ {
+ cout << "CoInitializeSecurity failed: " << hex << hr << endl;
+ CoUninitialize();
+ return 1;
+ }
+
+ LPCWSTR wszTaskName = L"CyberhexBackgroundTask";
+ wstring wstrExecutablePath = L"c:\\program files\\cyberhex\\secure\\app\\cyberhex.exe";
+
+ ITaskService* pService = NULL;
+ hr = CoCreateInstance(CLSID_TaskScheduler,
+ NULL,
+ CLSCTX_INPROC_SERVER,
+ IID_ITaskService,
+ (void**)&pService);
+ if (FAILED(hr))
+ {
+ cout << "Failed to create an instance of ITaskService: " << hex << hr << endl;
+ CoUninitialize();
+ return 1;
+ }
+
+ hr = pService->Connect(_variant_t(), _variant_t(),
+ _variant_t(), _variant_t());
+ if (FAILED(hr))
+ {
+ cout << "ITaskService::Connect failed: " << hex << hr << endl;
+ pService->Release();
+ CoUninitialize();
+ return 1;
+ }
+
+ ITaskFolder* pRootFolder = NULL;
+ hr = pService->GetFolder(_bstr_t(L"\\"), &pRootFolder);
+ if (FAILED(hr))
+ {
+ cout << "Cannot get Root Folder pointer: " << hex << hr << endl;
+ pService->Release();
+ CoUninitialize();
+ return 1;
+ }
+
+ pRootFolder->DeleteTask(_bstr_t(wszTaskName), 0);
+
+ ITaskDefinition* pTask = NULL;
+ hr = pService->NewTask(0, &pTask);
+
+ pService->Release();
+ if (FAILED(hr))
+ {
+ cout << "Failed to create a task definition: " << hex << hr << endl;
+ pRootFolder->Release();
+ CoUninitialize();
+ return 1;
+ }
+
+ IPrincipal* pPrincipal = NULL;
+ hr = pTask->get_Principal(&pPrincipal);
+ if (FAILED(hr))
+ {
+ cout << "Cannot get principal pointer: " << hex << hr << endl;
+ pRootFolder->Release();
+ pTask->Release();
+ CoUninitialize();
+ return 1;
+ }
+
+ hr = pPrincipal->put_RunLevel(TASK_RUNLEVEL_HIGHEST);
+ pPrincipal->Release();
+ if (FAILED(hr))
+ {
+ cout << "Cannot set highest privilege level: " << hex << hr << endl;
+ pRootFolder->Release();
+ pTask->Release();
+ CoUninitialize();
+ return 1;
+ }
+
+ ITaskSettings* pSettings = NULL;
+ hr = pTask->get_Settings(&pSettings);
+ if (FAILED(hr))
+ {
+ cout << "Cannot get settings pointer: " << hex << hr << endl;
+ pRootFolder->Release();
+ pTask->Release();
+ CoUninitialize();
+ return 1;
+ }
+
+ hr = pSettings->put_DisallowStartIfOnBatteries(VARIANT_FALSE); // Set to allow start on batteries
+ pSettings->Release();
+ if (FAILED(hr))
+ {
+ cout << "Cannot set start on batteries: " << hex << hr << endl;
+ pRootFolder->Release();
+ pTask->Release();
+ CoUninitialize();
+ return 1;
+ }
+
+ ITriggerCollection* pTriggerCollection = NULL;
+ hr = pTask->get_Triggers(&pTriggerCollection);
+ if (FAILED(hr))
+ {
+ cout << "Cannot get trigger collection: " << hex << hr << endl;
+ pRootFolder->Release();
+ pTask->Release();
+ CoUninitialize();
+ return 1;
+ }
+
+ ITrigger* pTrigger = NULL;
+ hr = pTriggerCollection->Create(TASK_TRIGGER_BOOT, &pTrigger);
+ pTriggerCollection->Release();
+ if (FAILED(hr))
+ {
+ cout << "Cannot create the trigger: " << hex << hr << endl;
+ pRootFolder->Release();
+ pTask->Release();
+ CoUninitialize();
+ return 1;
+ }
+
+ IActionCollection* pActionCollection = NULL;
+ hr = pTask->get_Actions(&pActionCollection);
+ if (FAILED(hr))
+ {
+ cout << "Cannot get Task collection pointer: " << hex << hr << endl;
+ pRootFolder->Release();
+ pTask->Release();
+ CoUninitialize();
+ return 1;
+ }
+
+ IAction* pAction = NULL;
+ hr = pActionCollection->Create(TASK_ACTION_EXEC, &pAction);
+ pActionCollection->Release();
+ if (FAILED(hr))
+ {
+ cout << "Cannot create the action: " << hex << hr << endl;
+ pRootFolder->Release();
+ pTask->Release();
+ CoUninitialize();
+ return 1;
+ }
+
+ IExecAction* pExecAction = NULL;
+ hr = pAction->QueryInterface(
+ IID_IExecAction, (void**)&pExecAction);
+ pAction->Release();
+ if (FAILED(hr))
+ {
+ cout << "QueryInterface call failed for IExecAction: " << hex << hr << endl;
+ pRootFolder->Release();
+ pTask->Release();
+ CoUninitialize();
+ return 1;
+ }
+
+ hr = pExecAction->put_Path(_bstr_t(wstrExecutablePath.c_str()));
+ pExecAction->Release();
+ if (FAILED(hr))
+ {
+ cout << "Cannot set path of executable: " << hex << hr << endl;
+ pRootFolder->Release();
+ pTask->Release();
+ CoUninitialize();
+ return 1;
+ }
+
+ IRegisteredTask* pRegisteredTask = NULL;
+ VARIANT varPassword;
+ varPassword.vt = VT_EMPTY;
+ hr = pRootFolder->RegisterTaskDefinition(
+ _bstr_t(wszTaskName),
+ pTask,
+ TASK_CREATE_OR_UPDATE,
+ _variant_t(L"SYSTEM"),
+ varPassword,
+ TASK_LOGON_SERVICE_ACCOUNT,
+ _variant_t(L""),
+ &pRegisteredTask);
+ if (FAILED(hr))
+ {
+ cout << "Error saving the Task : " << hex << hr << endl;
+ pRootFolder->Release();
+ pTask->Release();
+ CoUninitialize();
+ return 1;
+ }
+
+ cout << "Success! Task successfully registered." << endl;
+
+ pRootFolder->Release();
+ pTask->Release();
+ pRegisteredTask->Release();
+ CoUninitialize();
+ return 0;
+}
+
+
+
+
+
//check if programm is run as admin
bool is_admin() {
BOOL fIsRunAsAdmin = FALSE;
@@ -205,11 +442,11 @@ int check_cert(const char* cert, const char* secrets_path) {
return 1;
}
else {
- char* secrets = new char[300];
+ char* secrets = new char[505];
while (!feof(fp)) {
- fscanf_s(fp, "%s", secrets, 295); // get the secret
+ fscanf_s(fp, "%s", secrets, 500); // get the secret
if (strcmp("cert", secrets) == 0) {
- fscanf_s(fp, "%s", secrets, 295); // get the secret
+ fscanf_s(fp, "%s", secrets, 500); // get the secret
if (strcmp(cert, secrets) == 0) {
delete[] secrets;
return 0;
@@ -227,17 +464,20 @@ char* get_apikey(const char* secrets_path) {
return 0;
}
else {
- char* secrets = new char[300];
+ char* secrets = new char[505];
while (!feof(fp)) {
- fscanf_s(fp, "%s", secrets, 295); // get the secret
+ fscanf_s(fp, "%s", secrets, 500); // get the secret
if (strcmp("apikey", secrets) == 0) {
- fscanf_s(fp, "%s", secrets, 295); // get the secret
+ fscanf_s(fp, "%s", secrets, 500); // get the secret
+ fclose(fp);
return secrets;
}
}
+ fclose(fp);
delete[] secrets;
return 0;
}
+
}
char* get_machineid(const char* secrets_path) {
FILE* fp;
@@ -250,12 +490,15 @@ char* get_machineid(const char* secrets_path) {
fscanf_s(fp, "%s", secrets, 295); // get the secret
if (strcmp("machineid", secrets) == 0) {
fscanf_s(fp, "%s", secrets, 295); // get the secret
+ fclose(fp);
return secrets;
}
}
+ fclose(fp);
delete[] secrets;
return 0;
}
+ fclose(fp);
}
char* get_server(const char* secrets_path) {
FILE* fp;
@@ -268,12 +511,130 @@ char* get_server(const char* secrets_path) {
fscanf_s(fp, "%s", secrets, 295); // get the secret
if (strcmp("server", secrets) == 0) {
fscanf_s(fp, "%s", secrets, 295); // get the secret
+ fclose(fp);
return secrets;
}
}
+ fclose(fp);
delete[] secrets;
return 0;
}
+ fclose(fp);
+}
+
+int update_db(const char* folder_path) {
+ //download the databases from the server
+ for (char firstChar = '0'; firstChar <= 'f'; ++firstChar) {
+ for (char secondChar = '0'; secondChar <= 'f'; ++secondChar) {
+ // Ensure that the characters are valid hexadecimal digits
+ if (!std::isxdigit(firstChar) || !std::isxdigit(secondChar) or std::isupper(firstChar) or std::isupper(secondChar)) {
+ continue;
+ }
+
+ // Create the filename based on the naming convention
+
+ char file_name[]= { firstChar, secondChar ,'.','j','d','b','f','\0' };
+ //create the strings to download the files
+ char* url = new char[300];
+ char* output_path = new char[300];
+ strcpy_s(url, 295, get_server("setup.txt"));
+ strcat_s(url, 295, "/database_srv/");
+ strcat_s(url, 295, file_name);
+ strcpy_s(output_path, 295, folder_path);
+ strcat_s(output_path, 295, "\\");
+ strcat_s(output_path, 295, file_name);
+ printf("%s\n", url);
+ int res = download_file_from_srv(url, output_path);
+ if (res != 0) {
+ return 10;
+ }
+
+
+ delete[] url;
+ delete[] output_path;
+
+ }
+ }
+ return 0;
+}
+int update_settings(const char* settings_type) {
+ //create the strings to download the files
+ char* url = new char[1000];
+ strcpy_s(url, 1000, get_server("setup.txt"));
+ strcat_s(url, 1000, "/api/php/settings/get_settings.php?");//need to add machine_id and apikey
+ strcat_s(url, 1000, settings_type);
+ strcat_s(url, 1000, "&machine_id=");
+ strcat_s(url, 1000, get_machineid(SECRETS));
+ strcat_s(url, 1000, "&apikey=");
+ strcat_s(url, 1000, get_apikey(SECRETS));
+ int res = 1;
+ if (strcmp(settings_type, "settings") == 0)
+ res = download_file_from_srv(url, SETTINGS_DB);
+ else if (strcmp(settings_type, "rtp_included") == 0)
+ res = download_file_from_srv(url, INCLUDED_FOLDERS);
+ else if (strcmp(settings_type, "rtp_excluded") == 0)
+ res = download_file_from_srv(url, EXCLUDED_FOLDERS);
+ else if (strcmp(settings_type, "sched") == 0)
+ res = download_file_from_srv(url, SCHED_PATH);
+ //int res = 0;
+ if (res != 0) {
+ return 1;
+ }
+
+ delete[] url;
+ return 0;
+}
+int action_update_settings() {
+ //update the settings
+ int err = 0;
+ if (update_settings("settings") != 0) {
+ err = 9;
+ }
+ //update the included folders
+ if (update_settings("rtp_included") != 0) {
+ err = 9;
+ }
+ //update the excluded folders
+ if (update_settings("rtp_excluded") != 0) {
+ err = 9;
+ }
+ //update the schedule
+ if (update_settings("sched") != 0) {
+ err = 9;
+ }
+ return err;
+}
+int action_update_db() {
+ //update the databases
+ return update_db(DB_DIR);
+}
+int copy(const char* source_path, const char* destination_path) {
+ FILE* source_file, * destination_file;
+ char buffer[4096]; // Buffer to store data read from source file
+
+ // Open source file for reading
+ if (fopen_s(&source_file, source_path, "rb") != 0) {
+ return 1;
+ }
+
+ // Open destination file for writing
+ if (fopen_s(&destination_file, destination_path, "wb") != 0) {
+ fclose(source_file);
+ return 1;
+ }
+
+ // Copy contents from source to destination
+ size_t bytes_read;
+ while ((bytes_read = fread(buffer, 1, sizeof(buffer), source_file)) > 0) {
+ fwrite(buffer, 1, bytes_read, destination_file);
+ }
+
+ // Close files
+ fclose(source_file);
+ fclose(destination_file);
+
+
+ return 0;
}
int main()
{
@@ -283,7 +644,7 @@ int main()
printf("We are not administrator, requesting UAC\n");
if (!run_as_admin()) {
printf("We did not get administrative rights. Please restart the installer!\n");
- MessageBox(NULL, L"Please start the installer with amdin privileges!", L"Error", MB_OK);
+ MessageBox(NULL, L"Please start the installer with admin privileges!", L"Error", MB_OK);
exit(1);
}
else {
@@ -332,92 +693,98 @@ int main()
FILE* fp;
char*apikey=get_apikey("secrets.txt");
char*machineid=get_machineid("secrets.txt");
- char* server_url = get_server("setup.txt");
+ char*server_url = get_server("setup.txt");
+ printf("%s\n", server_url);
//copy secrets.txt into the secrets folder
if (rename("secrets.txt", SECRETS)!=0) {
error = 8;
}
//download all the other files
+ //download the settings:
+ if (error == 0) {
+ printf("Downloading settings from server\n");
+ error = action_update_settings();
+ }
+ if (error == 0) {
+ printf("Downloading databases from server\n");
+ error = action_update_db();
+ }
+
if (error == 0) {
- printf("Downloading files from server\n");
- printf("Downloading cyberhex.exe\n");
- error=download_file_from_srv("https://cyberhex.org/download/cyberhex.exe", "C:\\Program Files\\cyberhex\\secure\\app\\cyberhex.exe");
+ printf("Moving files into secure directorys\n");
+ printf("Movin cyberhex.exe\n");
+ //!!need to change: download in advance and then move to the correct folder
+ //error=download_file_from_srv("https://github.com/jakani24/cyberhex_bin_distro/raw/main/client_backend.exe", "C:\\Program Files\\cyberhex\\secure\\app\\cyberhex.exe");
+ if(rename("client_backend.exe", "C:\\Program Files\\cyberhex\\secure\\app\\cyberhex.exe")!=0)
+ error = 7;
if (error == 0) {
- printf("Downloading libcrypto-3-x64.dll\n");
- error = download_file_from_srv("https://cyberhex.org/download/libcrypto-3-x64.dll", "C:\\Program Files\\cyberhex\\secure\\app\\libcrypto-3-x64.dll");
+ printf("Moving libcrypto-3-x64.dll\n");
+ //error = download_file_from_srv("https://github.com/jakani24/cyberhex_bin_distro/raw/main/libcrypto-3-x64.dll", "C:\\Program Files\\cyberhex\\secure\\app\\libcrypto-3-x64.dll");
+ if(rename("libcrypto-3-x64.dll", "C:\\Program Files\\cyberhex\\secure\\app\\libcrypto-3-x64.dll")!=0)
+ error = 7;
}if (error == 0) {
- printf("Downloading libcurl.dll\n");
- error = download_file_from_srv("https://cyberhex.org/download/libcurl.dll", "C:\\Program Files\\cyberhex\\secure\\app\\libcurl.dll");
+ printf("Moving libcurl.dll\n");
+ //error = download_file_from_srv("https://github.com/jakani24/cyberhex_bin_distro/raw/main/libcurl.dll", "C:\\Program Files\\cyberhex\\secure\\app\\libcurl.dll");
+ if(rename("libcurl.dll", "C:\\Program Files\\cyberhex\\secure\\app\\libcurl.dll")!=0)
+ error = 7;
}if (error == 0) {
- printf("Downloading zlib1.dll\n");
- error = download_file_from_srv("https://cyberhex.org/download/zlib1.dll", "C:\\Program Files\\cyberhex\\secure\\app\\zlib1.dll");
+ printf("Moving zlib1.dll\n");
+ if(rename("zlib1.dll", "C:\\Program Files\\cyberhex\\secure\\app\\zlib1.dll")!=0)
+ error = 7;
+ //error = download_file_from_srv("https://github.com/jakani24/cyberhex_bin_distro/raw/main/zlib1.dll", "C:\\Program Files\\cyberhex\\secure\\app\\zlib1.dll");
}if (error == 0) {
- printf("Downloading cyberhex_desktop.dll\n");
- error = download_file_from_srv("https://cyberhex.org/download/cyberhex_desktop.exe", "C:\\Program Files\\cyberhex\\app\\cyberhex_desktop.exe");
+ printf("Moving cyberhex_desktop.exe\n");
+ if(rename("client_frontend.exe", "C:\\Program Files\\cyberhex\\app\\cyberhex_desktop.exe")!=0)
+ error = 7;
+ //error = download_file_from_srv("https://github.com/jakani24/cyberhex_bin_distro/raw/main/client_frontend.exe", "C:\\Program Files\\cyberhex\\app\\cyberhex_desktop.exe");
+ }if (error == 0) {
+ printf("Moving msvcp140.dll\n");
+ //error = download_file_from_srv("https://github.com/jakani24/cyberhex_bin_distro/raw/main/libcurl.dll", "C:\\Program Files\\cyberhex\\secure\\app\\libcurl.dll");
+ if (copy("msvcp140.dll", "C:\\Program Files\\cyberhex\\secure\\app\\msvcp140.dll") != 0)
+ error = 7;
+ if (copy("msvcp140.dll", "C:\\Program Files\\cyberhex\\app\\msvcp140.dll") != 0)
+ error = 7;
+ }if (error == 0) {
+ printf("Moving msvcp140d.dll\n");
+ //error = download_file_from_srv("https://github.com/jakani24/cyberhex_bin_distro/raw/main/libcurl.dll", "C:\\Program Files\\cyberhex\\secure\\app\\libcurl.dll");
+ if (copy("msvcp140d.dll", "C:\\Program Files\\cyberhex\\secure\\app\\msvcp140d.dll") != 0)
+ error = 7;
+ if (copy("msvcp140d.dll", "C:\\Program Files\\cyberhex\\app\\msvcp140d.dll") != 0)
+ error = 7;
+ }if (error == 0) {
+ printf("Moving vcruntime140.dll\n");
+ if (copy("vcruntime140.dll", "C:\\Program Files\\cyberhex\\secure\\app\\vcruntime140.dll") != 0)
+ error = 7;
+ if (copy("vcruntime140.dll", "C:\\Program Files\\cyberhex\\app\\vcruntime140.dll") != 0)
+ error = 7;
+ }if (error == 0) {
+ printf("Moving vcruntime140d.dll\n");
+ if (copy("vcruntime140d.dll", "C:\\Program Files\\cyberhex\\secure\\app\\vcruntime140d.dll") != 0)
+ error = 7;
+ if (copy("vcruntime140d.dll", "C:\\Program Files\\cyberhex\\app\\vcruntime140d.dll") != 0)
+ error = 7;
+ }if (error == 0) {
+ printf("Moving vcruntime140_1d.dll\n");
+ if (copy("vcruntime140_1d.dll", "C:\\Program Files\\cyberhex\\secure\\app\\vcruntime140_1d.dll") != 0)
+ error = 7;
+ if (copy("vcruntime140_1d.dll", "C:\\Program Files\\cyberhex\\app\\vcruntime140_1d.dll") != 0)
+ error = 7;
+ }if (error == 0) {
+ printf("Moving ucrtbased.dll\n");
+ if (copy("ucrtbased.dll", "C:\\Program Files\\cyberhex\\secure\\app\\ucrtbased.dll") != 0)
+ error = 7;
+ if (copy("ucrtbased.dll", "C:\\Program Files\\cyberhex\\app\\ucrtbased.dll") != 0)
+ error = 7;
}
}
- //create background service
- if (error == 0) {
- printf("Creating background service\n");
- SC_HANDLE hSCManager = OpenSCManager(nullptr, nullptr, SC_MANAGER_ALL_ACCESS);
- if (!hSCManager) {
- //std::cerr << "Failed to open service control manager. Error code: " << GetLastError() << std::endl;
- error = 4;
- }
-
- LPCWSTR serviceName = L"cyberhex_background_service";
- LPCWSTR servicePath = L"C:\\Program Files\\cyberhex\\secure\\app\\cyberhex.exe";
-
- SC_HANDLE hService = CreateService(
- hSCManager,
- serviceName,
- serviceName,
- SERVICE_ALL_ACCESS,
- SERVICE_WIN32_OWN_PROCESS,
- SERVICE_AUTO_START,
- SERVICE_ERROR_NORMAL,
- servicePath,
- nullptr,
- nullptr,
- nullptr,
- nullptr,
- nullptr
- );
-
- if (!hService) {
- //std::cerr << "Failed to create service. Error code: " << GetLastError() << std::endl;
- CloseServiceHandle(hSCManager);
- error = 5;
- }
-
- // Configure the service to run with LocalSystem account (administrator rights)
- if (!ChangeServiceConfig(
- hService,
- SERVICE_NO_CHANGE,
- SERVICE_NO_CHANGE,
- SERVICE_NO_CHANGE,
- nullptr,
- nullptr,
- nullptr,
- nullptr,
- L"LocalSystem",
- nullptr,
- nullptr
- )) {
- //std::cerr << "Failed to configure service. Error code: " << GetLastError() << std::endl
- error = 6;
- }
- else {
- //std::cout << "Service created and configured successfully." << std::endl;
- //no error
- }
-
- CloseServiceHandle(hService);
- CloseServiceHandle(hSCManager);
-
+ HRESULT hr = CreateTask();
+ if (FAILED(hr))
+ {
+ std::cerr << "Task creation failed!" << std::endl;
+ error=5;
}
}
switch (error) {
@@ -451,14 +818,23 @@ int main()
MessageBox(NULL, L"Failed to configure service", L"Error", MB_OK);
break;
case 7:
- printf("Failed to download file\n");
- MessageBox(NULL, L"Failed to download file", L"Error", MB_OK);
+ printf("Failed to move file\n");
+ MessageBox(NULL, L"Failed to move file", L"Error", MB_OK);
break;
case 8:
- printf("Failed to open secrets.txt\n");
- MessageBox(NULL, L"Failed to open secrets.txt", L"Error", MB_OK);
+ printf("Failed to move secrets.txt\n");
+ MessageBox(NULL, L"Failed to move secrets.txt", L"Error", MB_OK);
break;
+ case 9:
+ printf("Failed to download settings\n");
+ MessageBox(NULL, L"Failed to download settings", L"Error", MB_OK);
+ break;
+ case 10:
+ printf("Failed to download database file\n");
+ MessageBox(NULL, L"Failed to download database file", L"Error", MB_OK);
+ break;
default:
break;
}
+ system("pause");
}
diff --git a/src/ma_installer/ma_installer.vcxproj b/src/ma_installer/ma_installer.vcxproj
index e1eff9c..0bffe84 100644
--- a/src/ma_installer/ma_installer.vcxproj
+++ b/src/ma_installer/ma_installer.vcxproj
@@ -132,6 +132,7 @@
+
diff --git a/src/ma_installer/ma_installer.vcxproj.filters b/src/ma_installer/ma_installer.vcxproj.filters
index 40d67cc..282946b 100644
--- a/src/ma_installer/ma_installer.vcxproj.filters
+++ b/src/ma_installer/ma_installer.vcxproj.filters
@@ -26,5 +26,8 @@
Headerdateien
+
+ Headerdateien
+
\ No newline at end of file
diff --git a/src/ma_installer/ma_installer/x64/Debug/ma_installer.exe.recipe b/src/ma_installer/ma_installer/x64/Debug/ma_installer.exe.recipe
new file mode 100644
index 0000000..5dbb76a
--- /dev/null
+++ b/src/ma_installer/ma_installer/x64/Debug/ma_installer.exe.recipe
@@ -0,0 +1,11 @@
+
+
+
+
+ C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\x64\Debug\ma_installer.exe
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/ma_installer/ma_installer/x64/Debug/ma_installer.ilk b/src/ma_installer/ma_installer/x64/Debug/ma_installer.ilk
new file mode 100644
index 0000000..5da3f2f
Binary files /dev/null and b/src/ma_installer/ma_installer/x64/Debug/ma_installer.ilk differ
diff --git a/src/ma_installer/ma_installer/x64/Debug/ma_installer.log b/src/ma_installer/ma_installer/x64/Debug/ma_installer.log
new file mode 100644
index 0000000..a895349
--- /dev/null
+++ b/src/ma_installer/ma_installer/x64/Debug/ma_installer.log
@@ -0,0 +1,3 @@
+ ma_installer.cpp
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\ma_installer.cpp(693,15): warning C4101: "fp": Unreferenzierte lokale Variable
+ ma_installer.vcxproj -> C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\x64\Debug\ma_installer.exe
diff --git a/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/CL.command.1.tlog b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/CL.command.1.tlog
new file mode 100644
index 0000000..7be3e99
Binary files /dev/null and b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/CL.command.1.tlog differ
diff --git a/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/CL.read.1.tlog b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/CL.read.1.tlog
new file mode 100644
index 0000000..4f47e3f
Binary files /dev/null and b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/CL.read.1.tlog differ
diff --git a/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/CL.write.1.tlog b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/CL.write.1.tlog
new file mode 100644
index 0000000..14c6630
Binary files /dev/null and b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/CL.write.1.tlog differ
diff --git a/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/Cl.items.tlog b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/Cl.items.tlog
new file mode 100644
index 0000000..f0097a7
--- /dev/null
+++ b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/Cl.items.tlog
@@ -0,0 +1,2 @@
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\download.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\ma_installer\x64\Debug\download.obj
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\ma_installer.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\ma_installer\x64\Debug\ma_installer.obj
diff --git a/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/link.command.1.tlog b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/link.command.1.tlog
new file mode 100644
index 0000000..c67561c
Binary files /dev/null and b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/link.command.1.tlog differ
diff --git a/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/link.read.1.tlog b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/link.read.1.tlog
new file mode 100644
index 0000000..285a8bd
Binary files /dev/null and b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/link.read.1.tlog differ
diff --git a/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/link.secondary.1.tlog b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/link.secondary.1.tlog
new file mode 100644
index 0000000..9ee4ad1
--- /dev/null
+++ b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/link.secondary.1.tlog
@@ -0,0 +1,2 @@
+^C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\MA_INSTALLER\MA_INSTALLER\X64\DEBUG\DOWNLOAD.OBJ|C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\MA_INSTALLER\MA_INSTALLER\X64\DEBUG\MA_INSTALLER.OBJ
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\ma_installer\x64\Debug\ma_installer.ilk
diff --git a/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/link.write.1.tlog b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/link.write.1.tlog
new file mode 100644
index 0000000..45ed7cd
Binary files /dev/null and b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/link.write.1.tlog differ
diff --git a/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/ma_installer.lastbuildstate b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/ma_installer.lastbuildstate
new file mode 100644
index 0000000..2c12ab5
--- /dev/null
+++ b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/ma_installer.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.39.33519:TargetPlatformVersion=10.0.22621.0:VcpkgTriplet=x64-windows:
+Debug|x64|C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\|
diff --git a/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/ma_installer.write.1u.tlog b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/ma_installer.write.1u.tlog
new file mode 100644
index 0000000..84a036f
Binary files /dev/null and b/src/ma_installer/ma_installer/x64/Debug/ma_installer.tlog/ma_installer.write.1u.tlog differ
diff --git a/src/ma_installer/ma_installer/x64/Debug/ma_installer.vcxproj.FileListAbsolute.txt b/src/ma_installer/ma_installer/x64/Debug/ma_installer.vcxproj.FileListAbsolute.txt
new file mode 100644
index 0000000..543bc8b
--- /dev/null
+++ b/src/ma_installer/ma_installer/x64/Debug/ma_installer.vcxproj.FileListAbsolute.txt
@@ -0,0 +1,3 @@
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\x64\Debug\libcurl-d.dll
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\x64\Debug\zlibd1.dll
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\ma_installer\x64\Debug\ma_insta.BC7E6B48.Up2Date
diff --git a/src/ma_installer/ma_installer/x64/Debug/vc143.idb b/src/ma_installer/ma_installer/x64/Debug/vc143.idb
new file mode 100644
index 0000000..f88ad41
Binary files /dev/null and b/src/ma_installer/ma_installer/x64/Debug/vc143.idb differ
diff --git a/src/ma_installer/ma_installer/x64/Debug/vc143.pdb b/src/ma_installer/ma_installer/x64/Debug/vc143.pdb
new file mode 100644
index 0000000..6d16fe7
Binary files /dev/null and b/src/ma_installer/ma_installer/x64/Debug/vc143.pdb differ
diff --git a/src/ma_installer/ma_installer/x64/Debug/vcpkg.applocal.log b/src/ma_installer/ma_installer/x64/Debug/vcpkg.applocal.log
new file mode 100644
index 0000000..45b2f97
--- /dev/null
+++ b/src/ma_installer/ma_installer/x64/Debug/vcpkg.applocal.log
@@ -0,0 +1,3 @@
+
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\x64\Debug\libcurl-d.dll
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\x64\Debug\zlibd1.dll
diff --git a/src/ma_installer/x64/Debug/ma_installer.pdb b/src/ma_installer/x64/Debug/ma_installer.pdb
index 42248cf..08c5b21 100644
Binary files a/src/ma_installer/x64/Debug/ma_installer.pdb and b/src/ma_installer/x64/Debug/ma_installer.pdb differ
diff --git a/src/ma_uninstaller/.vs/ma_uninstaller/v17/.suo b/src/ma_uninstaller/.vs/ma_uninstaller/v17/.suo
index 405743d..ed4d27d 100644
Binary files a/src/ma_uninstaller/.vs/ma_uninstaller/v17/.suo and b/src/ma_uninstaller/.vs/ma_uninstaller/v17/.suo differ
diff --git a/src/ma_uninstaller/.vs/ma_uninstaller/v17/Browse.VC.db b/src/ma_uninstaller/.vs/ma_uninstaller/v17/Browse.VC.db
index c46fc05..356f7bf 100644
Binary files a/src/ma_uninstaller/.vs/ma_uninstaller/v17/Browse.VC.db and b/src/ma_uninstaller/.vs/ma_uninstaller/v17/Browse.VC.db differ
diff --git a/src/ma_uninstaller/.vs/ma_uninstaller/v17/DocumentLayout.json b/src/ma_uninstaller/.vs/ma_uninstaller/v17/DocumentLayout.json
new file mode 100644
index 0000000..1018e75
--- /dev/null
+++ b/src/ma_uninstaller/.vs/ma_uninstaller/v17/DocumentLayout.json
@@ -0,0 +1,37 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_uninstaller\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{A8DFEDE3-F066-4583-94C9-257F88DFF56A}|ma_uninstaller.vcxproj|C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_uninstaller\\ma_uninstaller.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+ "RelativeMoniker": "D:0:0:{A8DFEDE3-F066-4583-94C9-257F88DFF56A}|ma_uninstaller.vcxproj|solutionrelative:ma_uninstaller.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": 0,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "ma_uninstaller.cpp",
+ "DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_uninstaller\\ma_uninstaller.cpp",
+ "RelativeDocumentMoniker": "ma_uninstaller.cpp",
+ "ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_uninstaller\\ma_uninstaller.cpp",
+ "RelativeToolTip": "ma_uninstaller.cpp",
+ "ViewState": "AQIAAI0AAAAAAAAAAAAAALYAAAAhAAAA",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+ "WhenOpened": "2023-12-23T09:04:19.505Z",
+ "EditorCaption": ""
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/ma_uninstaller/.vs/ma_uninstaller/v17/Solution.VC.db b/src/ma_uninstaller/.vs/ma_uninstaller/v17/Solution.VC.db
new file mode 100644
index 0000000..e4d78d5
Binary files /dev/null and b/src/ma_uninstaller/.vs/ma_uninstaller/v17/Solution.VC.db differ
diff --git a/src/ma_uninstaller/ma_uninstaller.cpp b/src/ma_uninstaller/ma_uninstaller.cpp
index 1411073..e32916a 100644
--- a/src/ma_uninstaller/ma_uninstaller.cpp
+++ b/src/ma_uninstaller/ma_uninstaller.cpp
@@ -6,6 +6,11 @@
*/
#include
#include
+#include
+#include
+#include
+#include
+#pragma comment(lib, "taskschd.lib")
//check if programm is run as admin
bool is_admin() {
BOOL fIsRunAsAdmin = FALSE;
@@ -101,6 +106,62 @@ bool remove_dir(const std::wstring& path) {
return true;
}
+
+bool remove_scheduled_task(const std::wstring& taskName) {
+ HRESULT hr;
+
+ // Initialize COM
+ hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
+ if (FAILED(hr)) {
+ std::cerr << "COM initialization failed with error code: " << hr << std::endl;
+ return false;
+ }
+
+ // Create an instance of the Task Service
+ ITaskService* pService = NULL;
+ hr = CoCreateInstance(CLSID_TaskScheduler, NULL, CLSCTX_INPROC_SERVER, IID_ITaskService, (void**)&pService);
+ if (FAILED(hr)) {
+ std::cerr << "Failed to create an instance of ITaskService: " << hr << std::endl;
+ CoUninitialize();
+ return false;
+ }
+
+ // Connect to the task service
+ hr = pService->Connect(_variant_t(), _variant_t(), _variant_t(), _variant_t());
+ if (FAILED(hr)) {
+ std::cerr << "ITaskService::Connect failed with error code: " << hr << std::endl;
+ pService->Release();
+ CoUninitialize();
+ return false;
+ }
+
+ // Get the root task folder
+ ITaskFolder* pRootFolder = NULL;
+ hr = pService->GetFolder(_bstr_t(L"\\"), &pRootFolder);
+ if (FAILED(hr)) {
+ std::cerr << "Cannot get Root Folder pointer: " << hr << std::endl;
+ pService->Release();
+ CoUninitialize();
+ return false;
+ }
+
+ // Delete the task
+ hr = pRootFolder->DeleteTask(_bstr_t(taskName.c_str()), 0);
+ if (FAILED(hr)) {
+ std::cerr << "Failed to delete the task: " << hr << std::endl;
+ pRootFolder->Release();
+ pService->Release();
+ CoUninitialize();
+ return false;
+ }
+
+ // Release COM objects
+ pRootFolder->Release();
+ pService->Release();
+ CoUninitialize();
+
+ return true;
+}
int main()
{
printf("Welcome to the Cyberhex uninstaller!\n");
@@ -118,6 +179,8 @@ int main()
}
}
else {
+ printf("Stopping cyberhex");
+ system("taskkill /F /IM cyberhex.exe");
printf("Removing directorys\n");
printf("Removing directory for application\n");
error = remove_dir(L"C:\\Program Files\\Cyberhex");
@@ -127,33 +190,9 @@ int main()
error = 0;
if (error == 0) {
printf("Removing background task\n");
- SC_HANDLE hSCManager = OpenSCManager(nullptr, nullptr, SC_MANAGER_ALL_ACCESS);
- if (!hSCManager) {
- //std::cerr << "Failed to open service control manager. Error code: " << GetLastError() << std::endl;
- //return 1;
- error = 1;
- }
-
- LPCWSTR serviceName = L"cyberhex_background_service";
-
- SC_HANDLE hService = OpenService(hSCManager, serviceName, DELETE);
- if (!hService) {
- //std::cerr << "Failed to open service. Error code: " << GetLastError() << std::endl;
- CloseServiceHandle(hSCManager);
- //return 1;
- error = 2;
- }
-
- if (!DeleteService(hService)) {
- //std::cerr << "Failed to delete service. Error code: " << GetLastError() << std::endl;
- error = 3;
- }
- else {
- //std::cout << "Service deleted successfully." << std::endl;
- }
-
- CloseServiceHandle(hService);
- CloseServiceHandle(hSCManager);
+ if (!remove_scheduled_task(L"CyberhexBackgroundTask")) {
+ error = 5;
+ }
}
}
@@ -186,13 +225,3 @@ int main()
}
}
-// Programm ausführen: STRG+F5 oder Menüeintrag "Debuggen" > "Starten ohne Debuggen starten"
-// Programm debuggen: F5 oder "Debuggen" > Menü "Debuggen starten"
-
-// Tipps für den Einstieg:
-// 1. Verwenden Sie das Projektmappen-Explorer-Fenster zum Hinzufügen/Verwalten von Dateien.
-// 2. Verwenden Sie das Team Explorer-Fenster zum Herstellen einer Verbindung mit der Quellcodeverwaltung.
-// 3. Verwenden Sie das Ausgabefenster, um die Buildausgabe und andere Nachrichten anzuzeigen.
-// 4. Verwenden Sie das Fenster "Fehlerliste", um Fehler anzuzeigen.
-// 5. Wechseln Sie zu "Projekt" > "Neues Element hinzufügen", um neue Codedateien zu erstellen, bzw. zu "Projekt" > "Vorhandenes Element hinzufügen", um dem Projekt vorhandene Codedateien hinzuzufügen.
-// 6. Um dieses Projekt später erneut zu öffnen, wechseln Sie zu "Datei" > "Öffnen" > "Projekt", und wählen Sie die SLN-Datei aus.
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.exe.recipe b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.exe.recipe
new file mode 100644
index 0000000..9863811
--- /dev/null
+++ b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.exe.recipe
@@ -0,0 +1,11 @@
+
+
+
+
+ C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_uninstaller\x64\Debug\ma_uninstaller.exe
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.ilk b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.ilk
new file mode 100644
index 0000000..cc8fe38
Binary files /dev/null and b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.ilk differ
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.log b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.log
new file mode 100644
index 0000000..2974991
--- /dev/null
+++ b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.log
@@ -0,0 +1,2 @@
+ ma_uninstaller.cpp
+ ma_uninstaller.vcxproj -> C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_uninstaller\x64\Debug\ma_uninstaller.exe
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/CL.command.1.tlog b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/CL.command.1.tlog
new file mode 100644
index 0000000..dee5c98
Binary files /dev/null and b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/CL.command.1.tlog differ
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/CL.read.1.tlog b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/CL.read.1.tlog
new file mode 100644
index 0000000..3d9466c
Binary files /dev/null and b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/CL.read.1.tlog differ
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/CL.write.1.tlog b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/CL.write.1.tlog
new file mode 100644
index 0000000..76b32dd
Binary files /dev/null and b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/CL.write.1.tlog differ
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/Cl.items.tlog b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/Cl.items.tlog
new file mode 100644
index 0000000..cad7796
--- /dev/null
+++ b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/Cl.items.tlog
@@ -0,0 +1 @@
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_uninstaller\ma_uninstaller.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_uninstaller\ma_uninstaller\x64\Debug\ma_uninstaller.obj
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/link.command.1.tlog b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/link.command.1.tlog
new file mode 100644
index 0000000..37777b5
Binary files /dev/null and b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/link.command.1.tlog differ
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/link.read.1.tlog b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/link.read.1.tlog
new file mode 100644
index 0000000..e8a2bfb
Binary files /dev/null and b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/link.read.1.tlog differ
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/link.secondary.1.tlog b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/link.secondary.1.tlog
new file mode 100644
index 0000000..1592690
--- /dev/null
+++ b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/link.secondary.1.tlog
@@ -0,0 +1,2 @@
+^C:\USERS\JANIS\DOCUMENTS\PROJEKTE_MIT_C\MA\MA\SRC\MA_UNINSTALLER\MA_UNINSTALLER\X64\DEBUG\MA_UNINSTALLER.OBJ
+C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_uninstaller\ma_uninstaller\x64\Debug\ma_uninstaller.ilk
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/link.write.1.tlog b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/link.write.1.tlog
new file mode 100644
index 0000000..1f08751
Binary files /dev/null and b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/link.write.1.tlog differ
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/ma_uninstaller.lastbuildstate b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/ma_uninstaller.lastbuildstate
new file mode 100644
index 0000000..3d46d68
--- /dev/null
+++ b/src/ma_uninstaller/ma_uninstaller/x64/Debug/ma_uninstaller.tlog/ma_uninstaller.lastbuildstate
@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.39.33519:TargetPlatformVersion=10.0.22621.0:VcpkgTriplet=x64-windows:
+Debug|x64|C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_uninstaller\|
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/vc143.idb b/src/ma_uninstaller/ma_uninstaller/x64/Debug/vc143.idb
new file mode 100644
index 0000000..d753204
Binary files /dev/null and b/src/ma_uninstaller/ma_uninstaller/x64/Debug/vc143.idb differ
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/vc143.pdb b/src/ma_uninstaller/ma_uninstaller/x64/Debug/vc143.pdb
new file mode 100644
index 0000000..771cf81
Binary files /dev/null and b/src/ma_uninstaller/ma_uninstaller/x64/Debug/vc143.pdb differ
diff --git a/src/ma_uninstaller/ma_uninstaller/x64/Debug/vcpkg.applocal.log b/src/ma_uninstaller/ma_uninstaller/x64/Debug/vcpkg.applocal.log
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/src/ma_uninstaller/ma_uninstaller/x64/Debug/vcpkg.applocal.log
@@ -0,0 +1 @@
+
diff --git a/src/ma_uninstaller/x64/Debug/ma_uninstaller.pdb b/src/ma_uninstaller/x64/Debug/ma_uninstaller.pdb
index 5d612fc..e3a4d96 100644
Binary files a/src/ma_uninstaller/x64/Debug/ma_uninstaller.pdb and b/src/ma_uninstaller/x64/Debug/ma_uninstaller.pdb differ
diff --git a/src/server/cyberhex-code/system/secure_zone/php/add_client.php b/src/server/cyberhex-code/system/secure_zone/php/add_client.php
index 4a1323e..0f41d09 100644
--- a/src/server/cyberhex-code/system/secure_zone/php/add_client.php
+++ b/src/server/cyberhex-code/system/secure_zone/php/add_client.php
@@ -52,6 +52,7 @@ include "../../../config.php";
+