gemini-2.5-flash-preview-04-17| input-price: 0.15 output-price: 3.5 max-context-length: 128_000 (cost: $0.006) Β· Anfrage: 2025-05-12T08:58:35.243370
Generated by rs-summarizer Version unbekannt
Abstract:
This blog post recounts the author's challenging experience reverse engineering Windows Security Center (WSC) to create defendnot, a tool designed to disable Windows Defender by legitimately registering itself as an antivirus. Undertaken during a vacation without ideal technical resources, the project involved analyzing WSC's COM API and discovering its stringent validation mechanisms, including checks for Protected Process Light (PPL), specific Security Identifiers (SIDs), binary signatures, and DLL characteristics flags. The author details the difficulties of debugging in a high-latency remote environment and the iterative process of identifying a suitable system process (Taskmgr.exe) for code injection after overcoming initial impersonation failures and configuration reading errors. The successful implementation highlights the complexities of interacting with protected Windows services and the dedication required to navigate such technical hurdles under adverse conditions.
The Challenging Journey to Disable Windows Defender via WSC Reverse Engineering
no-defender project (which used third-party AV code), the author aimed to build defendnot, a "clean" tool to disable Windows Defender by registering with Windows Security Center (WSC). This effort began during a vacation in Seoul, significantly complicated by the lack of a local x86 machine and reliance on remote access.cmd.exe, but calls failed. Reverse engineering wscsvc.dll revealed that WSC checks if the caller process is Protected Process Light (PPL), which cmd.exe was not.wscsvc.dll remotely due to high latency (~210ms) between the author's ARM Mac (via Anydesk) and a friend's PC running a debugging VM (via Parsec), severely hindering progress.WscServiceUtils::CreateExternalBaseFromCaller) checks for a specific WinDefend SID on the caller's token. An attempt to impersonate WinDefend failed, as this access path was not for standard AV registration.WinDefend SID check fails. Discovered it requires the caller process to be elevated and passes checks in CSecurityVerificationManager::CreateExternalBaseFromPESettings, which verifies the binary's signature and specifically the ForceIntegrity flag in its DllCharacteristics.Taskmgr.exe was found to be suitable. Attempted injection into Taskmgr.exe, but RPC calls still failed. Due to persistent debugging difficulties on the friend's VM, the author switched to a paid Shadow.tech VM ($30), which offered a better environment. Discovered the failure was caused by an invalid AV name being passed due to faulty logic for reading a configuration file (ctx.bin) when injected into Taskmgr. Fixing the path logic allowed successful AV registration via injection into Taskmgr.exe.defendnot to disable Windows Defender by interacting with WSC via injecting into Taskmgr.exe, navigating complex validation rules (PPL, SID, Signature, DllCharacteristics) and overcoming extreme debugging environment limitations. The experience, though successful, was marked by significant technical challenges.