İşlem yalıtımı nasıl sağlanır ve Windows'un kırılmaması nasıl sağlanır? NET izole NRE kilit kilit dosyası Yalıtılmış dosya nasıl geri alınır

4

Bu nedenle, uygulamamın birden çok örneğinin aynı anda erişememesi için C# istemci uygulamamda yalıtılmış bir depolama dosyasını kilitlemeye çalışıyorum. Aşağıdaki sözdizimini kullanıyorum:

LockStream = new İzoleStorageFileStream("my.lck", FileMode.OpenOrCreate, isoStore); lockStream.Lock(0, 0);

Bu kod, uygulamamın çerçevenin FileStream.Lock yönteminin içinde bir NullReferenceException oluşturmasına neden oluyor. Uzunluk için sıfır olmayan bir değer kullanmayı denedim. Bir dosyaya bir bayt yazmaya çalıştım ve sonra yalnızca o baytı engelledim. Ne yaparsam yapayım aynı NullReferenceException beni rahatsız ediyor. Bunun izole depolamayla mümkün olup olmadığını bilen var mı?

Ayrıca bu tekniği bir Silverlight uygulamasında öğreniyorum, Silverlight dosya kilitlemeyi destekliyor mu? MSDN belgeleri durumun böyle olmadığını gösteriyor gibi görünüyor, ancak C# MVP'den gelen bu yazının öyle olduğunu gördüm.

Güncelleme: Microsoft, Connect'e gönderdiğim hatayı düzeltti ancak çerçevenin 4. sürümünde yayınlanmadı. Umarım bir sonraki SP'de veya tam sürümde mevcut olmalıdır.

0

Özel "m_fs"nin İzoleStorageFileStream alanındaki kilit yöntemini çağırmak için yansımayı kullanarak bu hatayı şu şekilde çözebildim: lockStream = new İzoleStorageFileStream("q.lck", FileMode.OpenOrCreate, isoStore); FileStream m_fs = typeof(IsolatedStorageFileStream).InvokeMember(("m_fs"), BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance, null, lockStream, null) FileStream olarak; m_fs.Lock(0, long.MaxValue); - bsiegel 05 Mart 10 2010-03-05 15:57:55

  • 2 cevap
  • Sıralama:

    Aktivite

4

Bu, Çerçevedeki bir hataya benziyor. Belki de yanılıyorum çünkü bu gerçek olamayacak kadar büyük.

Reflektörlü .NET 3.5 SP1 kaynak koduna baktığınızda, IsolStorageFileStream'in boyutsuz temel oluşturucuyu (FileStream()) çağırdığını, bunun da başlatılmamış bir temel sınıfla sonuçlandığını görürsünüz. İzoleStorageFileStream, FileStream'in bir örneğini oluşturur ve bunu geçersiz kıldığı tüm yöntemlerde (Yazma, Okuma, Temizleme, Arama vb.) kullanır. Temel sınıfını doğrudan kullanmaması garip.

Ancak kilitleme ve kilit açma geçersiz kılınmaz ve özel bir alana (_handle) ihtiyaç duyarlar; bu alan hala boştur (kullanılan kurucu parametresiz olduğundan). Bunun boş olmadığını varsayıyorlar ve oynuyorlar ve bir NRE'yi tetikliyorlar.

Özetlemek gerekirse kilitleme ve kilit açma desteklenmiyor (veya çalışmıyor).

Eset NOD32 antivirüs tarafından silinen dosyalarımı nasıl kurtarırım” internette sıklıkla görülebilecek bir istektir. Yine de Muhtemel çözümler Bu konuyla ilgili çok fazla soru sorulmuyor ve bu da çoğu zaman kayıp belgeleri iade etmenin hiçbir yolu olmadığı hissini yaratıyor.

Her şeyden önce, bir antivirüsün, çalışmayı şu veya bu şekilde etkilemeyen bir dosyayı asla engellemeyeceğini veya silmeyeceğini anlamalısınız. işletim sistemi veya diğer yüklü programlar.

Buna göre, belgeniz silindiyse, bunun kötü amaçlı olduğundan güvenle şüphelenebilirsiniz. Bununla birlikte, programı basitçe değiştiren, süreçlerine müdahale eden ancak tehdit oluşturmayan dosyalar da vardır.

Antivirüs tarafından silinen bir dosyayı kurtarmanın yolları var mı? Kesinlikle var! Bu yazımızda Eset NOD32 uygulamasının ne olduğuna, onunla çalışmanın özelliklerine ve etkili yöntem Antivirüs tarafından silinen dosyaların kurtarılması.

Eset NOD32 nedir?

Kimse için modern dünya Antivirüs uygulamalarının ne kadar önemli ve en önemlisi konuyla ne kadar alakalı olduğu bir sır değil. Yalnızca kötü amaçlı dosyaların büyük çoğunluğunu ortadan kaldırmanıza izin vermekle kalmaz, aynı zamanda sisteme şu veya bu şekilde zarar veren olası bir tehdidin daha ortaya çıkmadan önlenmesine de yardımcı olur.

Antivirüs Eset NOD32Çoğunlukla NOD32 olarak adlandırılan tam bir antivirüs paketidir yazılım 1987 yılında Slovak şirketi Eset tarafından yaratıldı.

Programın iki sürümü vardır:

  • Ev versiyonu.
  • İşletme sürümü.

İşletme sürümü ile ev sürümü arasındaki temel fark, yetenektir. uzaktan kumanda ve platformlar arası korumanın varlığı. Programı herhangi bir ihtiyaca uyacak şekilde kolayca ve esnek bir şekilde özelleştirmenize olanak tanıyan özellik daha az hoş değildir.

Eset NOD32. Antivirüs nasıl etkinleştirilir veya devre dışı bırakılır?

Genellikle belirli bir programı yüklerken antivirüs yazılımını devre dışı bırakmamız gerekir, çünkü aksi takdirde uygulamanın başlayamayacağı önemli bir dosyayı "yir".

Antivirüsün etkinleştirilmesi/devre dışı bırakılması sorusuna yanıt aramanın bir diğer yaygın nedeni, "savunucunun" kaynak tüketimini azaltma hedefidir. Bunun nedeni, antivirüslerin çalışmasının özelliğinden kaynaklanmaktadır - genellikle pasif durumdayken bile oldukça büyük miktarda bellek kaplarlar ve diğer "ağır" programları çalıştırırken bazen korumayı duraklatmak gerekir.

Peki NOD32'yi etkinleştirme veya devre dışı bırakma görevini nasıl tamamlayacaksınız? Bu konuya aşağıdaki talimatlarda bakalım.

1. Uygulamayı başlat Eset NOD32 Ve git Ayarlar.

2. Açılan pencerede kurulu tüm NOD32 hizmet paketlerini bulacaksınız. Her birini ziyaret edin ve ihtiyaçlarınıza göre seçenekleri etkinleştirin/devre dışı bırakın.

Eset NOD32. Antivirüs karantinası ve istisnalar.

Karantina- üreticisine ve sürümüne (ev veya iş) bakılmaksızın herhangi bir antivirüs programında mutlaka bulunması gereken bir depo. Antivirüse göre işletim sisteminize bir şekilde zarar verebilecek tüm şüpheli dosyaları saklar.

Truva atı olsa bile tek bir belgenin anında silinmediğini belirtmekte fayda var. Her şeyden önce, oluşturduğu tehdit etkisiz hale getirilir: dosya karantinaya alınır ve antivirüs sabırla kullanıcının sorumlu kararını bekler. daha fazla eylemler— virüslü belgeyi silebilir veya onu bir istisna olarak işaretleyebilirsiniz; bunu biraz sonra tartışacağız.

Karantina nasıl bulunur? Eset antivirüs NOD32 mi? Çok basit! Aşağıdaki talimatlara bakalım.

1. Koşmak Eset NOD32 ve bölüme gidin Hizmet.

2. Sekmeyi aç Ek fonlar. Sağ alt köşede bulunur.

3. önümüze çıktı tam liste Antivirüs programının bir parçası olarak Eset tarafından sağlanan ek hizmetler. Açık Karantina.

4. Açılan menüde NOD32, izole edilmiş tüm dosyaları yönetmeniz için size tam haklar verir.

Bulduk karantina ve onu buldum ana işlevler:

  • Dosyayı ayır. Bu seçenek, kötü amaçlı bir dosyayı manuel olarak bulmanızı ve antivirüsün kendi başına başa çıkamaması durumunda onu engellemenizi sağlar.
  • Eski haline getirmek. Yanlışlıkla kilitlenen bir dosyayı kurtarmanıza olanak tanıyan bir seçenek.

Yalıtılmış bir belgeyi basitçe geri yüklemek her zaman daha fazla engellemeyi önlemez. Bu değiştirilebilir mi? Hadi düşünelim.

1. Pencereden çıkmadan Karantina, kilidini açmak istediğiniz dosyaya sağ tıklayın.

2. Bir seçenek seçin Kurtarma ve taramanın dışında bırakma.

3. Eylemlerinize güveniyorsanız tıklayın Evet. Bir dosyanın tehlikeli mi yoksa zararsız mı olduğunu bilmiyorsanız, tıklamanızı öneririz. HAYIR.

Eset NOD32 dosyaları sildi. Nasıl kurtarılır?

Antivirüs- inanılmaz derecede büyük bir sayıyı engelleyen tek engel bu olası tehditler, internet üzerinden bilgisayarlarımıza sızabilme yeteneğine sahiptir. Benzer bir çalışma mekanizmasına sahip tüm dosyaları kesinlikle engellemesi oldukça doğaldır; şu veya bu şekilde sistem veya yazılım süreçlerine müdahale eden bu tür belgeler.

Ne yazık ki antivirüsler dosyaları ayırt edemiyor çünkü herhangi bir kötü amaçlı dosya kendisini kolayca bir Windows işlemi olarak gizleyebilir ve bilgisayarı içeriden yavaş yavaş yok edebilir.

Sonuç olarak program, bilgisayarı korumak için mümkün olan her yolu dener ve kendisine göre belirli bir tehdit oluşturan her şeyi engeller. Çoğu durumda, engellenen belgeler yalnızca bir istisna yapılarak kolayca geri yüklenebilir, ancak bazen bu durum ortaya çıkabilir. tamamen kaldırma Antivirüs dosyayı kritik derecede tehlikeli buluyorsa.

Starus Bölüm Kurtarma dosya sistemiyle yapılan günlük çalışmalarda iyi bir yardımcı olacaktır. Uygulama, uzun vadede sizi kişisel belgelerinizle ilgili endişelerinizden kurtaracak ve nasıl kaybettiğinize bakılmaksızın herhangi bir formattaki dosyayı kurtarmanıza yardımcı olacaktır.

Starus Partition Recovery aracına kaydolmadan önce “kaybolanları kurtarma” şansını değerlendirebilirsiniz. Antivirüs tarafından silinen kişisel belgeleri kurtarmak için programı indirin ve tamamen ücretsiz deneyin. İÇİNDE Deneme sürümü Kurtarılan dosyaların önizlemesi de dahil olmak üzere tüm işlevler mevcuttur. Önizleme penceresi, belirli bir dosyanın hasar görmediğinden veya üzerine yazılmadığından ve tamamen geri yüklenebildiğinden emin olmanızı sağlar.

Makalenin sizin için yararlı olduğunu ve sorularınızı çözmenize yardımcı olduğunu umuyoruz.

İşletim sisteminin kendisini bozmadan Windows'taki şüpheli işlemler nasıl yalıtılır? Güvenilir ve uyumlu nasıl oluşturulur? Windows yazılımı Donanım sanallaştırması ve çekirdek işlevi kancaları olmayan, ancak belgelenmiş yerleşik işletim sistemi güvenlik mekanizmalarını kullanan bir sanal alan mı? Yazılım sanal alan geliştiricilerinin (ve nihayetinde tüketicilerinin) karşılaştığı en yaygın sorunlardan bahsedeceğiz. Elbette çözümümüzü sunacağız :).

Giriş veya sanal alan olmadan yaşamak ne kadar kötü

Profesyonellerin hakkında konuşmaktan hoşlanmadıkları birkaç aksiyom vardır. Aksiyomlar hakkında ne söyleyebiliriz? Onlar öyledir ve öyledir. Görünüşe göre herkes iki artı ikinin iki olduğunu anlıyor. Örneğin imza tabanlı antivirüslerin koruma sağlamaması bunlardan bir tanesi. Yani korumuyorlar ve hepsi bu. Bu konuda pek çok şey söylendi ve defalarca anlatıldı. Örneklerle, güzel sunumlarla, danslarla ve performanslarla. Fidye Yazılımı gibi her türden kötü şeyin salgınları, imza ve buluşsal teknolojilerin etkisizliğinin kanıtlarından biri olarak hizmet ediyor. Her türlü kriptolayıcı ve gizleme aracı, uzun zamandır bilinen kötü amaçlı yazılımları tespit edilmekten koruma sorununu başarıyla çözer ve bir süre bu kötü amaçlı yazılım antivirüsler tarafından algılanmaz. Bu süre bazılarının kendini kötü hissetmesi, bazılarının ise iyi hissetmesi için oldukça yeterli.

Yani, 0day'dan bahsetmiyoruz bile: eski, iyi bilinen sakallı kötü amaçlı yazılımı alabilir, değiştirebilir, davranışsal imzaları kaldırabilir (tembel bir kişi için birkaç gün çalışın) ve onu tekrar ve sonra tekrar kullanabilirsiniz. yine, yoruluncaya ya da hapsedilinceye kadar. Aynı zamanda bu “kötü şey” yaşanmasın diye ilacı satan kişilerin bu olayla hiçbir ilgisi yok gibi görünüyor; Ciddi yüzlerle bir tür haber bülteni yayınlıyorlar ve internette hijyenden bahsediyorlar, aynı hijyene tamamen uyulursa antivirüslere, özellikle de ücretli olanlara pratikte ihtiyaç duyulmadığını söylemeyi unutuyorlar.

Korumalı alanlar ve bunların uygulanmasının özellikleri

Yani antivirüsler kaydetmez, ancak bazen mevcut olanı bozar. Son derece akıllı biri, "Korumaya diğer taraftan yaklaşalım ve süreçleri birbirinden izole edelim" dedi. Şüpheli işlemlerin korumalı alan adı verilen izole bir ortamda yürütülmesi gerçekten harika. Sandbox'ta çalışan kötü amaçlı yazılımlar, sınırlarını terk edip tüm sisteme zarar veremez. Bu bir çözüm olabilir ancak mevcut sanal alan uygulamalarında nüanslar vardır...
Daha sonra, bir süreç izolasyon aracı veya HIPS (Ana Bilgisayar Tabanlı İzinsiz Giriş Önleme Sistemi - iş istasyonları için izinsiz giriş önleme sistemi) seçmeniz gerektiğinde bilgisi kesinlikle işinize yarayacak olan sanal alan oluşturmanın tüm inceliklerini tartışacağız.

1 Numaralı Nuance veya herkes için tek bir sanal alan

Çoğu sanal alan aslında süreç izolasyonu sağlamaz. Gerçekte çoğu uygulamada korunan sistem iki kısma ayrılır: güvenilen ve güvenilmeyen. Güvenilen kısımda yürütülür normal süreçler ve güvenilmeyen durumda - yalıtılmış. Yani, tüm yalıtılmış işlemler aynı sanal alanda çalışır, birbirlerine ve birbirlerinin kaynaklarına erişime sahiptir, aynı kayıt defterini ve aynı dosya sistemini kullanır.

Böylece kötü amaçlı yazılım, sanal alanda bir yer edinebilir ve izole uygulamalardan biriyle (veya birkaç izole uygulamayla veya bunlardan herhangi biriyle) ara sıra başlayabilir. Aynı zamanda, sanal alanlar genellikle yalıtılmış süreçlerin eylemlerini günlüğe kaydetmez. HIPS'in şikayet ettiği eylemler, izolasyona göre ayarlanmış, en ufak bir tepki olmadan sandbox'larda gerçekleşiyor ki bu da pek iyi değil.

Yalıtımın bu şekilde tasarlanıp tasarlanmadığı nasıl kontrol edilir? Çok basit! Korumalı alanda iki uygulamayı çalıştırın. Örneğin, notepad.exe ve wordpad.exe. Notepad.exe'yi kullanarak oluşturun Metin dosyası 1.txt.

Elbette bu dosya masaüstüne değil, “sanal” bir dizine kaydedilecektir. Wordpad ile açmayı deneyin (Şek. 3).



Böylece, korumalı alana sahip bir uygulama tarafından oluşturulan bir dosya, korumalı alana sahip başka bir uygulama tarafından açılabilir. Kabul edelim, izolasyon artık pek iyi değil. Ama belki en azından kayda karşı bir tür koruma olabilir mi? İçeriği değiştiriyoruz (Şekil 4).


Ve kurtarıyoruz. Şimdi 1.txt dosyasını notepad.exe kullanarak açmayı deneyelim. Tabii ki, notepad.exe'yi sanal alanda çalıştıralım (Şek. 5).


Ve biz de bundan bahsediyorduk. İki izole uygulama birbirinden izole değildir. Böyle bir izolasyonun nedeninin tam olarak açık olmadığı ortaya çıktı. Fidye yazılımı bile bilgisayardaki yerel klasörlere erişmeden, sanallaştırılmış bir dizindeki ve eğer şanslıysanız ağ kaynaklarındaki her şeyi şifreleyebilir, çünkü sanal alan ayarları tüm yalıtılmış uygulamalar için aynıdır.

Nüans No. 2 veya yetersiz yalıtım

Evet, izole edilmiş işlemler sistemin güvenilen kısmına ulaşamaz... ancak çoğu uygulamada salt yazılır. Yani, neredeyse hiçbir kısıtlama olmadan her yerden okuyabilirler ve çoğu zaman ağa erişebilirler. Görünüşe göre bu daha fazla uyumluluk için yapılmıştı, ancak buna izolasyon denemez.
Seçtiğiniz bir sanal alanla basit bir deneme yapın. Sabit sürücünüzde bir dizin oluşturun. Şunu söyleyelim: E:\Fotoğraflar. Örneğin içine bir fotoğraf yerleştirin (Şek. 6).


Öğle yemeği İnternet Explorer sanal alana koyun ve bu görüntüyü örneğin rghost'a göndermeyi deneyin.



Peki nasıl? Olmuş? Eğer deney başarılı olduysa, bu pek de iyi değil. Daha da kötüsü, sanal alanın yalıtılmış uygulamaların erişemeyeceği dizinleri belirtme yeteneği yoksa. Ve izole uygulamaların mevcut kullanıcının dizinlerinden veri okuyabilmesi hiç de iyi değil.

Çoğu uygulamada dosya sistemi ve kayıt defteri sanallaştırması "talep üzerine kopyalama" ilkesine dayanmaktadır. Yani, bir dosyanın sadece okunması gerekiyorsa, sanal dizinde analog yoksa kaynak dizinden okunur. Aynı dosya sanal dizinde mevcutsa, yalıtılmış uygulama onunla çalışacaktır. Aynı şey sanal kayıt defteri için de söylenebilir. Bir dosyayı gerçek bir yola yazmaya çalıştığınızda sanal dosya sistemine yazılacağı açıktır. Neredeyse her zaman.

Dolayısıyla, eğer kötü amaçlı yazılım böyle bir sanal alanda "yalıtılmışsa", o zaman tam erişim diğer tüm "yalıtılmış" işlemlere, okumak için sistemdeki hemen hemen tüm verilere ve yazma için sanallaştırılmış (yalıtılmış uygulamalar tarafından depolanan) verilere (genellikle tüm yalıtılmış uygulamalar için ortaktır).

Nuance No. 3 veya “hadi başka bir bisiklet yapalım, çok ilginç”

Devam sadece üyelere açıktır

Seçenek 1. Sitedeki tüm materyalleri okumak için "site" topluluğuna katılın

Belirtilen süre içinde topluluğa üye olmak, TÜM Hacker materyallerine erişmenizi sağlayacak, kişisel kümülatif indiriminizi artıracak ve profesyonel bir Xakep Skoru puanı biriktirmenize olanak tanıyacak!

Bu nedenle, uygulamamın birden fazla örneğinin aynı anda bu dosyaya erişememesi için istemci uygulamamdaki yalıtılmış bir depolama dosyasını kilitlemeye çalışıyorum. Aşağıdaki sözdizimini kullanıyorum:

LockStream = new İzoleStorageFileStream("my.lck", FileMode.OpenOrCreate, isoStore); lockStream.Lock(0, 0);

Bu kod, uygulamamın yapının FileStream.Lock yönteminden bir NullReferenceException oluşturmasına neden oluyor. Uzunluk için sıfır olmayan bir değer kullanmayı denedim. Bir dosyaya bir bayt yazmaya çalıştım ve sonra yalnızca o baytı engelledim. Ne yaparsam yapayım aynı NullReferenceException beni rahatsız ediyor. Bunun izole depolamayla mümkün olup olmadığını bilen var mı?

Ayrıca bu tekniği bir Silverlight uygulamasında öğreniyorum, Silverlight dosya kilitlemeyi destekliyor mu? MSDN belgeleri durumun böyle olmadığını gösteriyor gibi görünüyor, ancak MVP'den gelen bu yazının öyle olduğunu söyleyen bir yazı gördüm.

Güncelleme: Microsoft, Connect'e gönderdiğim hatayı düzeltti ancak çerçevenin 4. sürümünde yayınlanmadı. Umarım bir sonraki SP'de veya tam sürümde mevcut olmalıdır.

4

2 cevap

Bu, Çerçevedeki bir hataya benziyor. Belki de yanılıyorum çünkü bu gerçek olamayacak kadar büyük.

Reflektör ile .NET 3.5 SP1 kaynak koduna baktığınızda, IsolStorageFileStream'in boyutsuz temel oluşturucuyu (FileStream()) çağırdığını ve bunun gerçekten başlatılmamış bir temel sınıfla sonuçlandığını görebilirsiniz. İzoleStorageFileStream, FileStream'in bir örneğini oluşturur ve bunu geçersiz kıldığı tüm yöntemlerde (Yazma, Okuma, Temizleme, Arama vb.) kullanır. Temel sınıfını doğrudan kullanmaması garip.

Ancak kilitleme ve kilit açma geçersiz kılınmaz ve özel bir alan (_handle) gerektirir; bu alan hala boştur (kullanılan kurucu parametresiz olduğundan). Bunun boş olmadığını varsayıyorlar ve oynuyorlar ve bir NRE'yi tetikliyorlar.

Özetlemek gerekirse kilitleme ve kilit açma desteklenmiyor (veya çalışmıyor).

Mutex veya Semaphore gibi diğer kilitleme yöntemlerini kullanmak zorunda kaldığınızı düşünüyorum.




Tepe