Jak mogę uzyskać tryb pracy dzwonka 0 dla mojego procesu w systemie Windows 7 (lub Vista)?Uzyskiwanie trybu dzwonka 0 w C++ (Windows)
Odpowiedz
Umożliwienie uruchomienia dowolnego kodu w pierścieniu 0 narusza podstawowe zasady bezpieczeństwa systemu operacyjnego.
Tylko jądro systemu operacyjnego i sterowniki urządzeń działają w pierścieniu 0. Jeśli chcesz napisać kod 0, napisz sterownik urządzenia Windows. This może być pomocne.
Pewne luki w zabezpieczeniach może umożliwić uruchomienie kodu w pierścieniu 0 też, ale to nie jest przenośny, ponieważ dziura może być ustalona w plastrze: P
Jak mogę napisać sterownik urządzenia Windows? –
Zmieniono moją odpowiedź. – Artelius
Dzięki, to jest bardzo dobre i pomocne! –
nie można ustawić trybu jądra z procesu trybu użytkownika. Tak działa bezpieczeństwo.
Technicznie rzecz biorąc, wszystkie procesy mają pewne wątki spędzające część swojego czasu w trybie jądra (ring 0). Za każdym razem, gdy proces trybu użytkownika wprowadza system operacyjny do systemu operacyjnego, następuje przejście, w którym wątek dostaje się do pierścienia 0 przez "bramę". Ilekroć proces musi rozmawiać z urządzeniem, przydzielać więcej pamięci w całym procesie lub odradzać nowe wątki, syscall jest używany do proszenia systemu operacyjnego o dostarczenie tej usługi.
Dlatego jeśli chcesz, aby proces uruchomił jakiś kod w pierścieniu 0, będziesz musiał napisać sterownik, a następnie komunikować się z tym sterownikiem przez kilka systemów. Najczęściej spotykaną w tym przypadku syscall nazywa się ioctl (oznacza sterowanie we/wy).
Kolejną rzeczą, na którą warto zwrócić uwagę na platformie Windows, jest UMDF (User-Mode Driver Framework). Pozwala to na pisanie, debugowanie i testowanie sterownika w trybie użytkownika (uruchamianie w ringu 3), ale nadal jest dostępne dla innych sterowników lub innych procesów w systemie.
- 1. Włączanie trybu prezentacji w systemie Windows?
- 2. Wykrywanie trybu C++ 0x w Intel C++?
- 3. Programowe uzyskiwanie czasu uruchamiania systemu w języku C++ (Windows)
- 4. Uzyskiwanie strefy czasowej w systemie Windows za pomocą C++
- 5. Otrzymaj tytuł dzwonka od RingtonePreference
- 6. Debugowanie trybu mieszanego (C#, C++) application
- 7. Jak zdobyć nazwę dzwonka w systemie Android?
- 8. Jak uzyskać preferencje dzwonka w czasie wykonywania?
- 9. Ignorowanie poziomu błędu! = 0 w Windows Powershell
- 10. Uzyskiwanie rozmiaru terminala wc dla systemu Windows?
- 11. Uzyskiwanie HBITMAP z QPixmap w QT5 (Windows)
- 12. Zakończenie łańcucha - znak c = 0 vs znak c = '\ 0'
- 13. czy istnieje biblioteka systemów plików trybu użytkownika dla systemu Windows?
- 14. Uruchamianie aplikacji, gdy system Windows budzi się z trybu uśpienia
- 15. Uzyskiwanie uchwyt okna w C#
- 16. Czy minus zero (-0) odpowiada zero (0) w C#
- 17. Uzyskiwanie pełnej ścieżki do usługi systemu Windows
- 18. Czy istnieje alternatywa dla trybu uśpienia() w C?
- 19. Uzyskiwanie wszystkich właściwości (w tym ukrytych) 0 (Obiekt główny)
- 20. Uzyskiwanie losowej liczby od 0 do 0,06 w Javie?
- 21. Uzyskiwanie listy dostępnych dzwonków w Androidzie
- 22. Uzyskiwanie dokładnych odgłosów z timera w C#
- 23. C++ Uzyskiwanie RGB z hBitmap
- 24. Uzyskiwanie CMake, aby znaleźć flex na Windows
- 25. Windows Azure: długość pozostałości blob 0
- 26. początkowe okno.orientacja zawsze 0 na Windows Phone
- 27. Odtwarzanie dzwonka z aktywności nagle zatrzymuje się
- 28. Uzyskiwanie ścieżki folderu tymczasowego użytkownika w systemie Windows
- 29. Uzyskiwanie aplikacji ADO VB6 do pracy w systemie Windows 7
- 30. Dostęp do witryny hostowanej w systemie Windows 7 z trybu Windows Virtual PC XP
zadaj sobie pytanie: czy naprawdę powinienem napisać proces 0 kernal? –
Właściwie powiedz nam, dlaczego chcesz uruchomić dzwonek 0, a my powiemy ci, czy to dobre rozwiązanie, czy nie. – Artelius
@Mitch: Wyszukaj KERNAL w Wikipedii. To błąd w pisowni. – Artelius