RAM belleğinin içeriği nasıl görülür? [kapalı]


14

RAM belleğinin içeriğini görmenin bir yolu var mı? İlk bayttan son bayta kadar. İşletim sisteminin ve üzerinde çalışan tüm işlemlerin RAM'de nerede olduğunu görmek istiyorum. Mümkün mü?


1
Korunan bir bellek ortamında bir kullanıcı işlemi olarak, kullanıcının sanal bellek alanının yalnızca kopyasına erişebilirsiniz. Çekirdek bellek alanı, diğer kullanıcıların sanal bellek alanı ve kullanılmayan fiziksel bellek meraklı gözlerinizden korunur. Diğer yandan, sanal bellek eşlemelerini bilmediğiniz sürece, fiziksel SDRAM'ın rasgele bir zaman anlık görüntüsü pek bir anlam ifade etmeyecektir.
talaş

Rasgele erişim belleği belleği? Peki sayfa ayırma tablosu?
ta.speot.se


Muhtemelen belleğin nasıl tahsis edildiğini gösteren bir araçla çok daha mutlu olacaksınız, vs aslında 1 ve 0'lara bakmak.
Daniel R Hicks

1
sadece meraktan
osta

Yanıtlar:


8

Windows için SoftICE gibi "ham" bellek erişimine izin veren bir çekirdek hata ayıklayıcı kullanabilirsiniz . GDB'yi Linux çekirdeği için bir hata ayıklayıcı görevi görecek şekilde de yapılandırabilirsiniz . Sanal makine bir seçenekse, bazı sanallaştırma yazılımı, makinenin durumunun (RAM dahil) diske kaydedilmesini destekler ve bu daha sonra analiz edilebilir . Bununla birlikte, çoğu "modern" işletim sisteminin adres alanı düzeni rastgele (ASLR) kullandığına dikkat edilmelidir . Sistemin gerçek fiziksel bellek haritası, çeşitli güvenlik sorunlarını ve istismarlarını (yani yığın / yığın arabellek taşmaları) azaltmaya yardımcı olmak için bilerek parçalanmıştır .

Bununla birlikte, modern bir işletim sisteminde çalışan belirli bir program için, uygun hata ayıklama sembollerine ve hata ayıklayıcıya sahip olduğunuz sürece, belirli bir işlem / iş parçacığı için mantıksal bir bellek haritası elde edebilirsiniz. Genel bir görünüm istiyorsanız, yazılım / donanım sanal bellek kullanıyorsa , durum büyük ölçüde daha karmaşık hale gelir. Yine de, kelimenin tam anlamıyla sadece RAM'de olanı istiyorsanız , ilk paragrafa bakın.


9

Windows'da, fiziksel belleğin içeriğine Nesne Yöneticisi'ndeki\Device\PhysicalMemory nesne üzerinden erişilebilir . Bu, sisteme çekirdek düzeyinde erişim gerektirir, yani bu nesneye erişmek için büyük olasılıkla çekirdek modu sürücüsü olan bir program yüklemeniz gerekir.

Linux'ta, fiziksel bellek içeriği doğrudan okuyarak ikili veri olarak erişilebilir /dev/memolarak root. Bkz. / Dev / mem nedir? ve mem(4)daha fazla ayrıntı için kılavuz sayfasına bakınız.

Yine de, işletim sisteminin ve işlemlerin fiziksel bellekte nerede bulunduğunu belirlemeniz gerektiğinden emin değilim ...


3
Windows'ta aslında RAMMap ve PhysMem yardımcı programlarının yaptığı gibi açabilirsiniz \Device\PhysicalMemory(eşdeğer /dev/kmem) .
user1686

1
Artık değil. Server 2003 ve sonraki tüm sürümlerde, \DevicePhysicalMemorynesne kullanıcı modundan açılamaz. RAMmap ve diğer sysinternals araçlarının çoğu, çalışmalarının bir kısmını yapmak için bir çekirdek modu sürücüsü içerir.
Jamie Hanrahan
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.