Cum să asigurați izolarea procesului și să nu spargeți Windows. NET izolat fișier de blocare NRE Cum să obțineți înapoi fișierul izolat

4

Așa că încerc să blochez un fișier de stocare izolat în aplicația mea client C#, astfel încât mai multe instanțe ale aplicației mele să nu îl poată accesa în același timp. Folosesc următoarea sintaxă:

LockStream = nou IsolatedStorageFileStream("my.lck", FileMode.OpenOrCreate, isoStore); lockStream.Lock(0, 0);

Acest cod face ca aplicația mea să arunce o NullReferenceException în cadrul metodei FileStream.Lock a cadrului. Am încercat să folosesc o valoare diferită de zero pentru lungime. Am încercat să scriu un octet într-un fișier și apoi am blocat doar acel octet. Indiferent ce fac, aceeași NullReferenceException mă bântuie. Știe cineva dacă acest lucru este posibil cu stocarea izolată?

De asemenea, învăț această tehnică într-o aplicație Silverlight, Silverlight acceptă blocarea fișierelor? Documentele MSDN par să indice că nu este cazul, dar am văzut această postare de la C# MVP care spune că este.

Actualizare: Microsoft a remediat bug-ul pe care l-am trimis la Connect, dar nu a fost lansat în versiunea 4 a framework-ului. Ar trebui să fie disponibil, sperăm, în următorul SP sau versiunea completă.

0

Am reușit să rezolv această eroare folosind reflectarea pentru a apela metoda de blocare în câmpul IsolatedStorageFileStream al „m_fs” privat astfel: lockStream = new IsolatedStorageFileStream("q.lck", FileMode.OpenOrCreate, isoStore); FileStream m_fs = typeof(IsolatedStorageFileStream).InvokeMember(("m_fs"), BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance, null, lockStream, null) ca FileStream; m_fs.Lock(0, long.MaxValue); - bsiegel 05 mar 10 2010-03-05 15:57:55

  • 2 raspunsuri
  • Triere:

    Activitate

4

Aceasta arată ca o eroare în Framework. Poate mă înșel pentru că acest lucru este într-adevăr prea mare pentru a fi adevărat.

Privind codul sursă .NET 3.5 SP1 cu reflector, găsiți că IsolStorageFileStream apelează constructorul de bază fără dimensiuni (FileStream()), care are ca rezultat o clasă de bază neinițializată. IsolatedStorageFileStream creează o instanță FileStream și o folosește în toate metodele pe care le înlocuiește (Scrie, Citire, Flush, Căutare etc.). Este ciudat că nu își folosește clasa de bază direct.

Dar blocarea și deblocarea nu sunt suprascrise și au nevoie de un câmp privat (_handle), care este încă nul (deoarece constructorul folosit este fără parametri). Ei presupun că nu este nul și îl joacă și declanșează un NRE.

Pentru a rezuma, blocarea și deblocarea nu sunt acceptate (sau nu funcționează).

Cum îmi recuperez fișierele șterse de antivirusul Eset NOD32” este o cerere care poate fi văzută des pe internet. cu toate acestea solutii posibile Nu există atât de multe întrebări despre această problemă, ceea ce creează adesea senzația că nu există modalități de a returna documentele pierdute.

În primul rând, trebuie să înțelegeți că un antivirus nu va bloca sau șterge niciodată un fișier care nu afectează funcționarea într-un fel sau altul sistem de operare sau alte programe instalate.

În consecință, dacă documentul dvs. a fost șters, puteți bănui în siguranță că a fost rău intenționat. Cu toate acestea, există și fișiere care pur și simplu modifică programul, interferând cu procesele acestuia, dar nu reprezintă o amenințare.

Există modalități de a recupera un fișier șters de un antivirus? Cu siguranță există! În acest articol ne vom uita la ce este aplicația Eset NOD32, caracteristicile de lucru cu ea și metoda eficienta Recuperarea fișierelor șterse de antivirus.

Ce este Eset NOD32?

Pentru nimeni in lumea modernă Nu este un secret cât de importante și, cel mai important, cât de relevante sunt aplicațiile antivirus. Acestea vă permit nu numai să eliminați marea majoritate a fișierelor rău intenționate, dar vă ajută și la prevenirea unei posibile amenințări chiar înainte de a se manifesta, dăunând sistemului într-un fel sau altul.

Antivirus Eset NOD32, care este cel mai adesea numit simplu NOD32, este un întreg pachet antivirus software, creat de compania slovacă Eset în 1987.

Există două ediții ale programului:

  • Versiunea de acasă.
  • Versiunea business.

Principala diferență dintre versiunea business și versiunea acasă este capacitatea telecomandăși prezența protecției cross-platform. Nu mai puțin plăcută este caracteristica care vă permite să personalizați ușor și flexibil programul pentru a se potrivi oricăror nevoi.

Eset NOD32. Cum se activează sau se dezactivează antivirusul?

Se întâmplă adesea ca atunci când instalăm un anumit program, ni se cere să dezactivăm antivirusul, deoarece altfel va „mânca” un fișier important fără de care aplicația pur și simplu nu poate porni.

Un alt motiv comun pentru a căuta răspunsuri la întrebarea de activare/dezactivare a unui antivirus este scopul de a reduce consumul de resurse al „apărătorului”. Acest lucru se datorează particularității activității antivirusurilor - de obicei ocupă o cantitate destul de mare de memorie, chiar și atunci când sunt într-o stare pasivă, iar atunci când rulează alte programe „grele”, uneori este necesară întreruperea protecției.

Deci, cum finalizați sarcina de a activa sau dezactiva NOD32? Să ne uităm la această problemă în instrucțiunile de mai jos.

1. Lansați aplicația Eset NOD32și du-te la Setări.

2. În fereastra care se deschide, veți găsi toate pachetele de servicii NOD32 instalate. Vizitați-le pe fiecare și activați/dezactivați opțiunile în funcție de nevoile dvs.

Eset NOD32. Carantină antivirus și excepții.

Carantină- un depozit care este neapărat prezent în orice antivirus, indiferent de producător și versiunea acestuia (acasă sau afacere). Stochează toate fișierele suspecte care, conform antivirusului, pot dăuna sistemului dvs. de operare într-un fel sau altul.

Este de remarcat faptul că niciun document, chiar dacă este un troian, nu este șters instantaneu. În primul rând, amenințarea pe care o reprezintă este neutralizată: fișierul este plasat în carantină și antivirusul așteaptă cu răbdare decizia responsabilă a utilizatorului actiunile urmatoare— puteți fie să ștergeți documentul infectat, fie să îl marcați ca excepție, despre care vom discuta puțin mai târziu.

Cum să găsești carantina Antivirus Eset NOD32? Foarte simplu! Să ne uităm la instrucțiunile de mai jos.

1. Alerga Eset NOD32și mergi la secțiune Serviciu.

2. Deschide fila Fonduri suplimentare. Este situat în colțul din dreapta jos.

3. a apărut înaintea noastră lista plina servicii suplimentare furnizate de Eset ca parte a antivirusului său. Deschis Carantină.

4. În meniul care se deschide, NOD32 vă oferă drepturi complete pentru a gestiona toate fișierele izolate.

Noi am gasit carantinăși l-a găsit functii principale:

  • Izolați fișierul. Această opțiune vă permite să găsiți manual un fișier rău intenționat și să îl blocați dacă antivirusul nu poate face față singur.
  • Restabili. O opțiune care vă permite să recuperați un fișier blocat accidental.

Simpla restaurare a unui document izolat nu evită întotdeauna blocarea ulterioară. Poate fi schimbat asta? Sa luam in considerare.

1. Fără a părăsi fereastra Carantină, faceți clic dreapta pe fișierul pe care doriți să-l deblocați.

2. Selecteaza o optiune Recuperați și excludeți de la scanare.

3. Dacă sunteți încrezător în acțiunile dvs., faceți clic da. Dacă nu știți dacă un fișier este periculos sau inofensiv, vă recomandăm să faceți clic Nu.

Fișierele șterse Eset NOD32. Cum să recuperezi?

Antivirus- aceasta este singura barieră care reține un număr incredibil de mare posibile amenințări, capabil să ne infiltreze computerele prin Internet. Este destul de firesc că blochează absolut toate fișierele cu un mecanism de operare similar; astfel de documente care într-un fel sau altul interferează cu procesele sistemului sau software.

Din păcate, antivirusurile nu sunt capabile să diferențieze fișierele, deoarece orice fișier rău intenționat se poate deghiza cu ușurință într-un proces Windows și poate distruge treptat computerul din interior.

În consecință, programul încearcă în toate modurile posibile să protejeze PC-ul, blocând tot ceea ce, în opinia sa, reprezintă o anumită amenințare. În cele mai multe cazuri, documentele blocate pot fi restaurate cu ușurință pur și simplu făcând o excepție, dar uneori apar îndepărtarea completă, dacă antivirusul consideră fișierul extrem de periculos.

Recuperarea partiției Starus va fi un bun asistent în munca de zi cu zi cu sistemul de fișiere. Aplicația vă va scuti de orice griji legate de documentele personale pe termen lung și vă va ajuta să recuperați un fișier de orice format, indiferent de modul în care l-ați pierdut.

Puteți evalua toate șansele de a „recupera ceea ce a fost pierdut” înainte de a înregistra instrumentul Starus Partition Recovery. Descărcați programul pentru a recupera documentele personale șterse de antivirus și încercați-l complet gratuit. ÎN versiune de încercare Toate funcțiile sunt disponibile, inclusiv previzualizarea fișierelor recuperate. Fereastra de previzualizare vă va permite să vă asigurați că un anumit fișier nu este deteriorat sau suprascris și că poate fi complet restaurat.

Sperăm că articolul v-a fost util și v-a ajutat să vă rezolvați întrebările.

Cum să izolați procesele suspecte în Windows fără a rupe sistemul de operare în sine? Cum să creați un sistem de încredere și compatibil software Windows un sandbox fără virtualizare hardware și cârlige pentru funcția kernelului, dar folosind mecanisme de securitate a sistemului de operare încorporate documentate? Vom vorbi despre cele mai frecvente probleme cu care se confruntă dezvoltatorii (și în cele din urmă consumatorii) de sandbox-uri software. Ei bine, desigur, vom oferi soluția noastră :).

Introducere sau cât de rău este să trăiești fără un sandbox

Există câteva axiome printre profesioniști despre care nu le place să vorbească. Ce putem spune despre axiome? Ei sunt și sunt. Se pare că toată lumea înțelege cum doi și doi sunt doi. De exemplu, una dintre ele este că antivirusurile bazate pe semnături nu protejează. Ei bine, adică ei nu protejează și asta-i tot. S-au spus și repovestite multe lucruri despre asta de multe ori. Cu exemple, prezentări frumoase, dansuri și spectacole. Și epidemiile de tot felul de lucruri urâte, cum ar fi Ransomware, servesc drept una dintre dovezile ineficienței tehnologiilor euristice și semnăturilor. Tot felul de criptori și obfuscatori rezolvă cu succes problema protecției malware-ului cunoscut de mult timp împotriva detectării, iar de ceva timp acest malware nu este detectat de antivirusuri. Acest timp este suficient pentru ca unii să se simtă rău, iar alții să se simtă bine.

Adică, nici măcar nu vorbim despre 0day: poți lua vechiul malware bine-cunoscut cu barbă, îl poți transforma, elimina semnăturile comportamentale (lucrează câteva zile pentru o persoană leneșă) și îl poți folosi din nou, apoi din nou, și din nou, până te sături de asta sau până ești întemnițat. În același timp, oamenii care au vândut medicamentul pentru ca acest „lucru rău” să nu se întâmple niciodată par să nu aibă nicio legătură cu el; Cu fețe serioase, publică un fel de buletin informativ și vorbesc despre igienă pe internet, uitând în același timp să spună că dacă se respectă în totalitate aceeași igienă, atunci antivirusurile, în special cele plătite, practic nu sunt necesare.

Sandbox-uri și caracteristicile implementării lor

Deci, antivirusurile nu salvează, ci uneori sparg ceea ce există deja. „Să abordăm protecția din cealaltă parte și să izolăm procesele unul de celălalt”, a spus cineva infinit de inteligent. Este cu adevărat grozav când procesele suspecte rulează într-un mediu izolat numit sandbox. Programele malware care rulează într-un sandbox nu pot să-și părăsească limitele și să dăuneze întregului sistem. Aceasta ar putea fi o soluție, totuși există nuanțe în implementările existente în sandbox...
În continuare, vom discuta despre toate complexitățile construcției sandbox-urilor, a căror cunoaștere va fi cu siguranță utilă atunci când trebuie să alegeți un instrument de izolare a proceselor sau HIPS (Host-based Intrusion Prevention System - un sistem de prevenire a intruziunilor pentru stațiile de lucru).

Nuanța nr. 1, sau un sandbox pentru toată lumea

Majoritatea sandbox-urilor nu oferă de fapt izolarea procesului. De fapt, în majoritatea implementărilor sistemul protejat este împărțit în două părți - de încredere și neîncrezător. În partea de încredere sunt executate procese normale, iar în neîncredere - izolat. Adică, toate procesele izolate rulează în același sandbox, au acces unul la celălalt și la resursele celuilalt, folosesc același registry și același sistem de fișiere.

Astfel, malware-ul poate lua un loc în sandbox-ul propriu-zis și poate începe sporadic cu una dintre aplicațiile izolate (sau cu mai multe aplicații izolate, sau cu oricare dintre ele). În același timp, sandbox-urile nu înregistrează adesea acțiunile proceselor izolate. Acțiunile de care se plâng HIPS au loc în nisipuri fără nici cea mai mică reacție, ajustate pentru izolare, ceea ce nu este foarte bine.

Cum se verifică dacă izolația este astfel proiectată? Foarte simplu! Rulați două aplicații într-un sandbox. De exemplu, notepad.exe și wordpad.exe. Creați folosind notepad.exe fisier text 1.txt.

Desigur acest fișier va fi salvat nu pe desktop, ci într-un director „virtual”. Încercați să-l deschideți cu Wordpad (Fig. 3).



Deci, un fișier creat de o aplicație sandbox poate fi deschis de o altă aplicație sandbox. Să recunoaștem, izolarea nu mai este prea bună. Dar poate că va exista măcar un fel de protecție împotriva înregistrărilor? Schimbăm conținutul (Fig. 4).


Și economisim. Acum să încercăm să deschidem fișierul 1.txt folosind notepad.exe. Desigur, să rulăm notepad.exe în sandbox (Fig. 5).


Și despre asta vorbeam. Două aplicații izolate nu sunt izolate una de cealaltă. Se pare că o astfel de izolare nu era complet clar de ce. Chiar și ransomware-ul, fără a obține acces la folderele locale de pe computer, poate cripta totul într-un director virtualizat și, dacă aveți noroc, și pe resursele rețelei, deoarece setările sandbox sunt aceleași pentru toate aplicațiile izolate.

Nuanța nr. 2, sau subizolare

Da, procesele izolate nu pot ajunge la partea de încredere a sistemului... dar în majoritatea implementărilor este doar scris. Adică, pot citi de oriunde, practic fără restricții și au adesea acces la rețea. Se pare că acest lucru a fost făcut pentru o mai mare compatibilitate, dar acest lucru nu poate fi numit izolare.
Încercați un experiment simplu cu o cutie de nisip la alegere. Creați un director pe hard disk. Să spunem asta: E:\Photos. Puneți, de exemplu, o fotografie în ea (Fig. 6).


Lansa Internet Explorerîn sandbox și încercați să trimiteți această imagine către, de exemplu, rghost.



Deci cum este? S-a întâmplat? Dacă experimentul a fost un succes, atunci acest lucru nu este foarte bun. Și mai rău, dacă sandbox-ul nu are capacitatea de a specifica directoare la care aplicațiile izolate nu vor avea acces. Și nu este deloc bine dacă aplicațiile izolate pot citi date din directoarele utilizatorului curent.

Virtualizarea sistemului de fișiere și a registrului în majoritatea implementărilor se bazează pe principiul „copiere la cerere”. Adică, dacă un fișier trebuie doar citit, atunci este citit din directorul sursă dacă nu există niciun analog în directorul virtual. Dacă același fișier este prezent în directorul virtual, atunci aplicația izolată va funcționa cu el. Același lucru se poate spune despre registrul virtual. Ei bine, este clar că atunci când încercați să scrieți un fișier pe o cale reală, acesta va fi scris în sistemul de fișiere virtual. Aproape intotdeauna.

Astfel, dacă malware-ul este „izolat” într-un astfel de sandbox, atunci poate avea acces complet la toate celelalte procese „izolate”, la aproape toate datele din sistem pentru citire și la date virtualizate (stocate de aplicații izolate) (care sunt adesea comune tuturor aplicațiilor izolate) pentru scriere.

Nuanța nr. 3, sau „hai să facem o altă bicicletă, e atât de interesant”

Continuarea este disponibilă numai pentru membri

Opțiunea 1. Alăturați-vă comunității „site” pentru a citi toate materialele de pe site

Calitatea de membru al comunității în perioada specificată vă va oferi acces la TOATE materialele Hacker, vă va crește discountul cumulat personal și vă va permite să acumulați un rating profesional Xakep Score!

Așa că încerc să blochez un fișier de stocare izolat în aplicația mea client, astfel încât mai multe instanțe ale aplicației mele să nu îl poată accesa în același timp. Folosesc următoarea sintaxă:

LockStream = nou IsolatedStorageFileStream("my.lck", FileMode.OpenOrCreate, isoStore); lockStream.Lock(0, 0);

Acest cod face ca aplicația mea să arunce o NullReferenceException din metoda FileStream.Lock a structurii. Am încercat să folosesc o valoare diferită de zero pentru lungime. Am încercat să scriu un octet într-un fișier și apoi am blocat doar acel octet. Indiferent ce fac, aceeași NullReferenceException mă bântuie. Știe cineva dacă acest lucru este posibil cu stocarea izolată?

De asemenea, învăț această tehnică într-o aplicație Silverlight, Silverlight acceptă blocarea fișierelor? Documentele MSDN par să indice că nu este cazul, dar am văzut această postare de la MVP care spune că da.

Actualizare: Microsoft a remediat bug-ul pe care l-am trimis la Connect, dar nu a fost lansat în versiunea 4 a framework-ului. Ar trebui să fie disponibil, sperăm, în următorul SP sau versiunea completă.

4

2 raspunsuri

Aceasta arată ca o eroare în Framework. Poate mă înșel pentru că acest lucru este într-adevăr prea mare pentru a fi adevărat.

Privind codul sursă .NET 3.5 SP1 cu Reflector, puteți descoperi că IsolStorageFileStream apelează constructorul de bază fără dimensiuni (FileStream()), care are ca rezultat o clasă de bază neinițializată cu adevărat. IsolatedStorageFileStream creează o instanță FileStream și o folosește în toate metodele pe care le înlocuiește (Scrie, Citire, Flush, Căutare etc.). Este ciudat că nu își folosește clasa de bază direct.

Dar blocarea și deblocarea nu sunt suprascrise și necesită un câmp privat (_handle), care este încă nul (deoarece constructorul folosit este fără parametri). Ei presupun că nu este nul și îl joacă și declanșează un NRE.

Pentru a rezuma, blocarea și deblocarea nu sunt acceptate (sau nu funcționează).

Cred că ești forțat să folosești alte metode de blocare precum Mutex sau Semaphore.




Top