2009-09-19 18 views
7

Wiem, że WinAPI ma wbudowane funkcje hakerskie.C++ i ochrona pamięci procesu

ja nawet stosować je w C# z PInvoke ... Aby włamywanie Saper ... Łatwo było ... Więc ...

Jak mogę chronić swoją aplikację z edycji pamięci proces, zaprzeczyć DLL zatłaczania i inne sposoby hakowania. W JAKI SPOSÓB?!

Nadzieja WinAPI ma czegoś takiego void DontTouchMeOrIWillTerminateYou(bool protect) ...

+2

Sformułowanie tego pytania może być lepsze, ale samo pytanie warto zadać. +1 –

+0

powiązane: http://stackoverflow.com/questions/869320/how-would-i-go-about-prevent-dll-injection/869466 –

+0

Sformułowanie jest w porządku !!! +1 za to i za dobre pytanie! – Narek

Odpowiedz

9

Kontrola dostępu w systemie Windows jest włączona dla poszczególnych obiektów. Jeśli chcesz zabezpieczyć obiekt procesu, musisz ustawić listę ACL obiektu procesu, albo po utworzeniu procesu (przez lpProcessAttributes CreateProcess), albo później (poprzez SetKernelObjectSecurity). Jeśli dodasz wpis "odmawiaj wszystkim" do listy ACL, próby otwarcia procesu przez atakującego zakończą się niepowodzeniem.

Oczywiście właściciel procesu (a tym samym dowolny złośliwy kod uruchamiany przez użytkownika) może zmienić listę ACL z powrotem do tego, co było - złośliwy kod może nie być na to przygotowany. Aby skutecznie zapobiegać atakom z przestrzeni użytkownika, należy uruchomić proces jako użytkownik nieinteraktywny (np. Jako system lokalny).

Żadna kwota zabezpieczenia może zapobiec atakom z przestrzeni jądra, więc ktoś, kto może instalować sterowniki można również włamać dowolnego procesu w systemie.

+0

1. Jakikolwiek sposób na wykrycie aplikacji uruchamiającej? 2. Czy mogę wykryć ten atak i wyłączyć atakującego (natychmiastowa awaria komputera lub coś podobnego ...) – user175908

4

Hakowanie? Nie. To się nazywa debugowania (w przeważającej części)

I krótka odpowiedź na to pytanie brzmi „Nie, nie mogę tego zrobić”. Słyszałem, że w Vista i później są pewne procesy OS, których nie można debugować (procesy DRM i podobne), ale nie jestem pewien, czy można sprawić, aby procesy przebiegały w ten sposób.

Prawdziwe pytanie brzmi: dlaczego chcesz to zrobić, i czy nie musisz się martwić ważniejszymi sprawami (np. Wydajność i użyteczność, nie wspominając o poprawności oprogramowania)?

+0

Potrzebuję wydajności i bezpieczeństwa. – user175908

1

O edycji pamięci, trywialnym sposobem na jej wykrycie byłoby zachowanie sumy kontrolnej dla niektórych danych.

+0

Wartości zawsze się zmieniają ... – user175908

0

Nie wdrożyć/uruchomić proces na maszynie sterowanej przez użytkownika końcowego: zamiast uruchomić proces na własnym komputerze i pozwolić użytkownikom końcowym komunikować się z procesu poprzez Internet.

+0

Czy możesz nazywać się LGD ??? – user175908

Powiązane problemy