diff --git a/src/client_backend/.vs/client_backend/FileContentIndex/11c9e6b8-de6e-49f0-8e20-9fd916553388.vsidx b/src/client_backend/.vs/client_backend/FileContentIndex/11c9e6b8-de6e-49f0-8e20-9fd916553388.vsidx deleted file mode 100644 index 8a6eb2c..0000000 Binary files a/src/client_backend/.vs/client_backend/FileContentIndex/11c9e6b8-de6e-49f0-8e20-9fd916553388.vsidx and /dev/null differ diff --git a/src/client_backend/.vs/client_backend/FileContentIndex/11f76172-f41b-47b7-97cd-3de3f68dccf0.vsidx b/src/client_backend/.vs/client_backend/FileContentIndex/11f76172-f41b-47b7-97cd-3de3f68dccf0.vsidx new file mode 100644 index 0000000..28a376e Binary files /dev/null and b/src/client_backend/.vs/client_backend/FileContentIndex/11f76172-f41b-47b7-97cd-3de3f68dccf0.vsidx differ diff --git a/src/client_backend/.vs/client_backend/FileContentIndex/49fa7170-3b90-4440-8a2a-c08fef824825.vsidx b/src/client_backend/.vs/client_backend/FileContentIndex/49fa7170-3b90-4440-8a2a-c08fef824825.vsidx deleted file mode 100644 index 5862404..0000000 Binary files a/src/client_backend/.vs/client_backend/FileContentIndex/49fa7170-3b90-4440-8a2a-c08fef824825.vsidx and /dev/null differ diff --git a/src/client_backend/.vs/client_backend/FileContentIndex/56c545cf-96e8-4768-9438-78e3265432db.vsidx b/src/client_backend/.vs/client_backend/FileContentIndex/56c545cf-96e8-4768-9438-78e3265432db.vsidx new file mode 100644 index 0000000..a11a3dc Binary files /dev/null and b/src/client_backend/.vs/client_backend/FileContentIndex/56c545cf-96e8-4768-9438-78e3265432db.vsidx differ diff --git a/src/client_backend/.vs/client_backend/FileContentIndex/ea081eb1-a086-4570-88ba-ab0c04214075.vsidx b/src/client_backend/.vs/client_backend/FileContentIndex/702199ac-4d56-4820-8896-80b3c1cb42c2.vsidx similarity index 87% rename from src/client_backend/.vs/client_backend/FileContentIndex/ea081eb1-a086-4570-88ba-ab0c04214075.vsidx rename to src/client_backend/.vs/client_backend/FileContentIndex/702199ac-4d56-4820-8896-80b3c1cb42c2.vsidx index cdf5d0a..17f3022 100644 Binary files a/src/client_backend/.vs/client_backend/FileContentIndex/ea081eb1-a086-4570-88ba-ab0c04214075.vsidx and b/src/client_backend/.vs/client_backend/FileContentIndex/702199ac-4d56-4820-8896-80b3c1cb42c2.vsidx differ diff --git a/src/client_backend/.vs/client_backend/FileContentIndex/805d1a71-2daa-4df2-a96e-6596fb11bff4.vsidx b/src/client_backend/.vs/client_backend/FileContentIndex/805d1a71-2daa-4df2-a96e-6596fb11bff4.vsidx deleted file mode 100644 index d231d5f..0000000 Binary files a/src/client_backend/.vs/client_backend/FileContentIndex/805d1a71-2daa-4df2-a96e-6596fb11bff4.vsidx and /dev/null differ diff --git a/src/client_backend/.vs/client_backend/FileContentIndex/88ab0dc2-31ae-4c07-928a-f43f249cbe1f.vsidx b/src/client_backend/.vs/client_backend/FileContentIndex/88ab0dc2-31ae-4c07-928a-f43f249cbe1f.vsidx new file mode 100644 index 0000000..1805243 Binary files /dev/null and b/src/client_backend/.vs/client_backend/FileContentIndex/88ab0dc2-31ae-4c07-928a-f43f249cbe1f.vsidx differ diff --git a/src/client_backend/.vs/client_backend/FileContentIndex/a603cde6-8fc8-4dba-9fc6-5e564fdb7a6f.vsidx b/src/client_backend/.vs/client_backend/FileContentIndex/a603cde6-8fc8-4dba-9fc6-5e564fdb7a6f.vsidx deleted file mode 100644 index a9bfe20..0000000 Binary files a/src/client_backend/.vs/client_backend/FileContentIndex/a603cde6-8fc8-4dba-9fc6-5e564fdb7a6f.vsidx and /dev/null differ diff --git a/src/client_backend/.vs/client_backend/FileContentIndex/f03805b6-9baf-42ce-861d-45898094a973.vsidx b/src/client_backend/.vs/client_backend/FileContentIndex/f03805b6-9baf-42ce-861d-45898094a973.vsidx new file mode 100644 index 0000000..6c46d1e Binary files /dev/null and b/src/client_backend/.vs/client_backend/FileContentIndex/f03805b6-9baf-42ce-861d-45898094a973.vsidx differ diff --git a/src/client_backend/.vs/client_backend/v17/.suo b/src/client_backend/.vs/client_backend/v17/.suo index eb84197..be572ad 100644 Binary files a/src/client_backend/.vs/client_backend/v17/.suo and b/src/client_backend/.vs/client_backend/v17/.suo differ diff --git a/src/client_backend/.vs/client_backend/v17/Browse.VC.db b/src/client_backend/.vs/client_backend/v17/Browse.VC.db index 7f38591..6f3e405 100644 Binary files a/src/client_backend/.vs/client_backend/v17/Browse.VC.db and b/src/client_backend/.vs/client_backend/v17/Browse.VC.db differ diff --git a/src/client_backend/client_backend.cpp b/src/client_backend/client_backend.cpp index 69ae7f0..7a9366b 100644 --- a/src/client_backend/client_backend.cpp +++ b/src/client_backend/client_backend.cpp @@ -20,10 +20,11 @@ int main() { log(LOGLEVEL::INFO, "[main()]:Starting main thread."); printf("welcome to the jakach security tool main thread\n"); - load_settings(); - initialize(DB_DIR); + load_settings();//load the settings from the settings file + initialize(DB_DIR); //load the hash databases into memory + //start a second thread which will scan for new files - if (get_setting("rtp:status") == 1) { + if (get_setting("rtp_folder_scan:status") == 1) { log(LOGLEVEL::INFO, "[main()]:Starting real time protection."); std::thread folder_scannner_thread(folder_scanner); folder_scannner_thread.detach(); @@ -42,12 +43,9 @@ int main() { //check for tasks in com //check for scheduled tasks //execute tasks - //call_srv("8.8.8.8","",""); auto start = std::chrono::high_resolution_clock::now(); - // printf("check_from_com:%d\n",check_for_com_tasks(MAIN_COM, MAIN_COM_PATH)); - check_for_com_tasks(MAIN_COM, MAIN_COM_PATH); - check_for_sched_tasks(SCHED, SCHED_PATH); - // printf("check_from_task:%d\n", check_for_sched_tasks(SCHED,SCHED_PATH)); + check_for_com_tasks(MAIN_COM, MAIN_COM_PATH); //check for tasks from user interface and add them to the queue + check_for_sched_tasks(SCHED, SCHED_PATH); //check for scheduled tasks and add them to the queue //unlock_task("tsk1"); else it will only be executed once. but this function has to be called at the end of the task. else it will nvr be executed again. this would be bad :( //start a thread that executes check_scan_dir to scan folders for new files. this thread then should start a ock so only one scanfolder thread runs at a time //Sleep(1000); @@ -68,8 +66,6 @@ int main() { auto duration = std::chrono::duration_cast(stop - start); if (duration.count() < 1000) Sleep(1000 - duration.count()); - - // printf("\n\n\n"); } diff --git a/src/client_backend/local_com.cpp b/src/client_backend/local_com.cpp index 00f2f94..9941b60 100644 --- a/src/client_backend/local_com.cpp +++ b/src/client_backend/local_com.cpp @@ -37,9 +37,7 @@ int check_for_com_tasks(const char* com_name, const char* com_path) { queue_entry[0] = '\0'; strcpy_s(queue_entry,600, command); //copy the command strcat_s(queue_entry, 600, ";"); //add a ; to seperate command and path - //printf("%d\n", strlen(path)); strcat_s(queue_entry, 600, path); //add the path - //printf("%s::%d\n",queue_entry,strlen(queue_entry)); queue_push(queue_entry); //(queue_entry); diff --git a/src/client_backend/local_schedule.cpp b/src/client_backend/local_schedule.cpp index 807e3f7..8659ade 100644 --- a/src/client_backend/local_schedule.cpp +++ b/src/client_backend/local_schedule.cpp @@ -64,7 +64,7 @@ bool is_task_due(const std::string& task_name, const std::string& cron_expressio is_valid_field(fields[3], current_time.tm_mon + 1) && is_valid_field(fields[4], current_time.tm_wday + 1)) { - // Check if the task has already been executed + // Check if the task has not already been executed if (!task_states[task_name]) { // Set the flag to indicate that the task has been executed task_states[task_name] = true; diff --git a/src/client_backend/queue _ctrl.cpp b/src/client_backend/queue _ctrl.cpp index 7d8cfe4..05ea040 100644 --- a/src/client_backend/queue _ctrl.cpp +++ b/src/client_backend/queue _ctrl.cpp @@ -3,7 +3,7 @@ #include "queue_ctrl.h" #include #define queue_limit 1000 -#define command_limit 300 +#define command_limit 3000 char queue[queue_limit][command_limit]; int queue_size = 0; int queue_start = 0; diff --git a/src/client_backend/scan.cpp b/src/client_backend/scan.cpp index 2bf42e2..a0f4ec5 100644 --- a/src/client_backend/scan.cpp +++ b/src/client_backend/scan.cpp @@ -128,7 +128,7 @@ void scan_folder(const std::string& directory) { HANDLE hFind = FindFirstFile(search_path.c_str(), &find_file_data); if (hFind == INVALID_HANDLE_VALUE) { - log(LOGLEVEL::ERR, "[ListFilesRecursive()]: Error opening directory: ", directory, " while scanning files inside folder."); + log(LOGLEVEL::ERR, "[scan_folder()]: Error opening directory: ", search_path.c_str() , " while scanning files inside folder."); return; } @@ -189,16 +189,18 @@ void action_scanfile(const char*filepath) { delete[] db_path; thread_shutdown(); } -void action_scanfolder(const char* folderpath) { +void action_scanfolder(const char*folderpath) { thread_init(); - scan_folder(folderpath); + cnt = 0; + thread_local std::string folderpath_ (folderpath); + scan_folder(folderpath_); thread_shutdown(); } void scan_file_t(const std::string& filepath_) { thread_local const std::string filepath (filepath_); thread_local char* db_path = new char[300]; - thread_local char*hash = new char[300]; + thread_local char* hash = new char[300]; strcpy_s(hash,295 ,md5_file_t(filepath).c_str()); sprintf_s(db_path, 295, "%s\\%c%c.jdbf", DB_DIR, hash[0], hash[1]); search_hash(db_path, hash, filepath); diff --git a/src/client_backend/settings.cpp b/src/client_backend/settings.cpp index 6b10932..c710d0e 100644 --- a/src/client_backend/settings.cpp +++ b/src/client_backend/settings.cpp @@ -7,7 +7,7 @@ int setting_virus_ctrl_virus_found_action = 0; char*setting_server_server_url = new char[300]; char exluded_folders[100][300]; int excluded_folders_size = 0; -bool setting_rtp_status = 1; //0=off, 1=on +bool setting_rtp_folder_scan_status = 1; //0=off, 1=on void load_excluded_folders(); int load_settings() { FILE* fp; @@ -41,13 +41,13 @@ int load_settings() { fscanf_s(fp, "%s", settings_arg, 295); // get the argument strcpy_s(setting_server_server_url, 295, settings_arg); } - else if (strcmp(settings_cmd, "rtp:status") == 0) { + else if (strcmp(settings_cmd, "rtp_folder_scan:status") == 0) { fscanf_s(fp, "%s", settings_arg, 295); // get the argument if (strcmp(settings_arg, "on") == 0) { - setting_rtp_status = 1; //1=on + setting_rtp_folder_scan_status = 1; //1=on } else if (strcmp(settings_arg, "off") == 0) { - setting_rtp_status = 0; //0=off + setting_rtp_folder_scan_status = 0; //0=off } } @@ -67,8 +67,8 @@ int get_setting(const char*setting_name) { if (strcmp(setting_name, "virus_ctrl:virus_found:action") == 0) { return setting_virus_ctrl_virus_found_action; } - else if (strcmp(setting_name, "rtp:status") == 0) { - return setting_rtp_status; + else if (strcmp(setting_name, "rtp_folder_scan:status") == 0) { + return setting_rtp_folder_scan_status; } return -1; @@ -115,9 +115,9 @@ void load_excluded_folders() { log(LOGLEVEL::ERR, "[load_excluded_folders()]: Excluded folders array is full. Cannot add more folders."); } } - else { - log(LOGLEVEL::ERR, "[load_excluded_folders()]: Error while processing excluded folders database. Expected \" but got ", chr); - } + //else { we dont need to error out here. it is normal that it givs errors at the last lien of the file. but nothing bad happens, so errors arent needed + // log(LOGLEVEL::ERR, "[load_excluded_folders()]: Error while processing excluded folders database. Expected \" but got ", chr); + //} } fclose(fp); delete[] path; diff --git a/src/client_backend/thread_ctrl.cpp b/src/client_backend/thread_ctrl.cpp index dfea0b6..131282a 100644 --- a/src/client_backend/thread_ctrl.cpp +++ b/src/client_backend/thread_ctrl.cpp @@ -5,13 +5,13 @@ #include "well_known.h" #include "scan.h" #include "app_ctrl.h" -void split(char* input,char*delimiter, char* out1, char* out2) { +void split(char* input,const char delimiter, char* out1, char* out2) { //split a string at the delimiter. the delimiter only occurs once. so the first part is out1 and the second part is out2 int i = 0; int j = 0; int k = 0; while (input[i] != '\0') { - if (input[i] == delimiter[0]) { + if (input[i] == delimiter) { out1[j] = '\0'; i++; while (input[i] != '\0') { @@ -33,18 +33,25 @@ int start_thread(const char* command) { if (can_run_thread()) { char* out2 = new char[100]; //for the command char* out1 = new char[300]; //for the arguments - split((char*)command, (char*)";", (char*)out1, (char*)out2); - + split((char*)command,';', (char*)out1, (char*)out2); + log(LOGLEVEL::INFO, "[start_thread()]: starting command: ", out1, " with arguments: ",out2); //printf("out1: %s\n", out1); //printf("out2: %s\n", out2); //determine what should be executed if (strcmp(out1, "scanfile") == 0) { //start a new thread with the scanfile function std::thread t1(action_scanfile, out2); + t1.detach(); } else if (strcmp(out1, "scanfolder") == 0) { //start a new thread with the scanfolder function std::thread t1(action_scanfolder, out2); + t1.detach(); + } + + while (can_run_thread()) { + //delay a bit, in order to wait until the thread is started + Sleep(10); } delete[] out1; delete[] out2; diff --git a/src/client_backend/update.h b/src/client_backend/update.h index ff05d93..0cf68fe 100644 --- a/src/client_backend/update.h +++ b/src/client_backend/update.h @@ -2,6 +2,7 @@ #ifndef UPDATE_H #define UPDATE_H #include +#include int update_db(const std::string& folder_path); int update_settings(const std::string& folder_path); #endif \ No newline at end of file diff --git a/src/client_backend/virus_ctrl.cpp b/src/client_backend/virus_ctrl.cpp index f90e043..22986f8 100644 --- a/src/client_backend/virus_ctrl.cpp +++ b/src/client_backend/virus_ctrl.cpp @@ -101,9 +101,9 @@ int virus_ctrl_process( const char* id) { delete[] url_path; delete[] additional; } - else { - log(LOGLEVEL::ERR, "[virus_ctrl_process()]:Error while processing virus control database. Expected \" but got ", chr); - } + //else { creates to many log entrys => entrys are not needed + // log(LOGLEVEL::ERR, "[virus_ctrl_process()]:Error while processing virus control database. Expected \" but got ", chr); + //} delete[] path; delete[] hash; } diff --git a/src/client_backend/well_known.h b/src/client_backend/well_known.h index f8bdff7..5638803 100644 --- a/src/client_backend/well_known.h +++ b/src/client_backend/well_known.h @@ -3,6 +3,8 @@ #define WELL_KNOWN_H #define MAIN_COM "main_com.txt" #define MAIN_COM_PATH "C:\\Program Files\\cyberhex\\com\\main_com.txt" +#define ANSWER_COM "answer_com.txt" +#define ANSWER_COM_PATH "C:\\Program Files\\cyberhex\\com\\answer_com.txt" #define SECURE_COM "secure_com.txt" #define SECURE_COM_PATH "C:\\Program Files\\cyberhex\\secure\\com\\secure_com.txt" diff --git a/src/client_backend/x64/Debug/client_backend.ilk b/src/client_backend/x64/Debug/client_backend.ilk index 1723806..4e440a7 100644 Binary files a/src/client_backend/x64/Debug/client_backend.ilk and b/src/client_backend/x64/Debug/client_backend.ilk differ diff --git a/src/client_backend/x64/Debug/client_backend.log b/src/client_backend/x64/Debug/client_backend.log index adad5d4..648c73e 100644 --- a/src/client_backend/x64/Debug/client_backend.log +++ b/src/client_backend/x64/Debug/client_backend.log @@ -1,3 +1,2 @@  Quellen werden auf Modulabhängigkeiten überprüft... - update.cpp client_backend.vcxproj -> C:\Users\janis\Documents\Projekte_mit_c\ma\ma\src\client_backend\x64\Debug\client_backend.exe diff --git a/src/client_backend/x64/Debug/client_backend.pdb b/src/client_backend/x64/Debug/client_backend.pdb index ae13911..c214a14 100644 Binary files a/src/client_backend/x64/Debug/client_backend.pdb and b/src/client_backend/x64/Debug/client_backend.pdb differ diff --git a/src/client_backend/x64/Debug/client_backend.tlog/CL.command.1.tlog b/src/client_backend/x64/Debug/client_backend.tlog/CL.command.1.tlog index 9987c18..88284f4 100644 Binary files a/src/client_backend/x64/Debug/client_backend.tlog/CL.command.1.tlog and b/src/client_backend/x64/Debug/client_backend.tlog/CL.command.1.tlog differ diff --git a/src/client_backend/x64/Debug/client_backend.tlog/CL.read.1.tlog b/src/client_backend/x64/Debug/client_backend.tlog/CL.read.1.tlog index c6cef75..e5f9ef8 100644 Binary files a/src/client_backend/x64/Debug/client_backend.tlog/CL.read.1.tlog and b/src/client_backend/x64/Debug/client_backend.tlog/CL.read.1.tlog differ diff --git a/src/client_backend/x64/Debug/client_backend.tlog/CL.write.1.tlog b/src/client_backend/x64/Debug/client_backend.tlog/CL.write.1.tlog index 7b2d8be..66a4072 100644 Binary files a/src/client_backend/x64/Debug/client_backend.tlog/CL.write.1.tlog and b/src/client_backend/x64/Debug/client_backend.tlog/CL.write.1.tlog differ diff --git a/src/client_backend/x64/Debug/client_backend.tlog/client_backend.write.1u.tlog b/src/client_backend/x64/Debug/client_backend.tlog/client_backend.write.1u.tlog index a51977a..3d84f61 100644 Binary files a/src/client_backend/x64/Debug/client_backend.tlog/client_backend.write.1u.tlog and b/src/client_backend/x64/Debug/client_backend.tlog/client_backend.write.1u.tlog differ diff --git a/src/client_backend/x64/Debug/client_backend.tlog/link.read.1.tlog b/src/client_backend/x64/Debug/client_backend.tlog/link.read.1.tlog index 0d97af3..b7aea25 100644 Binary files a/src/client_backend/x64/Debug/client_backend.tlog/link.read.1.tlog and b/src/client_backend/x64/Debug/client_backend.tlog/link.read.1.tlog differ diff --git a/src/client_backend/x64/Debug/vc143.idb b/src/client_backend/x64/Debug/vc143.idb index acddec2..de860c5 100644 Binary files a/src/client_backend/x64/Debug/vc143.idb and b/src/client_backend/x64/Debug/vc143.idb differ diff --git a/src/client_backend/x64/Debug/vc143.pdb b/src/client_backend/x64/Debug/vc143.pdb index 2665dae..b406105 100644 Binary files a/src/client_backend/x64/Debug/vc143.pdb and b/src/client_backend/x64/Debug/vc143.pdb differ diff --git a/src/server/cyberhex-code/system/secure_zone/php/client_settings.php b/src/server/cyberhex-code/system/secure_zone/php/client_settings.php new file mode 100644 index 0000000..79e8344 --- /dev/null +++ b/src/server/cyberhex-code/system/secure_zone/php/client_settings.php @@ -0,0 +1,54 @@ + + + + + + + + Change Password + + + +
+
+
+
+
+

Client settings

+
+
+
+
+ + +
+
+
+
+
+
+
+ + diff --git a/src/server/cyberhex-code/system/secure_zone/php/index.php b/src/server/cyberhex-code/system/secure_zone/php/index.php index a451228..2560f9d 100644 --- a/src/server/cyberhex-code/system/secure_zone/php/index.php +++ b/src/server/cyberhex-code/system/secure_zone/php/index.php @@ -66,13 +66,13 @@ if(isset($_GET["page"])){

Cyberhex settings

Clients