Linux sisteminden bellek görüntüsü nasıl dökülür?


18

Windows'ta bellek görüntülerini dökmeyi biliyorum. (eg-dumpit) Ama Linux'ta bellek görüntülerinin nasıl döküleceğini bilmiyorum.

Linux ve Linux'tan Linux'a ssh bağlantısı vb. İle bellek görüntüleri almak istiyorum.

Linux'a nasıl girebilirim?


5
Çalışan bir işlemden, çekirdek belleğinden veya ham fiziksel bellekten bellek almaya mı çalışıyorsunuz? Hepsi mevcuttur, ancak erişim yöntemleri farklıdır. / Dev / kmem, / dev / mem, / proc / kcore, / proc / $ pid / haritalar ve / proc / $ pid / mem'e bakın.
casey

Bu SU Soru ve Cevaplarına bir göz atın: superuser.com/questions/164960/…
slm

Yanıtlar:


26

Adli Tıp Wiki'sinden: Araçlar: Bellek Görüntüleme

alıntı

Linux

/ Dev / mem

Daha eski Linux sistemlerinde, dd programı fiziksel belleğin içeriğini / dev / mem aygıt dosyasından okumak için kullanılabilir . Bununla birlikte, son Linux sistemlerinde, / dev / mem, bir sistemin tam fiziksel belleğinden ziyade yalnızca sınırlı bir adres aralığına erişim sağlar. Diğer sistemlerde hiç mevcut olmayabilir. Linux çekirdeğinin 2.6 serisi boyunca, eğilim sahte aygıt dosyaları aracılığıyla belleğe doğrudan erişimi azaltmaktı. Örneğin, bu yamaya eşlik eden mesaja bakın: http://lwn.net/Articles/267427/ .

/ Dev / kilitlenme

Red Hat sistemlerinde (ve Fedora veya CentOS gibi ilgili dağıtımları çalıştıran sistemlerde), ham fiziksel bellek erişimi için sahte aygıt / dev / kilitlenme oluşturmak üzere kilit sürücüsü yüklenebilir ("modprobe crash" komutu ile). Bu modül, az çaba harcayan diğer Linux dağıtımları için de derlenebilir (örneğin, http://gleeda.blogspot.com/2009/08/devcrash-driver.html adresine bakın ). Çökme sürücüsü değiştirildiğinde, derlendiğinde ve diğer sistemlere yüklendiğinde, sonuçta elde edilen bellek erişim cihazı tümüyle görüntü için güvenli değildir. RAM destekli olmayan adreslerden kaçınmak için özen gösterilmelidir. Linux'ta, / proc / iomem "Sistem RAM'i" ile işaretlenmiş görüntüye doğru adres aralıklarını gösterir.

İkinci Bakış: Linux Bellek Adli Tıp

Bu ticari bellek adli tıp ürünü, herhangi bir Linux sistemindeki orijinal veya değiştirilmiş sürücüyü kullanarak belleği güvenle boşaltmak için çökme sürücüsünün değiştirilmiş bir sürümü ve bir komut dosyası ile birlikte gelir.

fmem fmem - github repo

fmem, / dev / mem'e benzer ancak sınırlama olmaksızın / dev / fmem aygıtını oluşturan çekirdek modülüdür. Bu cihaz (fiziksel RAM) dd veya başka bir araç kullanılarak kopyalanabilir. 2.6 Linux çekirdeği üzerinde çalışır. GNU GPL altında.

LiME - Linux Bellek Çıkarıcı

Linux Bellek Çıkarıcı (LiME), Android tarafından desteklenenler gibi Linux ve Linux tabanlı cihazlardan kalıcı bellek alınmasına izin veren bir Yüklenebilir Çekirdek Modülüdür (LKM). Araç, cihazın dosya sistemine veya ağ üzerinden bellek boşaltılmasını destekler.

fmemAnaliz amaçlı bellek dökümü yapmanın en kolay yolu gibi görünen bu kullanım örneğini buldum /dev/mem, anladığım gibi 2.6.x çekirdeklerinden sonra artık kullanamazsınız .

Örnek

$ ./run.sh
...
----Memory areas: -----
reg00: base=0x000000000 (    0MB), size= 1024MB, count=1: write-back
reg01: base=0x0c8800000 ( 3208MB), size=    2MB, count=1: write-combining
-----------------------
!!! Don't forget add "count=" to dd !!!


$ ls /dev/f*
/dev/fb0  /dev/fd0  /dev/fmem  /dev/full  /dev/fuse


$ sudo dd if=/dev/fmem of=/tmp/fmem_dump.dd bs=1MB count=10
10+0 records in
10+0 records out
10000000 bytes (10 MB) copied, 0.0331212 s, 302 MB/s

* Kaynak: Tüm fiziksel belleği bir dosyaya nasıl dökebilirim?

LiME Örneği

Uçucu belleği analiz etmek için şu sayfada bir başlık bulunur: Linux Bellek Analizi . Bu video eğitiminde, bir bellek dökümü toplamak ve analiz etmek için LiME ve Volatility kullanımını gösteren ve kullanıcının Bash geçmişini bellek dökümünden ayıran kapsamlı bir örnek var.

Başka?

Bir de şu U&L S ve C: Tam sistem belleğini nasıl boşaltabilirim? ek örnekler ve bilgiler içeren.



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.