Czy jest jakiś sposób, aby zobaczyć zawartość pamięci RAM? Od pierwszego bajtu do ostatniego. Chciałbym zobaczyć, gdzie system operacyjny i wszystkie uruchomione na nim procesy znajdują się w pamięci RAM. czy to możliwe?
Czy jest jakiś sposób, aby zobaczyć zawartość pamięci RAM? Od pierwszego bajtu do ostatniego. Chciałbym zobaczyć, gdzie system operacyjny i wszystkie uruchomione na nim procesy znajdują się w pamięci RAM. czy to możliwe?
Odpowiedzi:
Możesz użyć debugera jądra, który pozwoliłby na „surowy” dostęp do pamięci, taki jak SoftICE dla Windows . Możesz także skonfigurować GDB, aby działał jako debugger dla jądra Linux . Jeśli maszyna wirtualna jest opcją, niektóre oprogramowanie do wirtualizacji obsługuje zapisywanie stanu maszyny (w tym pamięci RAM) na dysku, który można następnie poddać dalszej analizie . Należy jednak zauważyć, że większość „nowoczesnych” systemów operacyjnych korzysta z randomizacji układu przestrzeni adresowej (ASLR). Prawdziwa fizyczna mapa pamięci systemu jest celowo podzielona na fragmenty, aby złagodzić różne problemy związane z bezpieczeństwem i exploity (np. Przepełnienie bufora stosu / sterty ).
Jednak dla danego programu działającego w nowoczesnym systemie operacyjnym można uzyskać logiczną mapę pamięci dla danego procesu / wątku - o ile masz odpowiednie symbole debugowania i debuggera. Jeśli potrzebujesz ogólnego widoku, jeśli oprogramowanie / sprzęt wykorzystuje pamięć wirtualną , sytuacja staje się znacznie bardziej złożona. Ponownie jednak, jeśli dosłownie chcesz tego, co jest właśnie w pamięci RAM, zobacz pierwszy akapit.
W Windows dostęp do zawartości pamięci fizycznej można uzyskać poprzez \Device\PhysicalMemory
obiekt w Menedżerze obiektów . Wymaga to dostępu do systemu na poziomie jądra, co oznacza, że aby uzyskać dostęp do tego obiektu, należy zainstalować program, najprawdopodobniej sterownik trybu jądra.
W systemie Linux zawartość pamięci fizycznej można uzyskać bezpośrednio jako dane binarne, czytając /dev/mem
jako root
. Zobacz Co to jest / dev / mem? i mem(4)
stronę podręcznika, aby uzyskać więcej informacji.
Nie jestem pewien, dlaczego musisz ustalić lokalizację systemu operacyjnego i procesów w pamięci fizycznej, ale ...
\DevicePhysicalMemory
obiektu nie można otworzyć z trybu użytkownika. RAMmap i większość innych narzędzi sysinternals zawiera sterownik trybu jądra, który wykonuje tę część swojej pracy.