Menjelajahi konten RAM

12

Saya menggunakan basis data redis dan ingin menjelajahi isi RAM yang digunakan aplikasi.

Saya merasakan penjelasan mengapa saya ingin melakukan ini akan lebih masuk akal daripada pertanyaan yang akan saya tanyakan.

Redis adalah toko nilai kunci sederhana yang menyimpan data biner. Saya pikir itu akan menjadi tempat yang baik untuk mengeksplorasi hal-hal seperti pengkodean dan akan menarik bagi saya untuk melakukan hal-hal seperti membaca sekilas RAM mencari set data biner, melakukan hal-hal seperti mencari pola sederhana; mungkin jelajahi ide menulis bahasa permintaan bayi yang dicari dalam RAM.

Saya mendapatkan ide ini setelah membaca bab dalam SICP tentang bahasa query.

Ada pemikiran tentang di mana untuk memulai? Awalnya, saya ingin bertanya "Beri saya ruang alamat untuk aplikasi ini, tolong" ke sistem.

MageProspero
sumber

Jawaban:

7

Anda dapat menggunakan gdb untuk mengakses memori suatu proses.

Juga, Anda harus melihat pada sistem file "/ proc" - ini berisi file pseudo untuk setiap proses; beberapa di antaranya mungkin berisi informasi menarik

jakob
sumber
7

cat /proc/[pid]/maps menurut manual proc.

Sepertinya apa yang Anda inginkan. Jika Anda membutuhkan pid, ambil itu dari ps atau alat lain apa pun.

Alamat itu menemukan ruang alamat yang digunakan. Salah satu rekan di defcon tahun lalu menerapkan createremotethread di linux. Jadi Anda bisa melakukan itu ... lalu baca memori yang berubah-ubah dengan cara itu.

Kredit untuk psusi untuk menunjukkan bahwa pmap -x [pid]lebih mudah dibaca.

RobotHumans
sumber
3
Perhatikan bahwa pmapmemformat informasi ini sehingga lebih dapat dibaca manusia.
psusi
6

Gunakan debugger, itulah gunanya.

Jika Anda ingin menggulung sendiri, semuanya akan selesai ptrace.

Anda dapat melihat peta memori proses (daftar isi untuk memori) /proc/$pid/mapsdan membaca seluruh isi memori dari /proc/$pid/mem. Anda tidak bisa hanya membuka file terakhir itu secara normal, lihat Bagaimana saya membaca dari / proc / $ pid / mem di Linux?

Gilles 'SANGAT berhenti menjadi jahat'
sumber
1
Anda sangat membantu dengan beberapa pertanyaan saya. Apakah Anda menyarankan buku apa pun untuk dibaca yang umumnya terkait dengan OS Linux atau artikel web yang sangat menarik?
MageProspero