2016-04-13 43 views
0

Intel Quark SoC kullanıyorum ve üç hata oluştuğunda RAM'den bazı verileri okumaya çalışıyorum. Sıfırlama gerçekleşmeden önce bazı verileri kaydediyorum ve programım yeniden başlatıldıktan sonra okumak istiyorum. Bu mümkün mü yoksa RAM temizlendi mi?Sıfırlamadan sonra x86 "32-bit" net RAM'de yumuşak sıfırlama var mı?

+6

Evet, mümkün. 286'da OS/2'nin olduğu günlerde, korumalı moddan üçlü faylanma ile gerçek moda geçmek için benzer bir teknik kullandılar (8042 klavye denetleyicisi aracılığıyla sıfırdan daha hızlıydı). Hile, sisteme, ram'ı yok etmeyen sıcak bir sıfırlamaya zorlamak istediğinizi söylemeniz gerektiğidir. Bunu, [hafızaya alınmış çevrimiçi] (http://stanislavs.org/helppc/bios_data_area.html) özellikle bellek adresi 0x40: 0x72 veya fiziksel adres 0x472 olan BDA üzerinden yapabilirsiniz. Bu tekniğin hala üçlü bir arıza üzerinde bile modern donanım üzerinde çalıştığına inanıyorum, ama bir süredir denemedim. –

+0

Bunu bir cevap olarak yazmalısınız, @MichaelPetch –

+0

@DavidHoelzer: Bir cevap yazmak isteyen herkes benim misafirim olabilir. Bunun hala işe yaradığını kesin olarak söyleyemem ve bazı VM'lerin bunu onurlandırmadıklarını (hala yapmamayı) biliyorum. Şimdi olabilirler, ama gerçekten bilmiyorum. Bilgimdeki bir boşluk var ve benim yorumum, eski günlerde daha iyi çalışma şansına sahip. Benim hislerim, bu muhtemelen bir XY problemi. –

cevap

-3

İşletim sistemine göre değişir. Linux'ta, boşaldığında belleği temizleyebilen PaX gibi yamalar vardır. Bilgisayar kendi başına hiçbir şeyi temizlemez, bu yüzden değişken bir başlangıç ​​değerine güvenemezsiniz. Hatta bilgisayar kapalı güç ile RAM kurtarmak için mümkün: http://tdistler.com/2008/02/21/data-in-ram-can-be-recovered-after-power-off

Bilgilerinizi saklamak için sabit bir fiziksel adres kullanabilirsiniz, yeniden başlattığınızda kurtarmak mümkündür. Bir OS (Windows gibi) içinde ring0 seviyesi (çekirdek sürücü izinleri) olmadan çalışıyorsanız, verilerinizin yeniden başlatmadan önce nerede saklanacağını bulamazsınız. Bir örnek vermek gerekirse, Playstation 3'ün korsanlarından biri, konsolun yeniden başlatılmasından sonra bellekte yapılan bir değişikliğin sürekliliğine dayanıyordu.

+0

Özgün sorudan, işletim sistemi bulunmamaktadır. Önyükleme sektörünü sorunluyor gibi geliyor. –

+0

Bilgisayar, POST'un bir parçası olarak belleği sınarken, normal olarak yeniden başlatma sırasında belleğin kendisini temizler. –

+0

Ben downvoters biri değilim.Ben bir cevap üretmek için zaman ayırdığınız için teşekkür ederim ama bu soruya mutlaka cevap olduğunu düşünmüyorum. –