Дослідження вмісту ОЗУ


12

Я використовую базу даних Redis і хотів би вивчити вміст оперативної пам’яті, яку використовує додаток.

Я відчуваю, що пояснення того, чому я хочу це зробити, матиме більше сенсу, ніж питання, яке я б задав.

Redis - це простий сховище ключових значень, яке зберігає двійкові дані. Я думаю, що це було б хорошим місцем для вивчення таких речей, як кодування, і мені було б цікаво робити такі речі, як прошивання оперативної пам’яті, шукаючи бінарні набори даних, роблячи такі речі, як пошук простих шаблонів; можливо, вивчіть ідею написання мови запиту дитини, яка шукала в оперативній пам'яті.

Я здобув цю ідею, прочитавши розділ SICP про мови запитів.

Будь-які думки, з чого почати? Спочатку я хочу запитати систему "Дайте мені адресний простір, у якому працює ця програма, будь ласка".

Відповіді:


7

Ви можете використовувати gdb для доступу до пам'яті процесу.

Також слід ознайомитися з файловою системою "/ proc" - вона містить псевдофайли для кожного процесу; деякі з них можуть містити цікаву інформацію


7

cat /proc/[pid]/maps відповідно до провідників.

Схоже, що ви хочете. Якщо вам потрібен під, візьміть його з ps чи будь-якого іншого інструменту.

Це адреси, які знаходять використовуваний адресний простір. Один із стипендіатів у Defcon минулого року впровадив createremotethread на Linux. Отже, ви могли це зробити ... тоді читайте довільну пам'ять таким чином.

Кредит psusi для вказуючи на те , що pmap -x [pid]легше читати.


3
Зауважте, що pmapформатування цієї інформації формується так, щоб вона була легше читаною.
psusi

6

Використовуйте налагоджувач, саме для цього вони і потрібні.

Якщо ви хочете прокатати своє, це все проходить ptrace.

Ви можете побачити карту пам'яті процесу (таблицю вмісту пам’яті) у /proc/$pid/mapsта прочитати весь вміст пам'яті з /proc/$pid/mem. Ви не можете просто відкрити цей останній файл, див. Як я читаю з / proc / $ pid / mem в Linux?


1
Вам були неймовірно корисні деякі мої запитання. Чи пропонуєте ви читати будь-які книги, що стосуються ОС Linux або особливо цікавих веб-статей?
MageProspero
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.