diff --git a/src/defender-control/dcontrol.cpp b/src/defender-control/dcontrol.cpp index 92bf6fa..a2d4ccf 100644 --- a/src/defender-control/dcontrol.cpp +++ b/src/defender-control/dcontrol.cpp @@ -138,6 +138,8 @@ namespace dcontrol // https://web.archive.org/web/20110514163940/http://support.microsoft.com/kb/103000 // + // auto ret = manage_security_service(enable, "wscsvc"); + HKEY hkey; if (reg::create_registry(L"SYSTEM\\CurrentControlSet\\Services\\wscsvc", hkey)) { @@ -151,7 +153,7 @@ namespace dcontrol } else { - if (!reg::set_keyval(hkey, L"Start", 3)) // Manual (On Demand) + if (!reg::set_keyval(hkey, L"Start", 4)) // Disabled { printf("failed to write to wscsvc\n"); return false; @@ -159,7 +161,7 @@ namespace dcontrol } } - return manage_security_service(enable, "wscsvc"); + return true; } // Stop or run the windefend service diff --git a/src/defender-control/main.cpp b/src/defender-control/main.cpp index cf569cd..f29881b 100644 --- a/src/defender-control/main.cpp +++ b/src/defender-control/main.cpp @@ -45,7 +45,6 @@ int main(int argc, char** argv) { dcontrol::kill_smartscreen(); dcontrol::manage_windefend(false); - dcontrol::manage_security_center(false); dcontrol::toggle_tamper(false); printf(dcontrol::check_defender() ? @@ -54,7 +53,10 @@ int main(int argc, char** argv) #if DEFENDER_CONFIG == DEFENDER_DISABLE if (dcontrol::disable_defender()) + { + dcontrol::manage_security_center(false); printf("Disabled windows defender!\n"); + } else printf("Failed to disable defender...\n"); #elif DEFENDER_CONFIG == DEFENDER_ENABLE @@ -65,6 +67,8 @@ int main(int argc, char** argv) #elif DEFENDER_CONFIG == DEFENDER_GUI #endif + + } catch (std::exception e) { diff --git a/src/defender-control/settings.hpp b/src/defender-control/settings.hpp index e2cb04b..4db34f1 100644 --- a/src/defender-control/settings.hpp +++ b/src/defender-control/settings.hpp @@ -6,4 +6,4 @@ #define DEFENDER_DISABLE 2 #define DEFENDER_GUI 3 -#define DEFENDER_CONFIG DEFENDER_ENABLE +#define DEFENDER_CONFIG DEFENDER_DISABLE