Hvordan sikre prosessisolasjon og ikke ødelegge Windows. NET isolert NRE lås låsefil Hvordan få tilbake isolert fil

4

Så jeg prøver å låse en isolert lagringsfil i C#-klientapplikasjonen min slik at flere forekomster av applikasjonen min ikke kan få tilgang til den samtidig. Jeg bruker følgende syntaks:

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

Denne koden får applikasjonen min til å kaste en NullReferenceException i rammeverkets FileStream.Lock-metode. Jeg prøvde å bruke en verdi som ikke er null for lengde. Jeg prøvde å skrive en byte til en fil og blokkerte bare den byten. Uansett hva jeg gjør, hjemsøker det samme NullReferenceException meg. Er det noen som vet om dette er mulig med isolert lagring?

Også jeg lærer denne teknikken i en Silverlight-applikasjon, støtter Silverlight fillåsing? MSDN-dokumentene ser ut til å indikere at dette ikke er tilfelle, men jeg så dette innlegget fra C# MVP som sier at det er det.

Oppdatering: Microsoft har fikset feilen som jeg sendte til Connect, men den ble ikke utgitt i versjon 4 av rammeverket. Den bør forhåpentligvis være tilgjengelig i neste SP eller full utgivelse.

0

Jeg var i stand til å omgå denne feilen ved å bruke refleksjon for å kalle opp låsemetoden på IsolatedStorageFileStream-feltet til det private "m_fs" slik: 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) som FileStream; m_fs.Lock(0, long.MaxValue); - bsiegel 05 Mar 10 05.03.2010 15:57:55

  • 2 svar
  • Sortering:

    Aktivitet

4

Dette ser ut som en feil i rammeverket. Kanskje jeg tar feil fordi dette virkelig er for stort til å være sant.

Når du ser på .NET 3.5 SP1-kildekoden med reflektor, finner du at IsolStorageFileStream kaller den dimensjonsløse basekonstruktøren (FileStream()), noe som resulterer i en ikke-initialisert basisklasse. IsolatedStorageFileStream oppretter en forekomst av FileStream og bruker den i alle metoder den overstyrer (skrive, lese, spyle, søke osv.). Det er rart at den ikke bruker sin basisklasse direkte.

Men låsing og opplåsing overstyres ikke, og de trenger et privat felt (_handle), som fortsatt er null (siden konstruktøren som brukes er parameterløs). De antar at den ikke er null og spiller den og utløser en NRE.

For å oppsummere, låsing og opplåsing støttes ikke (eller fungerer ikke).

Hvordan gjenopprette filene mine slettet av Eset NOD32 antivirus” er en forespørsel som ofte kan sees på Internett. Likevel mulige løsninger Det er ikke så mange spørsmål om dette problemet, noe som ofte skaper følelsen av at det ikke er noen måter å returnere tapte dokumenter på.

Først av alt må du forstå at et antivirus aldri vil blokkere eller slette en fil som ikke påvirker funksjonen på en eller annen måte operativsystem eller andre installerte programmer.

Følgelig, hvis dokumentet ditt ble slettet, kan du trygt mistenke at det var ondsinnet. Imidlertid er det også filer som ganske enkelt endrer programmet, forstyrrer prosessene, men som ikke utgjør en trussel.

Finnes det måter å gjenopprette en fil slettet av et antivirusprogram? Det er det definitivt! I denne artikkelen vil vi se på hva Eset NOD32-applikasjonen er, funksjonene ved å jobbe med den og effektiv metode Gjenopprette filer som er slettet av antivirus.

Hva er Eset NOD32?

For ingen i moderne verden Det er ingen hemmelighet hvor viktig, og viktigst av alt, hvor relevante antivirusapplikasjoner er. De lar deg ikke bare eliminere det store flertallet av ondsinnede filer, men bidrar også til å forhindre en mulig trussel selv før den manifesterer seg, og skader systemet på en eller annen måte.

Antivirus Eset NOD32, som oftest bare kalles NOD32, er en hel antiviruspakke programvare, opprettet av det slovakiske selskapet Eset tilbake i 1987.

Det er to utgaver av programmet:

  • Hjemmeversjon.
  • Business versjon.

Hovedforskjellen mellom bedriftsversjonen og hjemmeversjonen er evnen fjernkontroll og tilstedeværelsen av beskyttelse på tvers av plattformer. Ikke mindre behagelig er funksjonen som lar deg enkelt og fleksibelt tilpasse programmet til ethvert behov.

Eset NOD32. Hvordan aktivere eller deaktivere antivirus?

Det skjer ofte at når du installerer et bestemt program, må vi deaktivere antiviruset, fordi ellers vil det "spise" en viktig fil uten hvilken applikasjonen rett og slett ikke kan starte.

En annen vanlig årsak til å lete etter svar på spørsmålet om å aktivere/deaktivere et antivirus er målet om å redusere ressursforbruket til «forsvareren». Dette skyldes det særegne ved arbeidet til antivirus - de tar vanligvis opp en ganske stor mengde minne selv når de er i passiv tilstand, og når du kjører andre "tunge" programmer, er det noen ganger nødvendig å pause beskyttelsen.

Så hvordan fullfører du oppgaven med å aktivere eller deaktivere NOD32? La oss se på dette problemet i instruksjonene nedenfor.

1. Start applikasjonen Eset NOD32 og gå til Innstillinger.

2. I vinduet som åpnes finner du alle installerte NOD32-tjenestepakker. Besøk hver enkelt og aktiver/deaktiver alternativene avhengig av dine behov.

Eset NOD32. Antiviruskarantene og unntak.

Karantene- et oppbevaringssted som nødvendigvis finnes i ethvert antivirus, uavhengig av produsent og versjon (hjemme eller bedrift). Den lagrer alle mistenkelige filer som ifølge antivirusprogrammet kan skade operativsystemet ditt på en eller annen måte.

Det er verdt å merke seg at ikke et enkelt dokument, selv om det er en trojaner, slettes umiddelbart. Først av alt nøytraliseres trusselen som den utgjør: filen settes i karantene og antiviruset venter tålmodig på brukerens ansvarlige beslutning om å ytterligere handlinger— du kan enten slette det infiserte dokumentet eller markere det som et unntak, som vi vil diskutere litt senere.

Hvordan finne karantene Eset antivirus NOD32? Veldig enkelt! La oss se på instruksjonene nedenfor.

1. Løpe Eset NOD32 og gå til delen Service.

2. Åpne fanen Ekstra midler. Den er plassert i nedre høyre hjørne.

3. dukket opp foran oss full liste tilleggstjenester levert av Eset som en del av antivirusprogrammet. Åpen Karantene.

4. I menyen som åpnes gir NOD32 deg fulle rettigheter til å administrere alle isolerte filer.

Vi fant karantene og fant ham hovedfunksjoner:

  • Isoler filen. Dette alternativet lar deg finne en ondsinnet fil manuelt og blokkere den hvis antiviruset ikke kan klare seg selv.
  • Restaurere. Et alternativ som lar deg gjenopprette en utilsiktet låst fil.

Bare å gjenopprette et isolert dokument unngår ikke alltid ytterligere blokkering. Kan dette endres? La oss vurdere.

1. Uten å forlate vinduet Karantene, høyreklikk på filen du vil låse opp.

2. Velg et alternativ Gjenopprett og ekskluder fra skanning.

3. Hvis du er trygg på handlingene dine, klikk Ja. Hvis du ikke vet om en fil er farlig eller ufarlig, anbefaler vi å klikke Nei.

Eset NOD32 slettede filer. Hvordan komme seg?

Antivirus– dette er den eneste barrieren som holder tilbake utrolig mange mulige trusler, i stand til å infiltrere datamaskinene våre via Internett. Det er ganske naturlig at det blokkerer absolutt alle filer med en lignende driftsmekanisme; slike dokumenter som på en eller annen måte forstyrrer system- eller programvareprosesser.

Dessverre er ikke antivirus i stand til å skille filer, fordi enhver ondsinnet fil lett kan forkle seg som en Windows-prosess og gradvis ødelegge datamaskinen fra innsiden.

Følgelig prøver programmet på alle mulige måter å beskytte PC-en, og blokkerer alt som etter deres mening utgjør en viss trussel. I de fleste tilfeller kan blokkerte dokumenter enkelt gjenopprettes ved å gjøre et unntak, men noen ganger oppstår de fullstendig fjerning, hvis antiviruset anser filen som kritisk farlig.

Starus-partisjonsgjenoppretting vil være en god assistent i det daglige arbeidet med filsystemet. Applikasjonen vil avlaste deg for eventuelle bekymringer om dine personlige dokumenter i det lange løp og vil hjelpe deg å gjenopprette en fil i alle formater, uavhengig av hvordan du mistet den.

Du kan vurdere alle sjansene for å "gjenopprette det tapte" før du registrerer Starus Partition Recovery-verktøyet. Last ned programmet for å gjenopprette personlige dokumenter som er slettet av antivirus og prøv det helt gratis. I prøveversjon Alle funksjoner er tilgjengelige, inkludert forhåndsvisning av gjenopprettede filer. Forhåndsvisningsvinduet lar deg sørge for at en bestemt fil ikke er skadet eller overskrevet og kan gjenopprettes fullstendig.

Vi håper artikkelen var nyttig for deg og hjalp deg med å løse spørsmålene dine.

Hvordan isolere mistenkelige prosesser i Windows uten å ødelegge selve operativsystemet? Hvordan lage en pålitelig og kompatibel Windows-programvare en sandkasse uten maskinvarevirtualisering og kjernefunksjonskroker, men bruker dokumenterte innebygde OS-sikkerhetsmekanismer? Vi vil snakke om de vanligste problemene for utviklere (og til slutt forbrukere) av programvaresandkasser. Vel, selvfølgelig vil vi tilby vår løsning :).

Introduksjon, eller hvor ille det er å leve uten sandkasse

Det er noen få aksiomer blant fagfolk som de ikke liker å snakke om. Hva kan vi si om aksiomer? De er og er. Det ser ut til at alle forstår hvordan to og to er to. For eksempel er en av dem at signaturbaserte antivirus ikke beskytter. Vel, det vil si, de beskytter ikke, og det er alt. Mange ting har blitt sagt og gjenfortalt om dette mange, mange ganger. Med eksempler, vakre presentasjoner, danser og forestillinger. Og epidemier av alle slags ekle ting som Ransomware fungerer som et av bevisene på ineffektiviteten til signatur- og heuristiske teknologier. Alle typer kryptor og obfuscatorer løser med suksess problemet med å beskytte lenge kjent skadelig programvare fra deteksjon, og i noen tid oppdages ikke denne skadelige programvaren av antivirus. Denne tiden er nok til at noen føler seg dårlige og for at andre skal ha det bra.

Det vil si at vi ikke engang snakker om 0day: du kan ta den gamle velkjente skjeggete malwaren, forvandle den, fjerne atferdssignaturer (fungere et par dager for en lat person) og bruke den igjen, og så igjen, og igjen, til du blir lei av det eller til du blir fengslet. Samtidig ser det ut til at personene som solgte medisinen slik at denne "dårlige tingen" aldri skulle skje, ikke har noe med det å gjøre; Med seriøse ansikter publiserer de et slags nyhetsbrev og snakker om hygiene på Internett, mens de glemmer å si at hvis den samme hygienen overholdes fullstendig, er antivirus, spesielt betalte, praktisk talt ikke nødvendig.

Sandkasser og funksjoner i deres implementering

Så antivirus lagrer ikke, men bryter noen ganger det som allerede eksisterer. "La oss nærme oss beskyttelse fra den andre siden og isolere prosesser fra hverandre," sa en uendelig smart. Det er virkelig flott når mistenkelige prosesser kjører i et isolert miljø kalt en sandkasse. Skadelig programvare som kjører i en sandkasse kan ikke forlate sandkassen og skade hele systemet. Dette kan være en løsning, men det er nyanser i eksisterende sandkasseimplementeringer...
Deretter vil vi diskutere alle vanskelighetene ved å bygge sandkasser, kunnskapen om hvilke vil definitivt komme godt med når du skal velge et prosessisoleringsverktøy eller HIPS (Host-based Intrusion Prevention System - et inntrengingsforebyggende system for arbeidsstasjoner).

Nyanse nr. 1, eller én sandkasse for alle

De fleste sandkasser gir faktisk ikke prosessisolasjon. I sannhet, i de fleste implementeringer er systemet som beskyttes delt i to deler - klarert og ikke-klarert. I den pålitelige delen utføres normale prosesser, og i utrustet - isolert. Det vil si at alle isolerte prosesser kjører i samme sandkasse, har tilgang til hverandre og til hverandres ressurser, bruker samme register og samme filsystem.

Dermed kan skadevaren få fotfeste i selve sandkassen og starte sporadisk med en av de isolerte applikasjonene (eller med flere isolerte applikasjoner, eller med hvilken som helst av dem). Samtidig logger ikke sandkasser ofte handlingene til isolerte prosesser. Handlinger som HIPS klager på foregår i sandkasser uten den minste reaksjon, justert for isolasjon, noe som ikke er særlig bra.

Hvordan sjekke at isolasjonen er utformet på denne måten? Veldig enkelt! Kjør to applikasjoner i en sandkasse. For eksempel notepad.exe og wordpad.exe. Opprett ved hjelp av notepad.exe tekstfil 1.txt.

Selvfølgelig denne filen lagres ikke på skrivebordet, men i en "virtuell" katalog. Prøv å åpne den med Wordpad (fig. 3).



Så en fil som er opprettet av ett sandkasseprogram kan åpnes av et annet sandkasseprogram. La oss innse det, isolasjon er ikke særlig bra lenger. Men kanskje det i det minste blir en form for beskyttelse mot opptak? Vi endrer innholdet (fig. 4).


Og vi sparer. La oss nå prøve å åpne fil 1.txt ved å bruke notepad.exe. La oss selvfølgelig kjøre notepad.exe i sandkassen (fig. 5).


Og det var dette vi snakket om. To isolerte applikasjoner er ikke isolert fra hverandre. Det viser seg at slik isolasjon ikke var helt klart hvorfor. Selv løsepengevare, uten å få tilgang til lokale mapper på datamaskinen, kan kryptere alt i en virtualisert katalog, og hvis du er heldig, også på nettverksressurser, siden sandkasseinnstillingene er de samme for alle isolerte applikasjoner.

Nyanse nr. 2, eller underisolasjon

Ja, isolerte prosesser kan ikke nå den pålitelige delen av systemet... men i de fleste implementeringer er det skrivebeskyttet. Det vil si at de kan lese fra hvor som helst med praktisk talt ingen begrensninger og har ofte tilgang til nettverket. Dette ble tilsynelatende gjort for større kompatibilitet, men dette kan ikke kalles isolasjon.
Prøv et enkelt eksperiment med en sandkasse du ønsker. Lag en katalog på harddisken. La oss si dette: E:\Photos. Plasser for eksempel et fotografi i den (fig. 6).


Lansering Internet Explorer i sandkassen og prøv å sende dette bildet til for eksempel rghost.



Så hvordan er det? Skjedd? Hvis eksperimentet var en suksess, så er ikke dette veldig bra. Enda verre, hvis sandkassen ikke har muligheten til å spesifisere kataloger som isolerte applikasjoner ikke vil ha tilgang til. Og det er slett ikke bra hvis isolerte applikasjoner kan lese data fra gjeldende brukers kataloger.

Filsystem- og registervirtualisering i de fleste implementeringer er basert på "copy-on-demand"-prinsippet. Det vil si at hvis en fil bare må leses, så leses den fra kildekatalogen hvis det ikke er noen analog i den virtuelle katalogen. Hvis den samme filen er til stede i den virtuelle katalogen, vil den isolerte applikasjonen fungere med den. Det samme kan sies om det virtuelle registeret. Vel, det er klart at når du prøver å skrive en fil til en ekte bane, vil den bli skrevet til det virtuelle filsystemet. Nesten alltid.

Dermed, hvis skadelig programvare er "isolert" i en slik sandkasse, kan den ha full tilgang til alle andre "isolerte" prosesser, til praktisk talt alle data på systemet for lesing, og til virtualiserte (lagret av isolerte applikasjoner) data (som ofte er felles for alle isolerte applikasjoner) for skriving.

Nyanse nr. 3, eller "la oss lage en annen sykkel, den er så interessant"

Fortsettelse er kun tilgjengelig for medlemmer

Alternativ 1. Bli med i «side»-fellesskapet for å lese alt materiell på nettstedet

Medlemskap i fellesskapet innen den angitte perioden vil gi deg tilgang til ALT Hacker-materiale, øke din personlige kumulative rabatt og tillate deg å samle en profesjonell Xakep Score-vurdering!

Så jeg prøver å låse en isolert lagringsfil i klientapplikasjonen min slik at flere forekomster av applikasjonen min ikke kan få tilgang til den samtidig. Jeg bruker følgende syntaks:

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

Denne koden får applikasjonen min til å kaste en NullReferenceException fra FileStream.Lock-metoden til strukturen. Jeg prøvde å bruke en verdi som ikke er null for lengde. Jeg prøvde å skrive en byte til en fil og blokkerte bare den byten. Uansett hva jeg gjør, hjemsøker det samme NullReferenceException meg. Er det noen som vet om dette er mulig med isolert lagring?

Også jeg lærer denne teknikken i en Silverlight-applikasjon, støtter Silverlight fillåsing? MSDN-dokumentene ser ut til å indikere at dette ikke er tilfelle, men jeg så dette innlegget fra MVP som sier at det gjør det.

Oppdatering: Microsoft har fikset feilen som jeg sendte til Connect, men den ble ikke utgitt i versjon 4 av rammeverket. Den bør forhåpentligvis være tilgjengelig i neste SP eller full utgivelse.

4

2 svar

Dette ser ut som en feil i rammeverket. Kanskje jeg tar feil fordi dette virkelig er for stort til å være sant.

Når du ser på .NET 3.5 SP1-kildekoden med Reflector, kan du finne at IsolStorageFileStream kaller den dimensjonsløse basekonstruktøren (FileStream()), noe som resulterer i en ikke-virkelig initialisert baseklasse. IsolatedStorageFileStream oppretter en forekomst av FileStream og bruker den i alle metoder den overstyrer (skrive, lese, spyle, søke osv.). Det er rart at den ikke bruker sin basisklasse direkte.

Men låsing og opplåsing blir ikke overstyrt, og de krever et privat felt (_handle), som fortsatt er null (siden konstruktøren som brukes er parameterløs). De antar at den ikke er null og spiller den og utløser en NRE.

For å oppsummere, låsing og opplåsing støttes ikke (eller fungerer ikke).

Jeg tror du er tvunget til å bruke andre låsemetoder som Mutex eller Semaphore.




Topp