Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten temat zawiera krótkie omówienie sposobu wykonywania dostępu do pamięci przy użyciu interfejsu API WdbgExts. Aby zapoznać się z omówieniem dostępu do pamięci w aparacie debugera, zobacz Pamięć w sekcji Omówienie aparatu debugera w tej dokumentacji.
Pamięć wirtualna
Pamięć wirtualna obiektu docelowego może być odczytywana przy użyciu funkcji ReadMemory i zapisywana przy użyciu funkcji WriteMemory . Wskaźniki w pamięci obiektu docelowego można odczytywać i zapisywać przy użyciu funkcji ReadPointer, ReadPtr i WritePointer .
Aby wyszukać w pamięci wirtualnej wzorzec bajtów, użyj funkcji SearchMemory .
Funkcja TranslateVirtualToPhysical może służyć do konwertowania adresu pamięci wirtualnej na adres pamięci fizycznej.
Funkcja Disasm może służyć do dezasemblowania pojedynczej instrukcji asemblera na docelowym systemie.
Aby sprawdzić niskie 4 GB pamięci pod kątem uszkodzenia podczas korzystania z rozszerzenia adresu fizycznego (PAE), użyj operacji IoctlIG_LOWMEM_CHECK.
Pamięć fizyczna
Dostęp do pamięci fizycznej można uzyskać bezpośrednio tylko w debugowaniu w trybie jądra.
Pamięć fizyczna w obiekcie docelowym może być odczytywana przy użyciu funkcji ReadPhysical i ReadPhysicalWithFlags oraz zapisywanych przy użyciu funkcji WritePhysical i WritePhysicalWithFlags.
Aby przeszukać pamięć fizyczną w celu znalezienia wskaźników do lokalizacji w określonym zakresie, użyj operacji IoctlIG_POINTER_SEARCH_PHYSICAL.
Inne miejsca do magazynowania danych
W debugowaniu w trybie jądra można odczytywać i zapisywać dane w różnych miejscach danych oprócz pamięci głównej. Dostęp do następujących przestrzeni danych można uzyskać:
pamięćControl-Space
Funkcje ReadControlSpace, ReadControlSpace64, ReadTypedControlSpace32 i ReadTypedControlSpace64 będą odczytywać dane z przestrzeni kontrolnej. Funkcja WriteControlSpace zapisze dane w przestrzeni sterującej.
Pamięć we/wy
Funkcje ReadIoSpace, ReadIoSpace64, ReadIoSpace64, ReadIoSpaceEx64 odczytują dane z pamięci we/wy systemu i pamięci we/wy magistrali. Funkcje WriteIoSpace,WriteIoSpace64, WriteIoSpaceEx i WriteIoSpaceEx64 będą zapisywać dane w pamięci we/wy systemu i pamięci we/wy magistrali.
Rejestr specyficzny dla modelu (MSR)
Funkcje ReadMsr i WriteMsr odczytują i zapisują msrs.
System Bus
Operacje IoctlIG_GET_BUS_DATA i IG_SET_BUS_DATA odczytują i zapisują dane magistrali systemowej.
Dodatkowe informacje
Aby uzyskać bardziej zaawansowany interfejs API dostępu do pamięci, zobacz Dostęp do pamięci w sekcji Korzystanie z interfejsu API aparatu debugera w tej dokumentacji.