Wyłączamy ochronę procesu audiodg pod Windowsem (x64, x86)

W tym poście krótko i na temat, jak wyłączyć ochronę audiodg i innych procesów pod Windows 7.

W systemie Windows Vista wprowadzono flagę bitową ProtectedProcess znajdującą się we Flagach2 struktury EPROCESS w jądrze systemu. System operacyjny ustawia flagę ProtectedProcess dla procesów DRM (Digital Rights Management) by chronić je przed ingerowaniem w ich kod.

Jako iż bit przyjmuje wartość 1 lub 0, to by odbezpieczyć proces należy ustawić tam wartość 0.

Nasza funkcja wygląda zatem tak:

void SetProcessProtectedFlag(PEPROCESS pProcess, BOOLEAN bProtect)
{
   if (bProtect)
     *(PULONG)((PCHAR)pProcess + 0x43C) |= 1 << 0xb;
   else
     *(PULONG)((PCHAR)pProcess + 0x43C) &= ~(1 << 0xb);
}



Pozostało tylko wyjaśnić czym jest 0x43C oraz 0xB. Otóż 0x43C to offset do Flags2 w strukturze EPROCES, 0xB - inaczej 11 to pozycja bitu. By poznać wartości tych offsetów w swoim systemie, musimy zajrzeć do funkcji PsIsProtectedProcess, która musi przecież odczytać dane z tego właśnie offsetu. Funkcja PsIsProtectedProcess wygląda tak:



Mamy tam wszystko, co potrzeba. Viola!.

Na koniec w sterowniku piszemy:
SetProcessProtectedFlag( ... tutaj PEPROCESS procesu DRM , FALSE);

i zabezpieczenie leży...

Pozdrawiam,
Kill1212

Komentarze

Prześlij komentarz