adding support for self check and db updat ewith zip files
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -3,36 +3,84 @@
|
|||||||
"WorkspaceRootPath": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\",
|
"WorkspaceRootPath": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\",
|
||||||
"Documents": [
|
"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\\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\\update.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}"
|
"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\\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\\utils.h||{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}"
|
"RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:utils.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.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\\utils.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\\utils.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||||
"RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:utils.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
"RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:utils.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_process.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\\client_backend.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||||
"RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:check_process.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\\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\\update.h||{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}"
|
"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\\zip.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||||
|
"RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:zip.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\\zip.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||||
|
"RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:zip.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\\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\\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\\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\\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\\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\\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\\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\\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}"
|
"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\\utils.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.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||||
"RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:utils.h||{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\\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\\check_process.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||||
|
"RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:check_process.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.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\\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\\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\\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\\scan.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||||
@@ -50,30 +98,10 @@
|
|||||||
"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.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\\connect.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||||
"RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:connect.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
"RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:connect.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.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\\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.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}"
|
"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\\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\\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\\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\\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\\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\\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}"
|
"RelativeMoniker": "D:0:0:{56E65283-AAC9-43F6-9613-72BE8D648AC4}|client_backend.vcxproj|solutionrelative:queue _ctrl.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||||
@@ -102,23 +130,76 @@
|
|||||||
"DocumentGroups": [
|
"DocumentGroups": [
|
||||||
{
|
{
|
||||||
"DockedWidth": 200,
|
"DockedWidth": 200,
|
||||||
"SelectedChildIndex": 11,
|
"SelectedChildIndex": 25,
|
||||||
"Children": [
|
"Children": [
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 19,
|
"DocumentIndex": 6,
|
||||||
"Title": "settings.h",
|
"Title": "zip.h",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\settings.h",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\zip.h",
|
||||||
"RelativeDocumentMoniker": "settings.h",
|
"RelativeDocumentMoniker": "zip.h",
|
||||||
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\settings.h",
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\zip.h",
|
||||||
"RelativeToolTip": "settings.h",
|
"RelativeToolTip": "zip.h",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAABEAAAAiAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAEAAAARAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||||
"WhenOpened": "2024-03-13T06:42:03.328Z"
|
"WhenOpened": "2024-03-29T07:57:13.208Z",
|
||||||
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 8,
|
"DocumentIndex": 5,
|
||||||
|
"Title": "zip.cpp",
|
||||||
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\zip.cpp",
|
||||||
|
"RelativeDocumentMoniker": "zip.cpp",
|
||||||
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\zip.cpp",
|
||||||
|
"RelativeToolTip": "zip.cpp",
|
||||||
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAAD0AAAABAAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||||
|
"WhenOpened": "2024-03-29T07:57:04.198Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 10,
|
||||||
|
"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": "AQIAAAAAAAAAAAAAAAAAAAkAAAARAAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||||
|
"WhenOpened": "2024-03-29T07:25:24.014Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 7,
|
||||||
|
"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": "AQIAAC4AAAAAAAAAAAAawD0AAAA0AAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||||
|
"WhenOpened": "2024-03-29T07:05:00.157Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 11,
|
||||||
|
"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": "AQIAAAAAAAAAAAAAAAAAAAkAAAAMAAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||||
|
"WhenOpened": "2024-03-28T14:00:18.147Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 20,
|
||||||
"Title": "scan.h",
|
"Title": "scan.h",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\scan.h",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\scan.h",
|
||||||
"RelativeDocumentMoniker": "scan.h",
|
"RelativeDocumentMoniker": "scan.h",
|
||||||
@@ -130,20 +211,20 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 2,
|
"DocumentIndex": 8,
|
||||||
"Title": "scan.cpp",
|
"Title": "scan.cpp",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\scan.cpp",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\scan.cpp",
|
||||||
"RelativeDocumentMoniker": "scan.cpp",
|
"RelativeDocumentMoniker": "scan.cpp",
|
||||||
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\scan.cpp",
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\scan.cpp",
|
||||||
"RelativeToolTip": "scan.cpp",
|
"RelativeToolTip": "scan.cpp",
|
||||||
"ViewState": "AQIAAPgAAAAAAAAAAAAawGIBAAAQAAAA",
|
"ViewState": "AQIAAHYAAAAAAAAAAAAawJEAAAAKAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||||
"WhenOpened": "2024-01-28T20:40:06.248Z",
|
"WhenOpened": "2024-01-28T20:40:06.248Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 10,
|
"DocumentIndex": 22,
|
||||||
"Title": "connect.cpp",
|
"Title": "connect.cpp",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\connect.cpp",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\connect.cpp",
|
||||||
"RelativeDocumentMoniker": "connect.cpp",
|
"RelativeDocumentMoniker": "connect.cpp",
|
||||||
@@ -155,32 +236,32 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 1,
|
"DocumentIndex": 3,
|
||||||
"Title": "client_backend.cpp",
|
"Title": "client_backend.cpp",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\client_backend.cpp",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\client_backend.cpp",
|
||||||
"RelativeDocumentMoniker": "client_backend.cpp",
|
"RelativeDocumentMoniker": "client_backend.cpp",
|
||||||
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\client_backend.cpp",
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\client_backend.cpp",
|
||||||
"RelativeToolTip": "client_backend.cpp",
|
"RelativeToolTip": "client_backend.cpp",
|
||||||
"ViewState": "AQIAADkAAAAAAAAAAAAawEwAAAA4AAAA",
|
"ViewState": "AQIAABYAAAAAAAAAAAAqwDwAAAACAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||||
"WhenOpened": "2024-01-28T20:40:06.279Z",
|
"WhenOpened": "2024-01-28T20:40:06.279Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 6,
|
"DocumentIndex": 13,
|
||||||
"Title": "thread_ctrl.cpp",
|
"Title": "thread_ctrl.cpp",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\thread_ctrl.cpp",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\thread_ctrl.cpp",
|
||||||
"RelativeDocumentMoniker": "thread_ctrl.cpp",
|
"RelativeDocumentMoniker": "thread_ctrl.cpp",
|
||||||
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\thread_ctrl.cpp",
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\thread_ctrl.cpp",
|
||||||
"RelativeToolTip": "thread_ctrl.cpp",
|
"RelativeToolTip": "thread_ctrl.cpp",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAABwAAAAsAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAABUAAAAqAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||||
"WhenOpened": "2024-03-13T06:52:01.533Z"
|
"WhenOpened": "2024-03-13T06:52:01.533Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 9,
|
"DocumentIndex": 21,
|
||||||
"Title": "local_com.cpp",
|
"Title": "local_com.cpp",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_com.cpp",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_com.cpp",
|
||||||
"RelativeDocumentMoniker": "local_com.cpp",
|
"RelativeDocumentMoniker": "local_com.cpp",
|
||||||
@@ -192,7 +273,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 5,
|
"DocumentIndex": 19,
|
||||||
"Title": "virus_ctrl.cpp",
|
"Title": "virus_ctrl.cpp",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\virus_ctrl.cpp",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\virus_ctrl.cpp",
|
||||||
"RelativeDocumentMoniker": "virus_ctrl.cpp",
|
"RelativeDocumentMoniker": "virus_ctrl.cpp",
|
||||||
@@ -204,7 +285,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 22,
|
"DocumentIndex": 29,
|
||||||
"Title": "virus_ctrl.h",
|
"Title": "virus_ctrl.h",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\virus_ctrl.h",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\virus_ctrl.h",
|
||||||
"RelativeDocumentMoniker": "virus_ctrl.h",
|
"RelativeDocumentMoniker": "virus_ctrl.h",
|
||||||
@@ -216,7 +297,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 13,
|
"DocumentIndex": 24,
|
||||||
"Title": "log.h",
|
"Title": "log.h",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\log.h",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\log.h",
|
||||||
"RelativeDocumentMoniker": "log.h",
|
"RelativeDocumentMoniker": "log.h",
|
||||||
@@ -228,7 +309,32 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 21,
|
"DocumentIndex": 2,
|
||||||
|
"Title": "utils.cpp",
|
||||||
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\utils.cpp",
|
||||||
|
"RelativeDocumentMoniker": "utils.cpp",
|
||||||
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\utils.cpp",
|
||||||
|
"RelativeToolTip": "utils.cpp",
|
||||||
|
"ViewState": "AQIAAI0AAAAAAAAAAAAAAKcAAAAAAAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||||
|
"WhenOpened": "2024-03-14T15:55:22.469Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 18,
|
||||||
|
"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": "AQIAAAAAAAAAAAAAAAAAAAoAAAAWAAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||||
|
"WhenOpened": "2024-03-28T13:37:13.587Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 28,
|
||||||
"Title": "local_com.h",
|
"Title": "local_com.h",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_com.h",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_com.h",
|
||||||
"RelativeDocumentMoniker": "local_com.h",
|
"RelativeDocumentMoniker": "local_com.h",
|
||||||
@@ -240,68 +346,58 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 0,
|
"DocumentIndex": 14,
|
||||||
"Title": "check_dir.cpp",
|
"Title": "check_dir.cpp",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\check_dir.cpp",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\check_dir.cpp",
|
||||||
"RelativeDocumentMoniker": "check_dir.cpp",
|
"RelativeDocumentMoniker": "check_dir.cpp",
|
||||||
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\check_dir.cpp",
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\check_dir.cpp",
|
||||||
"RelativeToolTip": "check_dir.cpp",
|
"RelativeToolTip": "check_dir.cpp",
|
||||||
"ViewState": "AQIAAA4AAAAAAAAAAAAawC0AAAAJAAAA",
|
"ViewState": "AQIAAAYAAAAAAAAAAAAAACMAAAAGAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||||
"WhenOpened": "2024-03-13T06:48:31.009Z",
|
"WhenOpened": "2024-03-13T06:48:31.009Z"
|
||||||
"EditorCaption": ""
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 3,
|
"DocumentIndex": 12,
|
||||||
"Title": "utils.cpp",
|
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\utils.cpp",
|
|
||||||
"RelativeDocumentMoniker": "utils.cpp",
|
|
||||||
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\utils.cpp",
|
|
||||||
"RelativeToolTip": "utils.cpp",
|
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAABkAAAAEAAAA",
|
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
|
||||||
"WhenOpened": "2024-03-14T15:55:22.469Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$type": "Document",
|
|
||||||
"DocumentIndex": 17,
|
|
||||||
"Title": "settings.cpp",
|
"Title": "settings.cpp",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\settings.cpp",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\settings.cpp",
|
||||||
"RelativeDocumentMoniker": "settings.cpp",
|
"RelativeDocumentMoniker": "settings.cpp",
|
||||||
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\settings.cpp",
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\settings.cpp",
|
||||||
"RelativeToolTip": "settings.cpp",
|
"RelativeToolTip": "settings.cpp",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAD0AAAA1AAAA",
|
"ViewState": "AQIAABgAAAAAAAAAAAAAAD0AAAA1AAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||||
"WhenOpened": "2024-03-13T06:48:40.364Z"
|
"WhenOpened": "2024-03-13T06:48:40.364Z",
|
||||||
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 15,
|
"DocumentIndex": 9,
|
||||||
"Title": "well_known.h",
|
"Title": "well_known.h",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\well_known.h",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\well_known.h",
|
||||||
"RelativeDocumentMoniker": "well_known.h",
|
"RelativeDocumentMoniker": "well_known.h",
|
||||||
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\well_known.h",
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\well_known.h",
|
||||||
"RelativeToolTip": "well_known.h",
|
"RelativeToolTip": "well_known.h",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAC0AAAAZAAAA",
|
"ViewState": "AQIAACYAAAAAAAAAAAAawEIAAABbAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||||
"WhenOpened": "2024-03-14T13:20:06.953Z"
|
"WhenOpened": "2024-03-14T13:20:06.953Z",
|
||||||
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 16,
|
"DocumentIndex": 4,
|
||||||
"Title": "update.h",
|
"Title": "update.h",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\update.h",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\update.h",
|
||||||
"RelativeDocumentMoniker": "update.h",
|
"RelativeDocumentMoniker": "update.h",
|
||||||
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\update.h",
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\update.h",
|
||||||
"RelativeToolTip": "update.h",
|
"RelativeToolTip": "update.h",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAkAAAAUAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAYAAAAvAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||||
"WhenOpened": "2024-03-13T06:42:28.196Z"
|
"WhenOpened": "2024-03-13T06:42:28.196Z",
|
||||||
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 18,
|
"DocumentIndex": 25,
|
||||||
"Title": "queue _ctrl.cpp",
|
"Title": "queue _ctrl.cpp",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\queue _ctrl.cpp",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\queue _ctrl.cpp",
|
||||||
"RelativeDocumentMoniker": "queue _ctrl.cpp",
|
"RelativeDocumentMoniker": "queue _ctrl.cpp",
|
||||||
@@ -313,7 +409,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 20,
|
"DocumentIndex": 27,
|
||||||
"Title": "queue_ctrl.h",
|
"Title": "queue_ctrl.h",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\queue_ctrl.h",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\queue_ctrl.h",
|
||||||
"RelativeDocumentMoniker": "queue_ctrl.h",
|
"RelativeDocumentMoniker": "queue_ctrl.h",
|
||||||
@@ -325,7 +421,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 11,
|
"DocumentIndex": 23,
|
||||||
"Title": "connect.h",
|
"Title": "connect.h",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\connect.h",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\connect.h",
|
||||||
"RelativeDocumentMoniker": "connect.h",
|
"RelativeDocumentMoniker": "connect.h",
|
||||||
@@ -337,49 +433,75 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 4,
|
"DocumentIndex": 16,
|
||||||
"Title": "check_process.cpp",
|
"Title": "check_process.cpp",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\check_process.cpp",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\check_process.cpp",
|
||||||
"RelativeDocumentMoniker": "check_process.cpp",
|
"RelativeDocumentMoniker": "check_process.cpp",
|
||||||
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\check_process.cpp",
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\check_process.cpp",
|
||||||
"RelativeToolTip": "check_process.cpp",
|
"RelativeToolTip": "check_process.cpp",
|
||||||
"ViewState": "AQIAABUAAAAAAAAAAAAAADMAAAAaAAAA",
|
"ViewState": "AQIAAAkAAAAAAAAAAAAAACsAAABtAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||||
"WhenOpened": "2024-03-14T13:35:33.369Z"
|
"WhenOpened": "2024-03-14T13:35:33.369Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 7,
|
"DocumentIndex": 0,
|
||||||
"Title": "utils.h",
|
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\utils.h",
|
|
||||||
"RelativeDocumentMoniker": "utils.h",
|
|
||||||
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\utils.h",
|
|
||||||
"RelativeToolTip": "utils.h",
|
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAsAAAAbAAAA",
|
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
|
||||||
"WhenOpened": "2024-03-14T15:55:30.524Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$type": "Document",
|
|
||||||
"DocumentIndex": 14,
|
|
||||||
"Title": "update.cpp",
|
"Title": "update.cpp",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\update.cpp",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\update.cpp",
|
||||||
"RelativeDocumentMoniker": "update.cpp",
|
"RelativeDocumentMoniker": "update.cpp",
|
||||||
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\update.cpp",
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\update.cpp",
|
||||||
"RelativeToolTip": "update.cpp",
|
"RelativeToolTip": "update.cpp",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAIBZwAkAAAARAAAA",
|
"ViewState": "AQIAABsAAAAAAAAAAAAAADgAAAAQAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||||
"WhenOpened": "2024-01-28T20:40:06.248Z"
|
"WhenOpened": "2024-01-28T20:40:06.248Z",
|
||||||
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 12,
|
"DocumentIndex": 1,
|
||||||
|
"Title": "utils.h",
|
||||||
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\utils.h",
|
||||||
|
"RelativeDocumentMoniker": "utils.h",
|
||||||
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\utils.h",
|
||||||
|
"RelativeToolTip": "utils.h",
|
||||||
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAAA0AAAA4AAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||||
|
"WhenOpened": "2024-03-14T15:55:30.524Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 26,
|
||||||
|
"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": "AQIAAAAAAAAAAAAAAAAAABEAAAAiAAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||||
|
"WhenOpened": "2024-03-13T06:42:03.328Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 17,
|
||||||
|
"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": "AQIAAAAAAAAAAAAAAAAAACYAAAABAAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||||
|
"WhenOpened": "2024-03-28T13:36:41.939Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 15,
|
||||||
"Title": "local_schedule.cpp",
|
"Title": "local_schedule.cpp",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_schedule.cpp",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_schedule.cpp",
|
||||||
"RelativeDocumentMoniker": "local_schedule.cpp",
|
"RelativeDocumentMoniker": "local_schedule.cpp",
|
||||||
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_schedule.cpp",
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\client_backend\\local_schedule.cpp",
|
||||||
"RelativeToolTip": "local_schedule.cpp",
|
"RelativeToolTip": "local_schedule.cpp",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAEIAAAAAAAAA",
|
"ViewState": "AQIAAEUAAAAAAAAAAAAAAE4AAAAKAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||||
"WhenOpened": "2024-01-28T20:40:06.279Z"
|
"WhenOpened": "2024-01-28T20:40:06.279Z"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
bool app_stop_ = false;
|
bool app_stop_ = false;
|
||||||
bool can_run_thread_ = true;
|
bool can_run_thread_ = true;
|
||||||
bool can_scan_folder_ = true;
|
bool can_scan_folder_ = true;
|
||||||
|
bool debug_mode_ = false;
|
||||||
int app_stop() {
|
int app_stop() {
|
||||||
return app_stop_;
|
return app_stop_;
|
||||||
}
|
}
|
||||||
@@ -29,4 +30,11 @@ int scan_folder_shutdown() {
|
|||||||
can_scan_folder_ = true;
|
can_scan_folder_ = true;
|
||||||
return can_scan_folder_;
|
return can_scan_folder_;
|
||||||
}
|
}
|
||||||
|
int debug_mode() {
|
||||||
|
return debug_mode_;
|
||||||
|
}
|
||||||
|
int debug_mode_init() {
|
||||||
|
debug_mode_ = true;
|
||||||
|
return debug_mode_;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -7,4 +7,6 @@ int thread_shutdown();
|
|||||||
int can_scan_folder();
|
int can_scan_folder();
|
||||||
int scan_folder_init();
|
int scan_folder_init();
|
||||||
int scan_folder_shutdown();
|
int scan_folder_shutdown();
|
||||||
|
int debug_mode();
|
||||||
|
int debug_mode_init();
|
||||||
#endif
|
#endif
|
||||||
@@ -32,11 +32,11 @@ void process_changes(const FILE_NOTIFY_INFORMATION* pInfo) {
|
|||||||
// Allocate a buffer for the file name and copy the content
|
// Allocate a buffer for the file name and copy the content
|
||||||
std::wstring fileName(pInfo->FileName, pInfo->FileNameLength / sizeof(wchar_t));
|
std::wstring fileName(pInfo->FileName, pInfo->FileNameLength / sizeof(wchar_t));
|
||||||
fileName.push_back(L'\0'); //NULL-terminate the string
|
fileName.push_back(L'\0'); //NULL-terminate the string
|
||||||
|
//if (debug_mode())
|
||||||
|
// std::wcout<<"[HIGH_ALERT_DEBUG/NO_DISK_WRITE]: file changed " << fileName <<std::endl;
|
||||||
// Convert wstring to string
|
// Convert wstring to string
|
||||||
std::string filename_str(fileName.begin(), fileName.end());
|
std::string filename_str(fileName.begin(), fileName.end());
|
||||||
filename_str = "c:\\" + filename_str;
|
filename_str = "c:\\" + filename_str;
|
||||||
|
|
||||||
// Scan the file and send it to virus_ctrl if it is a virus and then process it
|
// Scan the file and send it to virus_ctrl if it is a virus and then process it
|
||||||
if (is_valid_path(filename_str)) { //filter out invalid paths and paths with weird characters
|
if (is_valid_path(filename_str)) { //filter out invalid paths and paths with weird characters
|
||||||
std::transform(filename_str.begin(), filename_str.end(), filename_str.begin(), ::tolower);
|
std::transform(filename_str.begin(), filename_str.end(), filename_str.begin(), ::tolower);
|
||||||
@@ -45,7 +45,6 @@ void process_changes(const FILE_NOTIFY_INFORMATION* pInfo) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//log(LOGLEVEL::INFO_NOSEND, "[process_changes()]: File ", filename_str, " has been changed. Scanning it for viruses");
|
|
||||||
int thread_timeout = 0;
|
int thread_timeout = 0;
|
||||||
while (get_num_threads() >= std::thread::hardware_concurrency()) {
|
while (get_num_threads() >= std::thread::hardware_concurrency()) {
|
||||||
Sleep(10);
|
Sleep(10);
|
||||||
@@ -54,7 +53,8 @@ void process_changes(const FILE_NOTIFY_INFORMATION* pInfo) {
|
|||||||
set_num_threads(0);
|
set_num_threads(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//log(LOGLEVEL::INFO_NOSEND, "[process_changes()]: Scanning new file: ", filename_str);
|
if (debug_mode())
|
||||||
|
log(LOGLEVEL::INFO_NOSEND, "[process_changes()]: File ", filename_str.c_str(), " has been changed. Scanning it for viruses");
|
||||||
std::thread scan_thread(scan_file_t, filename_str);
|
std::thread scan_thread(scan_file_t, filename_str);
|
||||||
scan_thread.detach();
|
scan_thread.detach();
|
||||||
Sleep(1);
|
Sleep(1);
|
||||||
|
|||||||
@@ -49,8 +49,26 @@ int main(int argc, char*argv[]) {
|
|||||||
else {
|
else {
|
||||||
log(LOGLEVEL::ERR_NOSEND, "[main()]:Could not load settings from file.");
|
log(LOGLEVEL::ERR_NOSEND, "[main()]:Could not load settings from file.");
|
||||||
log(LOGLEVEL::PANIC_NOSEND, "[main()]:Panic, no settings file loaded, terminating process!");
|
log(LOGLEVEL::PANIC_NOSEND, "[main()]:Panic, no settings file loaded, terminating process!");
|
||||||
|
Sleep(1000); //wait for the log to be written
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
//do self check
|
||||||
|
if ((err=selfcheck())!=0) {
|
||||||
|
log(LOGLEVEL::PANIC, "[main()]:This installation of cyberhex failed the self check! Application may be tampered with!", err);
|
||||||
|
log(LOGLEVEL::PANIC, "[main()]:Panic, self check failed, terminating process!");
|
||||||
|
Sleep(1000); //wait for the log to be written and swnt to the server
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
printf("self check passed\n");
|
||||||
|
update_db2(DB_DIR);
|
||||||
|
|
||||||
|
|
||||||
|
//init debug mode if needed
|
||||||
|
if (argc == 2) {
|
||||||
|
if (strcmp(argv[1], "-d") == 0) {
|
||||||
|
debug_mode_init();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize hash databases
|
// Initialize hash databases
|
||||||
err = initialize(DB_DIR);
|
err = initialize(DB_DIR);
|
||||||
|
|||||||
@@ -155,6 +155,7 @@
|
|||||||
<ClCompile Include="update.cpp" />
|
<ClCompile Include="update.cpp" />
|
||||||
<ClCompile Include="utils.cpp" />
|
<ClCompile Include="utils.cpp" />
|
||||||
<ClCompile Include="virus_ctrl.cpp" />
|
<ClCompile Include="virus_ctrl.cpp" />
|
||||||
|
<ClCompile Include="zip.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="check_dir.h" />
|
<ClInclude Include="check_dir.h" />
|
||||||
@@ -175,6 +176,7 @@
|
|||||||
<ClInclude Include="utils.h" />
|
<ClInclude Include="utils.h" />
|
||||||
<ClInclude Include="virus_ctrl.h" />
|
<ClInclude Include="virus_ctrl.h" />
|
||||||
<ClInclude Include="well_known.h" />
|
<ClInclude Include="well_known.h" />
|
||||||
|
<ClInclude Include="zip.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="client_backend.rc" />
|
<ResourceCompile Include="client_backend.rc" />
|
||||||
|
|||||||
@@ -72,6 +72,9 @@
|
|||||||
<ClCompile Include="utils.cpp">
|
<ClCompile Include="utils.cpp">
|
||||||
<Filter>Headerdateien</Filter>
|
<Filter>Headerdateien</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="zip.cpp">
|
||||||
|
<Filter>Headerdateien</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="md5hash.h">
|
<ClInclude Include="md5hash.h">
|
||||||
@@ -128,6 +131,9 @@
|
|||||||
<ClInclude Include="utils.h">
|
<ClInclude Include="utils.h">
|
||||||
<Filter>Headerdateien</Filter>
|
<Filter>Headerdateien</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="zip.h">
|
||||||
|
<Filter>Headerdateien</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="client_backend.rc">
|
<ResourceCompile Include="client_backend.rc">
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1,11 +1,11 @@
|
|||||||
Quellen werden auf Modulabhängigkeiten überprüft...
|
Quellen werden auf Modulabhängigkeiten überprüft...
|
||||||
check_dir.cpp
|
check_dir.cpp
|
||||||
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\check_dir.cpp(50,38): warning C4018: ">=": Konflikt zwischen "signed" und "unsigned"
|
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\check_dir.cpp(49,38): warning C4018: ">=": Konflikt zwischen "signed" und "unsigned"
|
||||||
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
|
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)
|
(Quelldatei „check_dir.cpp“ wird kompiliert)
|
||||||
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\xutility(4537,18):
|
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\xutility(4537,18):
|
||||||
der Vorlageninstanziierungskontext (der älteste zuerst) ist
|
der Vorlageninstanziierungskontext (der älteste zuerst) ist
|
||||||
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\check_dir.cpp(37,29):
|
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\check_dir.cpp(38,29):
|
||||||
Siehe Verweis auf die gerade kompilierte Instanziierung "std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<std::_String_iterator<std::_String_val<std::_Simple_types<_Elem>>>,0>(_Iter,_Iter,const _Alloc &)" der Funktions-Vorlage.
|
Siehe Verweis auf die gerade kompilierte Instanziierung "std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<std::_String_iterator<std::_String_val<std::_Simple_types<_Elem>>>,0>(_Iter,_Iter,const _Alloc &)" der Funktions-Vorlage.
|
||||||
with
|
with
|
||||||
[
|
[
|
||||||
@@ -13,7 +13,7 @@ C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.3351
|
|||||||
_Iter=std::_String_iterator<std::_String_val<std::_Simple_types<wchar_t>>>,
|
_Iter=std::_String_iterator<std::_String_val<std::_Simple_types<wchar_t>>>,
|
||||||
_Alloc=std::allocator<char>
|
_Alloc=std::allocator<char>
|
||||||
]
|
]
|
||||||
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\check_dir.cpp(37,29):
|
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\check_dir.cpp(38,29):
|
||||||
Ersten Verweis auf "std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string" in "process_changes" anzeigen
|
Ersten Verweis auf "std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string" in "process_changes" anzeigen
|
||||||
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\xstring(2600,17):
|
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<char,std::char_traits<char>,std::allocator<char>>::_Construct_from_iter<wchar_t*,wchar_t*,_Size_type>(_Iter,const _Sent,_Size)" der Funktions-Vorlage.
|
Siehe Verweis auf die gerade kompilierte Instanziierung "void std::basic_string<char,std::char_traits<char>,std::allocator<char>>::_Construct_from_iter<wchar_t*,wchar_t*,_Size_type>(_Iter,const _Sent,_Size)" der Funktions-Vorlage.
|
||||||
@@ -34,4 +34,21 @@ C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.3351
|
|||||||
_SizeTy=unsigned __int64
|
_SizeTy=unsigned __int64
|
||||||
]
|
]
|
||||||
|
|
||||||
|
check_process.cpp
|
||||||
|
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\check_process.cpp(59,58): warning C4018: ">=": Konflikt zwischen "signed" und "unsigned"
|
||||||
|
client_backend.cpp
|
||||||
|
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend.cpp(131,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(131,24): warning C4244: with
|
||||||
|
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend.cpp(131,24): warning C4244: [
|
||||||
|
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend.cpp(131,24): warning C4244: _Rep=__int64
|
||||||
|
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend.cpp(131,24): warning C4244: ]
|
||||||
|
scan.cpp
|
||||||
|
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\scan.cpp(256,46): warning C4018: ">=": Konflikt zwischen "signed" und "unsigned"
|
||||||
|
thread_ctrl.cpp
|
||||||
|
update.cpp
|
||||||
|
utils.cpp
|
||||||
|
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\utils.cpp(174,42): warning C4101: "e": Unreferenzierte lokale Variable
|
||||||
|
virus_ctrl.cpp
|
||||||
|
Code wird generiert...
|
||||||
client_backend.vcxproj -> C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\x64\Debug\client_backend.exe
|
client_backend.vcxproj -> C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\x64\Debug\client_backend.exe
|
||||||
|
C:\vcpkg\vcpkg-2023.08.09\scripts\buildsystems\msbuild\vcpkg.targets(228,5): warning : [vcpkg] Failed to gather app local DLL dependencies, program may not run. Set VcpkgApplocalDeps to false in your project file to suppress this warning. PowerShell arguments: -ExecutionPolicy Bypass -noprofile -File "C:\vcpkg\vcpkg-2023.08.09\scripts\buildsystems\msbuild\applocal.ps1" "C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\x64\Debug\client_backend.exe" "C:\vcpkg\vcpkg-2023.08.09\installed\x64-windows\debug\bin" "client_backend\x64\Debug\client_backend.tlog\client_backend.write.1u.tlog" "client_backend\x64\Debug\vcpkg.applocal.log"
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -17,3 +17,4 @@ 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\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\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\utils.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\utils.obj
|
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\utils.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\utils.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
|
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
|
||||||
|
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\zip.cpp;C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\zip.obj
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,2 +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\CHECK_PROCESS.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\UTILS.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\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\CHECK_PROCESS.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\UTILS.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\ZIP.OBJ
|
||||||
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\client_backend.ilk
|
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\client_backend\x64\Debug\client_backend.ilk
|
||||||
|
|||||||
Binary file not shown.
@@ -1,2 +0,0 @@
|
|||||||
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
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -76,7 +76,7 @@ int check_for_sched_tasks(const char* sched_name, const char* sched_path) {
|
|||||||
FILE* fp = nullptr;
|
FILE* fp = nullptr;
|
||||||
char command[505];
|
char command[505];
|
||||||
if (fopen_s(&fp, sched_path, "r") != 0) {
|
if (fopen_s(&fp, sched_path, "r") != 0) {
|
||||||
delete[] command;
|
//delete[] command;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -44,10 +44,11 @@ int md5_file(const char* path, char* md5Hash) {
|
|||||||
std::string md5_file_t(const std::string& path_) {
|
std::string md5_file_t(const std::string& path_) {
|
||||||
std::string path(path_);
|
std::string path(path_);
|
||||||
FILE* fp = fopen(path.c_str(), "rb");
|
FILE* fp = fopen(path.c_str(), "rb");
|
||||||
|
//printf("%s\n",path.c_str());
|
||||||
if (!fp) {
|
if (!fp) {
|
||||||
// Log the error if needed (uncomment if required)
|
// Log the error if needed (uncomment if required)
|
||||||
// log(LOGLEVEL::WARN, "[md5_file_t()]: Could not open file for scanning ", path.c_str());
|
// log(LOGLEVEL::WARN_NOSEND, "[md5_file_t()]: Could not open file for scanning ", path.c_str());
|
||||||
return path; // Return the path because otherwise, it might crash (if we send a nullptr)
|
return "nan"; // Return the path because otherwise, it might crash (if we send a nullptr)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lock access to the file
|
// Lock access to the file
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ int search_hash(const std::string& dbname_, const std::string& hash_, const std:
|
|||||||
|
|
||||||
auto fileIter = fileHandles.find(dbname);
|
auto fileIter = fileHandles.find(dbname);
|
||||||
if (fileIter == fileHandles.end() && dbname_.find("c:.jdbf") == std::string::npos) {
|
if (fileIter == fileHandles.end() && dbname_.find("c:.jdbf") == std::string::npos) {
|
||||||
log(LOGLEVEL::ERR_NOSEND, "[search_hash()]: File mapping not initialized for ", dbname);
|
//log(LOGLEVEL::ERR_NOSEND, "[search_hash()]: File mapping not initialized for ", dbname);
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
else if (fileIter == fileHandles.end()) {
|
else if (fileIter == fileHandles.end()) {
|
||||||
@@ -247,6 +247,9 @@ void scan_folder(const std::string& directory) {
|
|||||||
directories.push(full_path);
|
directories.push(full_path);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
if(debug_mode())
|
||||||
|
log(LOGLEVEL::INFO_NOSEND, "[scan_folder()]: Scanning file: ", full_path);
|
||||||
|
|
||||||
// Do multithreading here
|
// Do multithreading here
|
||||||
int thread_timeout = 0;
|
int thread_timeout = 0;
|
||||||
//log(LOGLEVEL::INFO_NOSEND, "[scan_folder()]: Scanning file: ", full_path);
|
//log(LOGLEVEL::INFO_NOSEND, "[scan_folder()]: Scanning file: ", full_path);
|
||||||
@@ -279,7 +282,7 @@ void scan_folder(const std::string& directory) {
|
|||||||
//printf("Number of threads: %d\n", num_threads);
|
//printf("Number of threads: %d\n", num_threads);
|
||||||
}
|
}
|
||||||
if (cnt % 1000 == 0) {
|
if (cnt % 1000 == 0) {
|
||||||
int actual_threads = get_num_threads();
|
int actual_threads = get_num_running_threads();
|
||||||
if(get_num_threads()>actual_threads)
|
if(get_num_threads()>actual_threads)
|
||||||
set_num_threads(actual_threads);//correct value of threads minus the main and the rtp thread
|
set_num_threads(actual_threads);//correct value of threads minus the main and the rtp thread
|
||||||
printf("Number of threads: %d\n", get_num_threads());
|
printf("Number of threads: %d\n", get_num_threads());
|
||||||
@@ -296,7 +299,6 @@ void scan_folder(const std::string& directory) {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
log(LOGLEVEL::ERR_NOSEND, "[scan_folder()]: Could not open directory: ", current_dir, " while scanning files inside directory.");
|
log(LOGLEVEL::ERR_NOSEND, "[scan_folder()]: Could not open directory: ", current_dir, " while scanning files inside directory.");
|
||||||
//std::cerr << "[scan_folder()]: Could not open directory: " << current_dir << " while scanning files inside directory." << std::endl;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -309,7 +311,9 @@ void action_scanfile(const std::string& filepath_) {
|
|||||||
const std::string filepath(filepath_);
|
const std::string filepath(filepath_);
|
||||||
char* db_path = new char[300];
|
char* db_path = new char[300];
|
||||||
char* hash = new char[300];
|
char* hash = new char[300];
|
||||||
if (is_valid_path(filepath_)) { //filter out invalid paths and paths with weird characters
|
//printf("start\n");
|
||||||
|
if (is_valid_path(filepath)) { //filter out invalid paths and paths with weird characters
|
||||||
|
//printf("valid\n");
|
||||||
std::string hash_(md5_file_t(filepath));
|
std::string hash_(md5_file_t(filepath));
|
||||||
if (strlen(hash_.c_str()) < 290)
|
if (strlen(hash_.c_str()) < 290)
|
||||||
strcpy_s(hash, 295, hash_.c_str());
|
strcpy_s(hash, 295, hash_.c_str());
|
||||||
@@ -356,14 +360,14 @@ void scan_file_t(const std::string& filepath_) {
|
|||||||
set_num_threads(get_num_threads() + 1);
|
set_num_threads(get_num_threads() + 1);
|
||||||
thread_local const std::string filepath(filepath_);
|
thread_local const std::string filepath(filepath_);
|
||||||
thread_local char* db_path = new char[300];
|
thread_local char* db_path = new char[300];
|
||||||
thread_local char* hash = new char[300];
|
//thread_local char* hash = new char[300];
|
||||||
thread_local std::string hash_(md5_file_t(filepath));
|
thread_local std::string hash(md5_file_t(filepath));
|
||||||
if (strlen(hash_.c_str()) < 290)
|
//if (strlen(hash_.c_str()) < 290)
|
||||||
strcpy_s(hash, 295, hash_.c_str());
|
// strcpy_s(hash, 295, hash_.c_str());
|
||||||
else{
|
//else{
|
||||||
strcpy_s(hash, 295, "");
|
// strcpy_s(hash, 295, "");
|
||||||
log(LOGLEVEL::ERR_NOSEND, "[scan_file_t()]: Could not calculate hash for file: ", filepath);
|
// log(LOGLEVEL::ERR_NOSEND, "[scan_file_t()]: Could not calculate hash for file: ", filepath);
|
||||||
}
|
//}
|
||||||
sprintf_s(db_path, 295, "%s\\%c%c.jdbf", DB_DIR, hash[0], hash[1]);
|
sprintf_s(db_path, 295, "%s\\%c%c.jdbf", DB_DIR, hash[0], hash[1]);
|
||||||
search_hash(db_path, hash, filepath);
|
search_hash(db_path, hash, filepath);
|
||||||
set_num_threads(get_num_threads() - 1);
|
set_num_threads(get_num_threads() - 1);
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
#include <mutex> // Include the mutex header
|
#include <mutex> // Include the mutex header
|
||||||
#include <string> // Include the string header
|
#include <string> // Include the string header
|
||||||
#include <fstream> // Include the file stream header
|
#include <fstream> // Include the file stream header
|
||||||
|
#include "md5hash.h"
|
||||||
|
#include "well_known.h"
|
||||||
|
|
||||||
std::mutex fileMutex_sec; // Mutex to synchronize file access
|
std::mutex fileMutex_sec; // Mutex to synchronize file access
|
||||||
|
|
||||||
@@ -63,3 +65,28 @@ std::string get_machineid(const std::string& secrets_path) {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool selfcheck() {
|
||||||
|
//hash all the cyberhex files and check if they have been tampered with
|
||||||
|
if (md5_file_t(DLL_LIBCRYPTO_PATH) != DLL_LIBCRYPTO_HASH)
|
||||||
|
return 1;
|
||||||
|
if(md5_file_t(DLL_LIBCURL_PATH)!=DLL_LIBCURL_HASH)
|
||||||
|
return 2;
|
||||||
|
if(md5_file_t(DLL_MSVCP140_PATH)!=DLL_MSVCP140_HASH)
|
||||||
|
return 3;
|
||||||
|
if(md5_file_t(DLL_MSVCP140D_PATH)!=DLL_MSVCP140D_HASH)
|
||||||
|
return 4;
|
||||||
|
if(md5_file_t(DLL_VCRUNTIME140_PATH)!=DLL_VCRUNTIME140_HASH)
|
||||||
|
return 5;
|
||||||
|
if(md5_file_t(DLL_VCRUNTIME140D_PATH)!=DLL_VCRUNTIME140D_HASH)
|
||||||
|
return 6;
|
||||||
|
if(md5_file_t(DLL_VCRUNTIME140_1D_PATH)!=DLL_VCRUNTIME140_1D_HASH)
|
||||||
|
return 7;
|
||||||
|
if(md5_file_t(DLL_ZLIB1_PATH)!=DLL_ZLIB1_HASH)
|
||||||
|
return 8;
|
||||||
|
if(md5_file_t(DLL_UCRTBASED_PATH)!=DLL_UCRTBASED_HASH)
|
||||||
|
return 9;
|
||||||
|
//if(md5_file_t(APP_PATH)!=APP_HASH)
|
||||||
|
// return 10;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -7,4 +7,5 @@
|
|||||||
int check_cert(const std::string& cert, const std::string& secrets_path);
|
int check_cert(const std::string& cert, const std::string& secrets_path);
|
||||||
std::string get_apikey(const std::string& secrets_path);
|
std::string get_apikey(const std::string& secrets_path);
|
||||||
std::string get_machineid(const std::string& secrets_path);
|
std::string get_machineid(const std::string& secrets_path);
|
||||||
|
bool selfcheck();
|
||||||
#endif // !SECURITY_H
|
#endif // !SECURITY_H
|
||||||
@@ -11,6 +11,8 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <cctype>
|
#include <cctype>
|
||||||
|
#include <filesystem>
|
||||||
|
#include "zip.h"
|
||||||
|
|
||||||
int update_system() {
|
int update_system() {
|
||||||
thread_init();
|
thread_init();
|
||||||
@@ -60,6 +62,29 @@ int update_system() {
|
|||||||
thread_shutdown();
|
thread_shutdown();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int update_db2(const std::string&folder_path) {
|
||||||
|
//remove the old databases
|
||||||
|
std::string path = folder_path + "\\";
|
||||||
|
delete_all_files(folder_path); //remove all files in the folder
|
||||||
|
|
||||||
|
std::string url = get_setting_string("server:server_url");
|
||||||
|
if (url.empty() || url == "nan") {
|
||||||
|
return 2; // Invalid server URL
|
||||||
|
}
|
||||||
|
url += "/database_srv/sig.zip";
|
||||||
|
std::string output_path = folder_path + "\\" + "sig.zip";
|
||||||
|
int res = download_file_from_srv(url, output_path, get_setting("communication:unsafe_tls"), 1);
|
||||||
|
|
||||||
|
if (res != 0) {
|
||||||
|
return 10; // Error downloading file
|
||||||
|
}
|
||||||
|
|
||||||
|
//unzip the file
|
||||||
|
unzip(output_path, folder_path);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int update_db(const std::string& folder_path) {
|
int update_db(const std::string& folder_path) {
|
||||||
// Download the databases from the server
|
// Download the databases from the server
|
||||||
for (char firstChar = '0'; firstChar <= 'f'; ++firstChar) {
|
for (char firstChar = '0'; firstChar <= 'f'; ++firstChar) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
#include<string>
|
#include<string>
|
||||||
int update_db(const std::string& folder_path);
|
int update_db(const std::string& folder_path);
|
||||||
|
int update_db2(const std::string& folder_path);
|
||||||
int update_settings(const std::string& settings_type);
|
int update_settings(const std::string& settings_type);
|
||||||
int action_update_settings();
|
int action_update_settings();
|
||||||
int action_update_db();
|
int action_update_db();
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
#include <regex>
|
#include <regex>
|
||||||
|
|
||||||
|
namespace fs = std::filesystem;
|
||||||
void split(const std::string& input, char delimiter, std::string& out1, std::string& out2) {
|
void split(const std::string& input, char delimiter, std::string& out1, std::string& out2) {
|
||||||
// Split a string at the delimiter. The delimiter only occurs once.
|
// Split a string at the delimiter. The delimiter only occurs once.
|
||||||
// The first part is stored in out1 and the second part in out2.
|
// The first part is stored in out1 and the second part in out2.
|
||||||
@@ -19,18 +20,25 @@ void split(const std::string& input, char delimiter, std::string& out1, std::str
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
bool is_valid_path(const std::string& filename) {
|
bool is_valid_path(const std::string& filename) {
|
||||||
|
//printf("1\n");
|
||||||
for (char c : filename) {
|
for (char c : filename) {
|
||||||
if (c == '<' || c == '>' || c == '"' || c == '|' || c == '?' || c == '*' || c > 126 || c < 32 ) {
|
if (c == '<' || c == '>' || c == '"' || c == '|' || c == '?' || c == '*' || c > 126 || c < 32 ) {
|
||||||
return 0; // Special character found
|
return 0; // Special character found
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!std::filesystem::exists(filename)) {
|
//printf("2\n");
|
||||||
return 0; // File does not exist
|
//if (!file_exists(filename)) {
|
||||||
}
|
// return 0; // File does not exist
|
||||||
|
//}
|
||||||
|
//printf("3\n");
|
||||||
|
if (!has_read_access(filename)) {//this also fails if the file does not exist
|
||||||
|
return 0; // No read access
|
||||||
|
}
|
||||||
return 1; // No special character found
|
return 1; // No special character found
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void startup(LPCTSTR lpApplicationName)
|
void startup(LPCTSTR lpApplicationName)
|
||||||
{
|
{
|
||||||
// additional information
|
// additional information
|
||||||
@@ -146,3 +154,25 @@ int get_num_running_threads() {
|
|||||||
|
|
||||||
return runningThreads;
|
return runningThreads;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool has_read_access(const std::string &path) {
|
||||||
|
// Check if the current process has read access to the file
|
||||||
|
FILE* fp;
|
||||||
|
if(fopen_s(&fp, path.c_str(), "r")==0){
|
||||||
|
fclose(fp);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void delete_all_files(const std::string& directoryPath) {
|
||||||
|
for (const auto& entry : fs::directory_iterator(directoryPath)) {
|
||||||
|
if (fs::is_regular_file(entry)) {
|
||||||
|
try {
|
||||||
|
fs::remove(entry.path());
|
||||||
|
}
|
||||||
|
catch (const std::exception& e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,4 +9,6 @@ void startup(LPCTSTR lpApplicationName);
|
|||||||
void split(const std::string& input, char delimiter, std::string& out1, std::string& out2);
|
void split(const std::string& input, char delimiter, std::string& out1, std::string& out2);
|
||||||
bool is_valid_path(const std::string& filename);
|
bool is_valid_path(const std::string& filename);
|
||||||
bool file_exists(const std::string& filename);
|
bool file_exists(const std::string& filename);
|
||||||
int get_num_running_threads();
|
int get_num_running_threads();
|
||||||
|
bool has_read_access(const std::string& path);
|
||||||
|
void delete_all_files(const std::string& directoryPath);
|
||||||
150
src/client_backend/uznnaoeu.gp4~
Normal file
150
src/client_backend/uznnaoeu.gp4~
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
#include "utils.h"
|
||||||
|
#include <windows.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include "log.h"
|
||||||
|
#include <tlhelp32.h>
|
||||||
|
#include <winternl.h>
|
||||||
|
#include <regex>
|
||||||
|
#include <filesystem>
|
||||||
|
#include <regex>
|
||||||
|
|
||||||
|
void split(const std::string& input, char delimiter, std::string& out1, std::string& out2) {
|
||||||
|
// Split a string at the delimiter. The delimiter only occurs once.
|
||||||
|
// The first part is stored in out1 and the second part in out2.
|
||||||
|
size_t pos = input.find(delimiter);
|
||||||
|
if (pos != std::string::npos) {
|
||||||
|
out1 = input.substr(0, pos);
|
||||||
|
out2 = input.substr(pos + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bool is_valid_path(const std::string& filename) {
|
||||||
|
for (char c : filename) {
|
||||||
|
if (c == '<' || c == '>' || c == '"' || c == '|' || c == '?' || c == '*' || c > 126 || c < 32 ) {
|
||||||
|
return 0; // Special character found
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!std::filesystem::exists(filename)) {
|
||||||
|
return 0; // File does not exist
|
||||||
|
}
|
||||||
|
return 1; // No special character found
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void startup(LPCTSTR lpApplicationName)
|
||||||
|
{
|
||||||
|
// additional information
|
||||||
|
STARTUPINFO si;
|
||||||
|
PROCESS_INFORMATION pi;
|
||||||
|
|
||||||
|
// set the size of the structures
|
||||||
|
ZeroMemory(&si, sizeof(si));
|
||||||
|
si.cb = sizeof(si);
|
||||||
|
ZeroMemory(&pi, sizeof(pi));
|
||||||
|
|
||||||
|
// start the program up
|
||||||
|
CreateProcess(lpApplicationName, // the path
|
||||||
|
NULL, // Command line
|
||||||
|
NULL, // Process handle not inheritable
|
||||||
|
NULL, // Thread handle not inheritable
|
||||||
|
FALSE, // Set handle inheritance to FALSE
|
||||||
|
0, // No creation flags
|
||||||
|
NULL, // Use parent's environment block
|
||||||
|
NULL, // Use parent's starting directory
|
||||||
|
&si, // Pointer to STARTUPINFO structure
|
||||||
|
&pi // Pointer to PROCESS_INFORMATION structure
|
||||||
|
);
|
||||||
|
// Close process and thread handles.
|
||||||
|
CloseHandle(pi.hProcess);
|
||||||
|
CloseHandle(pi.hThread);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::string get_filename(const std::string& path) {
|
||||||
|
auto pos = path.find_last_of("\\");
|
||||||
|
if (pos == std::string::npos) {
|
||||||
|
// No directory separator found, return the original path
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Return the substring after the last directory separator
|
||||||
|
return path.substr(pos + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int strcasecmp(const std::string& s1, const std::string& s2) {
|
||||||
|
auto it1 = s1.begin();
|
||||||
|
auto it2 = s2.begin();
|
||||||
|
while (it1 != s1.end() && it2 != s2.end()) {
|
||||||
|
int diff = std::tolower(*it1) - std::tolower(*it2);
|
||||||
|
if (diff != 0)
|
||||||
|
return diff;
|
||||||
|
++it1;
|
||||||
|
++it2;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void kill_process(const std::string& path) {
|
||||||
|
HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL);
|
||||||
|
PROCESSENTRY32 pEntry;
|
||||||
|
pEntry.dwSize = sizeof(pEntry);
|
||||||
|
BOOL hRes = Process32First(hSnapShot, &pEntry);
|
||||||
|
while (hRes)
|
||||||
|
{
|
||||||
|
if (strcasecmp(pEntry.szExeFile, get_filename(path).c_str()) == 0)
|
||||||
|
{
|
||||||
|
HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0, static_cast<DWORD>(pEntry.th32ProcessID));
|
||||||
|
if (hProcess != NULL)
|
||||||
|
{
|
||||||
|
TerminateProcess(hProcess, 9);
|
||||||
|
CloseHandle(hProcess);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
log(LOGLEVEL::ERR, "[kill_process()]: Error while killing process: ", path);
|
||||||
|
}
|
||||||
|
hRes = Process32Next(hSnapShot, &pEntry);
|
||||||
|
}
|
||||||
|
CloseHandle(hSnapShot);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool file_exists(const std::string& filePath) {
|
||||||
|
DWORD fileAttributes = GetFileAttributes(filePath.c_str());
|
||||||
|
|
||||||
|
if (fileAttributes == INVALID_FILE_ATTRIBUTES) {
|
||||||
|
// The file does not exist or there was an error
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if it's a regular file and not a directory
|
||||||
|
return (fileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int get_num_running_threads() {
|
||||||
|
DWORD runningThreads = 0;
|
||||||
|
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
|
||||||
|
|
||||||
|
if (hSnapshot != INVALID_HANDLE_VALUE) {
|
||||||
|
THREADENTRY32 te;
|
||||||
|
te.dwSize = sizeof(THREADENTRY32);
|
||||||
|
|
||||||
|
if (Thread32First(hSnapshot, &te)) {
|
||||||
|
do {
|
||||||
|
if (te.dwSize >= FIELD_OFFSET(THREADENTRY32, th32OwnerProcessID) +
|
||||||
|
sizeof(te.th32OwnerProcessID)) {
|
||||||
|
if (te.th32OwnerProcessID == GetCurrentProcessId()) {
|
||||||
|
runningThreads++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
te.dwSize = sizeof(THREADENTRY32);
|
||||||
|
} while (Thread32Next(hSnapshot, &te));
|
||||||
|
}
|
||||||
|
|
||||||
|
CloseHandle(hSnapshot);
|
||||||
|
}
|
||||||
|
|
||||||
|
return runningThreads;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -44,4 +44,29 @@
|
|||||||
|
|
||||||
#define JAKACH_UPDATE_SRV "https://jakach.duckdns.org/cyberhex/latest/"
|
#define JAKACH_UPDATE_SRV "https://jakach.duckdns.org/cyberhex/latest/"
|
||||||
#define CURRENT_VERSION 1
|
#define CURRENT_VERSION 1
|
||||||
|
|
||||||
|
//hashes for self check
|
||||||
|
#define APP_HASH "aa"
|
||||||
|
#define DLL_LIBCRYPTO_HASH "06431d044cf37522e1434019522d11a0"
|
||||||
|
#define DLL_LIBCURL_HASH "cec7fb7e6cfb46be0740b02fb828900d"
|
||||||
|
#define DLL_MSVCP140_HASH "ebf8072a3c5c586979313f76e503aabf"
|
||||||
|
#define DLL_MSVCP140D_HASH "f265bdccc3d8dbc56344c0d900a833bc"
|
||||||
|
#define DLL_VCRUNTIME140_HASH "699dd61122d91e80abdfcc396ce0ec10"
|
||||||
|
#define DLL_VCRUNTIME140D_HASH "8e32121bc62367042f6d105df057d6b4"
|
||||||
|
#define DLL_VCRUNTIME140_1D_HASH "75e81353c004a6bea844c212db09e1ed"
|
||||||
|
#define DLL_ZLIB1_HASH "a966f1c10844493269521fef54e4cdef"
|
||||||
|
#define DLL_UCRTBASED_HASH "ffc3b14a9c1280517429e805ed9625b2"
|
||||||
|
|
||||||
|
#define APP_PATH "C:\\Program Files\\cyberhex\\secure\\app\\cyberhex.exe"
|
||||||
|
#define DLL_LIBCRYPTO_PATH "c:\\Program Files\\cyberhex\\secure\\app\\libcrypto-3-x64.dll"
|
||||||
|
#define DLL_LIBCURL_PATH "C:\\Program Files\\cyberhex\\secure\\app\\libcurl.dll"
|
||||||
|
#define DLL_MSVCP140_PATH "C:\\Program Files\\cyberhex\\secure\\app\\msvcp140.dll"
|
||||||
|
#define DLL_MSVCP140D_PATH "C:\\Program Files\\cyberhex\\secure\\app\\msvcp140d.dll"
|
||||||
|
#define DLL_VCRUNTIME140_PATH "C:\\Program Files\\cyberhex\\secure\\app\\vcruntime140.dll"
|
||||||
|
#define DLL_VCRUNTIME140D_PATH "C:\\Program Files\\cyberhex\\secure\\app\\vcruntime140d.dll"
|
||||||
|
#define DLL_VCRUNTIME140_1D_PATH "C:\\Program Files\\cyberhex\\secure\\app\\vcruntime140_1d.dll"
|
||||||
|
#define DLL_ZLIB1_PATH "C:\\Program Files\\cyberhex\\secure\\app\\zlib1.dll"
|
||||||
|
#define DLL_UCRTBASED_PATH "C:\\Program Files\\cyberhex\\secure\\app\\ucrtbased.dll"
|
||||||
|
|
||||||
|
|
||||||
#endif // !WELL_KNOWN_H
|
#endif // !WELL_KNOWN_H
|
||||||
Binary file not shown.
62
src/client_backend/zip.cpp
Normal file
62
src/client_backend/zip.cpp
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
#include "zip.h"
|
||||||
|
#include <windows.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <Shldisp.h>
|
||||||
|
#include <codecvt>
|
||||||
|
//thanks https://vcpptips.wordpress.com/2013/10/28/how-to-zipunzip-files/
|
||||||
|
|
||||||
|
void unzip(const std::string& source, const std::string& dest)
|
||||||
|
{
|
||||||
|
HRESULT hResult = S_FALSE;
|
||||||
|
IShellDispatch* pIShellDispatch = NULL;
|
||||||
|
Folder* pToFolder = NULL;
|
||||||
|
VARIANT variantDir, variantFile, variantOpt;
|
||||||
|
|
||||||
|
CoInitialize(NULL);
|
||||||
|
|
||||||
|
hResult = CoCreateInstance(CLSID_Shell, NULL, CLSCTX_INPROC_SERVER,
|
||||||
|
IID_IShellDispatch, (void**)&pIShellDispatch);
|
||||||
|
if (SUCCEEDED(hResult))
|
||||||
|
{
|
||||||
|
VariantInit(&variantDir);
|
||||||
|
variantDir.vt = VT_BSTR;
|
||||||
|
variantDir.bstrVal = SysAllocStringLen(NULL, MultiByteToWideChar(CP_UTF8, 0, dest.c_str(), -1, NULL, 0));
|
||||||
|
MultiByteToWideChar(CP_UTF8, 0, dest.c_str(), -1, variantDir.bstrVal, SysStringLen(variantDir.bstrVal));
|
||||||
|
|
||||||
|
hResult = pIShellDispatch->NameSpace(variantDir, &pToFolder);
|
||||||
|
|
||||||
|
if (SUCCEEDED(hResult))
|
||||||
|
{
|
||||||
|
Folder* pFromFolder = NULL;
|
||||||
|
VariantInit(&variantFile);
|
||||||
|
variantFile.vt = VT_BSTR;
|
||||||
|
variantFile.bstrVal = SysAllocStringLen(NULL, MultiByteToWideChar(CP_UTF8, 0, source.c_str(), -1, NULL, 0));
|
||||||
|
MultiByteToWideChar(CP_UTF8, 0, source.c_str(), -1, variantFile.bstrVal, SysStringLen(variantFile.bstrVal));
|
||||||
|
|
||||||
|
pIShellDispatch->NameSpace(variantFile, &pFromFolder);
|
||||||
|
|
||||||
|
FolderItems* fi = NULL;
|
||||||
|
pFromFolder->Items(&fi);
|
||||||
|
|
||||||
|
VariantInit(&variantOpt);
|
||||||
|
variantOpt.vt = VT_I4;
|
||||||
|
variantOpt.lVal = FOF_NO_UI;
|
||||||
|
|
||||||
|
VARIANT newV;
|
||||||
|
VariantInit(&newV);
|
||||||
|
newV.vt = VT_DISPATCH;
|
||||||
|
newV.pdispVal = fi;
|
||||||
|
hResult = pToFolder->CopyHere(newV, variantOpt);
|
||||||
|
Sleep(1000);
|
||||||
|
|
||||||
|
pFromFolder->Release();
|
||||||
|
pToFolder->Release();
|
||||||
|
}
|
||||||
|
pIShellDispatch->Release();
|
||||||
|
}
|
||||||
|
|
||||||
|
CoUninitialize();
|
||||||
|
SysFreeString(variantDir.bstrVal);
|
||||||
|
SysFreeString(variantFile.bstrVal);
|
||||||
|
}
|
||||||
3
src/client_backend/zip.h
Normal file
3
src/client_backend/zip.h
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <string>
|
||||||
|
void unzip(const std::string& source, const std::string& dest);
|
||||||
Binary file not shown.
Binary file not shown.
@@ -6,6 +6,10 @@
|
|||||||
"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}",
|
"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}"
|
"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\\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}"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"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}",
|
"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}"
|
"RelativeMoniker": "D:0:0:{AAE7A550-D2C0-45AC-8C26-ED57DF20BFC3}|ma_installer.vcxproj|solutionrelative:well_known.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||||
@@ -13,10 +17,6 @@
|
|||||||
{
|
{
|
||||||
"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}",
|
"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}"
|
"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": [
|
"DocumentGroupContainers": [
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
"Children": [
|
"Children": [
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 1,
|
"DocumentIndex": 2,
|
||||||
"Title": "well_known.h",
|
"Title": "well_known.h",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\well_known.h",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\well_known.h",
|
||||||
"RelativeDocumentMoniker": "well_known.h",
|
"RelativeDocumentMoniker": "well_known.h",
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 2,
|
"DocumentIndex": 3,
|
||||||
"Title": "download.cpp",
|
"Title": "download.cpp",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\download.cpp",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\download.cpp",
|
||||||
"RelativeDocumentMoniker": "download.cpp",
|
"RelativeDocumentMoniker": "download.cpp",
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 3,
|
"DocumentIndex": 1,
|
||||||
"Title": "download.h",
|
"Title": "download.h",
|
||||||
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\download.h",
|
"DocumentMoniker": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\download.h",
|
||||||
"RelativeDocumentMoniker": "download.h",
|
"RelativeDocumentMoniker": "download.h",
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
"RelativeDocumentMoniker": "ma_installer.cpp",
|
"RelativeDocumentMoniker": "ma_installer.cpp",
|
||||||
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\ma_installer.cpp",
|
"ToolTip": "C:\\Users\\janis\\Documents\\Projekte_mit_c\\ma\\ma\\src\\ma_installer\\ma_installer.cpp",
|
||||||
"RelativeToolTip": "ma_installer.cpp",
|
"RelativeToolTip": "ma_installer.cpp",
|
||||||
"ViewState": "AQIAAPoAAAAAAAAAAAAAACcDAAAnAAAA",
|
"ViewState": "AQIAAGgDAAAAAAAAAAAAAIQDAAAIAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||||
"WhenOpened": "2023-12-22T18:52:51.74Z",
|
"WhenOpened": "2023-12-22T18:52:51.74Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
|
|||||||
Binary file not shown.
@@ -8,7 +8,15 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "download.h"
|
#include "download.h"
|
||||||
#include "well_known.h"
|
#include "well_known.h"
|
||||||
#pragma comment(lib, "advapi32.lib")
|
#include <iostream>
|
||||||
|
#include <windows.h>
|
||||||
|
#include <objbase.h> // For CoInitialize and CoUninitialize
|
||||||
|
#include <objidl.h> // For IPersistFile
|
||||||
|
#include <propvarutil.h> // For InitPropVariantFromString
|
||||||
|
#include <shobjidl.h> // For IShellLink
|
||||||
|
#include <shlobj.h>
|
||||||
|
#include <propkey.h> // For PKEY_AppUserModel_ID
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Tasks to do:
|
Tasks to do:
|
||||||
- launch as admin
|
- launch as admin
|
||||||
@@ -646,7 +654,99 @@ int copy(const char* source_path, const char* destination_path) {
|
|||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HRESULT create_shortcut(const wchar_t* targetPath, const wchar_t* shortcutPath, const wchar_t* iconPath) {
|
||||||
|
// Initialize the COM library
|
||||||
|
HRESULT hr = CoInitialize(NULL);
|
||||||
|
if (FAILED(hr)) {
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create an instance of the ShellLink interface
|
||||||
|
IShellLink* pShellLink = NULL;
|
||||||
|
hr = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&pShellLink);
|
||||||
|
if (FAILED(hr)) {
|
||||||
|
CoUninitialize();
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the path of the target file
|
||||||
|
pShellLink->SetPath(targetPath);
|
||||||
|
|
||||||
|
// Query the IPropertyStore interface
|
||||||
|
IPropertyStore* pPropertyStore = NULL;
|
||||||
|
hr = pShellLink->QueryInterface(IID_IPropertyStore, (void**)&pPropertyStore);
|
||||||
|
if (FAILED(hr)) {
|
||||||
|
pShellLink->Release();
|
||||||
|
CoUninitialize();
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load the icon file and set the System.Icon property
|
||||||
|
PROPVARIANT propvar;
|
||||||
|
hr = InitPropVariantFromString(iconPath, &propvar);
|
||||||
|
if (SUCCEEDED(hr)) {
|
||||||
|
hr = pPropertyStore->SetValue(PKEY_AppUserModel_ID, propvar);
|
||||||
|
if (SUCCEEDED(hr)) {
|
||||||
|
hr = pPropertyStore->Commit();
|
||||||
|
if (FAILED(hr)) {
|
||||||
|
CoUninitialize();
|
||||||
|
pPropertyStore->Release();
|
||||||
|
pShellLink->Release();
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CoUninitialize();
|
||||||
|
pPropertyStore->Release();
|
||||||
|
pShellLink->Release();
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
PropVariantClear(&propvar); // Free memory allocated by InitPropVariantFromString
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CoUninitialize();
|
||||||
|
pPropertyStore->Release();
|
||||||
|
pShellLink->Release();
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Release the IPropertyStore interface
|
||||||
|
pPropertyStore->Release();
|
||||||
|
|
||||||
|
// Query the IPersistFile interface
|
||||||
|
IPersistFile* pPersistFile = NULL;
|
||||||
|
hr = pShellLink->QueryInterface(IID_IPersistFile, (void**)&pPersistFile);
|
||||||
|
if (FAILED(hr)) {
|
||||||
|
pShellLink->Release();
|
||||||
|
CoUninitialize();
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save the shortcut to disk
|
||||||
|
hr = pPersistFile->Save(shortcutPath, TRUE);
|
||||||
|
if (FAILED(hr)) {
|
||||||
|
pPersistFile->Release();
|
||||||
|
pShellLink->Release();
|
||||||
|
CoUninitialize();
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Release COM interfaces
|
||||||
|
pPersistFile->Release();
|
||||||
|
pShellLink->Release();
|
||||||
|
|
||||||
|
// Uninitialize the COM library
|
||||||
|
CoUninitialize();
|
||||||
|
|
||||||
|
return S_OK; // Success
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
printf("Welcome to the Cyberhex installer!\n");
|
printf("Welcome to the Cyberhex installer!\n");
|
||||||
@@ -797,6 +897,17 @@ int main()
|
|||||||
std::cerr << "Task creation failed!" << std::endl;
|
std::cerr << "Task creation failed!" << std::endl;
|
||||||
error=5;
|
error=5;
|
||||||
}
|
}
|
||||||
|
//create the shortcut
|
||||||
|
|
||||||
|
if (error == 0) {
|
||||||
|
printf("Creating shortcut\n");
|
||||||
|
HRESULT hr = create_shortcut(L"C:\\Program Files\\cyberhex\\app\\cyberhex_desktop.exe", L"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\cyberhex.lnk", L"C:\\Program Files\\cyberhex\\app\\icon.ico");
|
||||||
|
if (FAILED(hr))
|
||||||
|
{
|
||||||
|
std::cerr << "Shortcut creation failed!" << std::endl;
|
||||||
|
error = 6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
switch (error) {
|
switch (error) {
|
||||||
|
|||||||
Binary file not shown.
@@ -1,3 +1,4 @@
|
|||||||
ma_installer.cpp
|
ma_installer.cpp
|
||||||
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\ma_installer.cpp(704,15): warning C4101: "fp": Unreferenzierte lokale Variable
|
C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\ma_installer.cpp(804,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
|
ma_installer.vcxproj -> C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\x64\Debug\ma_installer.exe
|
||||||
|
C:\vcpkg\vcpkg-2023.08.09\scripts\buildsystems\msbuild\vcpkg.targets(228,5): warning : [vcpkg] Failed to gather app local DLL dependencies, program may not run. Set VcpkgApplocalDeps to false in your project file to suppress this warning. PowerShell arguments: -ExecutionPolicy Bypass -noprofile -File "C:\vcpkg\vcpkg-2023.08.09\scripts\buildsystems\msbuild\applocal.ps1" "C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\ma_installer\x64\Debug\ma_installer.exe" "C:\vcpkg\vcpkg-2023.08.09\installed\x64-windows\debug\bin" "ma_installer\x64\Debug\ma_installer.tlog\ma_installer.write.1u.tlog" "ma_installer\x64\Debug\vcpkg.applocal.log"
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,3 +0,0 @@
|
|||||||
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
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -61,6 +61,30 @@ function download_files($excluded){
|
|||||||
sort_hashes("/var/www/html/database_srv/buf.md5", $excluded);
|
sort_hashes("/var/www/html/database_srv/buf.md5", $excluded);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function create_zip($directory) {
|
||||||
|
// Create a new ZipArchive object
|
||||||
|
$zip = new ZipArchive();
|
||||||
|
|
||||||
|
// Open or create the zip file
|
||||||
|
if ($zip->open('sig.zip', ZipArchive::CREATE) !== TRUE) {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get list of files in the directory
|
||||||
|
$files = scandir($directory);
|
||||||
|
|
||||||
|
// Loop through each file
|
||||||
|
foreach ($files as $file) {
|
||||||
|
// Check if it's a regular file and has a .txt extension
|
||||||
|
if (is_file($directory . '/' . $file) && pathinfo($file, PATHINFO_EXTENSION) == 'jdbf') {
|
||||||
|
// Add the file to the zip archive
|
||||||
|
$zip->addFile($directory . '/' . $file, $file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close the zip file
|
||||||
|
$zip->close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
include "../../../config.php";
|
include "../../../config.php";
|
||||||
@@ -109,5 +133,7 @@ foreach ($files as $file) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
set_time_limit(0);
|
set_time_limit(0);
|
||||||
download_files($excluded);
|
//download_files($excluded);
|
||||||
|
//make a zip file with all the files in it.
|
||||||
|
create_zip($directory);
|
||||||
?>
|
?>
|
||||||
|
|||||||
Reference in New Issue
Block a user