Eksplorowanie zawartości pamięci RAM


12

Korzystam z bazy danych redis i chciałbym poznać zawartość pamięci RAM używanej przez aplikację.

Wydaje mi się, że wyjaśnienie, dlaczego chcę to zrobić, będzie miało więcej sensu niż pytanie, które zadałbym.

Redis to prosty magazyn wartości klucza, w którym przechowywane są dane binarne. Myślę, że byłoby to dobre miejsce do odkrywania takich rzeczy jak kodowanie i byłoby dla mnie interesujące robić rzeczy takie jak przeglądanie pamięci RAM w poszukiwaniu binarnych zestawów danych, takie jak szukanie prostych wzorców; może odkryjesz pomysł napisania dziecięcego języka zapytań wyszukiwanego w pamięci RAM.

Wpadłem na ten pomysł po przeczytaniu rozdziału w SICP na temat języków zapytań.

Masz jakieś przemyślenia, od czego zacząć? Początkowo chcę zapytać system „Podaj mi przestrzeń adresową, w której działa ta aplikacja”.

Odpowiedzi:


7

Możesz użyć gdb, aby uzyskać dostęp do pamięci procesu.

Powinieneś także rzucić okiem na system plików „/ proc” - zawiera on pseudopliki dla każdego procesu; niektóre z nich mogą zawierać interesujące informacje


7

cat /proc/[pid]/maps zgodnie ze stronami proc.

Wygląda jak chcesz. Jeśli potrzebujesz pid, pobierz go z ps lub innego narzędzia.

Dotyczy to znalezienia używanej przestrzeni adresowej. Jeden z kolegów z defcon w ubiegłym roku zaimplementował createremotreadread na Linuksie. Więc możesz to zrobić ... a potem w ten sposób odczytać dowolną pamięć.

Kredyt dla psusi za wskazanie, że pmap -x [pid]jest łatwiejszy do odczytania.


3
Pamiętaj, że pmapformatuje te informacje, aby były bardziej czytelne dla człowieka.
psusi

6

Użyj debuggera, po to są.

Jeśli chcesz rzucić własne, wszystko idzie ptrace.

Możesz zobaczyć mapę pamięci procesu (spis treści dla pamięci) /proc/$pid/mapsi odczytać całą zawartość pamięci /proc/$pid/mem. Nie możesz zwyczajnie otworzyć tego drugiego pliku normalnie, zobacz Jak czytać z / proc / $ pid / mem pod Linuksem?


1
Byłeś bardzo pomocny w niektórych moich pytaniach. Czy sugerujesz jakieś książki ogólnie związane z systemem operacyjnym Linux lub szczególnie interesujące artykuły internetowe?
MageProspero
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.