Comment garantir l'isolation des processus et ne pas casser Windows. NET isolé NRE lock lock file Comment récupérer un fichier isolé

4

J'essaie donc de verrouiller un fichier de stockage isolé dans mon application client C# afin que plusieurs instances de mon application ne puissent pas y accéder en même temps. J'utilise la syntaxe suivante :

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

Ce code amène mon application à lancer une NullReferenceException dans la méthode FileStream.Lock du framework. J'ai essayé d'utiliser une valeur non nulle pour la longueur. J'ai essayé d'écrire un octet dans un fichier, puis j'ai seulement bloqué cet octet. Peu importe ce que je fais, la même NullReferenceException me hante. Quelqu'un sait si cela est possible avec un stockage isolé ?

J'apprends également cette technique dans une application Silverlight, Silverlight prend-il en charge le verrouillage de fichiers ? La documentation MSDN semble indiquer que ce n'est pas le cas, mais j'ai vu ce message de C# MVP qui dit que c'est le cas.

Mise à jour : Microsoft a corrigé le bug que j'ai soumis à Connect, mais il n'a pas été publié dans la version 4 du framework. Il devrait être disponible, espérons-le, dans le prochain SP ou dans la version complète.

0

J'ai pu contourner cette erreur en utilisant la réflexion pour appeler la méthode de verrouillage sur le champ InsulatedStorageFileStream du privé "m_fs" comme ceci : lockStream = new InsulatedStorageFileStream("q.lck", FileMode.OpenOrCreate, isoStore); FileStream m_fs = typeof(IsolatedStorageFileStream).InvokeMember(("m_fs"), BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance, null, lockStream, null) as FileStream ; m_fs.Lock(0, long.MaxValue); - bsiegel 05 mars 10 2010-03-05 15:57:55

  • 2 réponses
  • Tri:

    Activité

4

Cela ressemble à un bug dans le Framework. Peut-être que je me trompe parce que c'est vraiment trop gros pour être vrai.

En examinant le code source de .NET 3.5 SP1 avec réflecteur, vous constatez qu'IsolStorageFileStream appelle le constructeur de base sans dimension (FileStream()), ce qui aboutit à une classe de base non initialisée. InsulatedStorageFileStream crée une instance de FileStream et l'utilise dans toutes les méthodes qu'elle remplace (Write, Read, Flush, Seek, etc.). C'est étrange qu'il n'utilise pas directement sa classe de base.

Mais le verrouillage et le déverrouillage ne sont pas remplacés et nécessitent un champ privé (_handle), qui est toujours nul (puisque le constructeur utilisé est sans paramètre). Ils supposent que ce n'est pas nul, le jouent et déclenchent un NRE.

Pour résumer, le verrouillage et le déverrouillage ne sont pas pris en charge (ou ne fonctionnent pas).

Comment récupérer mes fichiers supprimés par l'antivirus Eset NOD32» est une demande que l’on peut souvent voir sur Internet. Néanmoins solutions possibles Il n'y a pas tellement de questions sur cette question, ce qui donne souvent le sentiment qu'il n'existe aucun moyen de restituer les documents perdus.

Tout d'abord, vous devez comprendre qu'un antivirus ne bloquera ni ne supprimera jamais un fichier qui n'affecte pas le fonctionnement d'une manière ou d'une autre. système opérateur ou d'autres programmes installés.

Par conséquent, si votre document a été supprimé, vous pouvez soupçonner en toute sécurité qu'il était malveillant. Cependant, il existe également des fichiers qui modifient simplement le programme, interférant avec ses processus, mais ne constituent pas une menace.

Existe-t-il des moyens de récupérer un fichier supprimé par un antivirus ? Il y en a certainement ! Dans cet article, nous examinerons ce qu'est l'application Eset NOD32, les fonctionnalités de son utilisation et méthode efficace Récupération de fichiers effacés par antivirus.

Qu'est-ce qu'Eset NOD32 ?

Pour personne dans monde moderne Ce n’est un secret pour personne à quel point les applications antivirus sont importantes et, surtout, pertinentes. Ils vous permettent non seulement d'éliminer la grande majorité des fichiers malveillants, mais contribuent également à prévenir une éventuelle menace avant même qu'elle ne se manifeste, nuisant au système d'une manière ou d'une autre.

Antivirus Régler NOD32, qui est le plus souvent appelé simplement NOD32, est un package antivirus complet logiciel, créée par la société slovaque Eset en 1987.

Il existe deux éditions du programme :

  • Version maison.
  • Version professionnelle.

La principale différence entre la version professionnelle et la version domestique est la possibilité télécommande et la présence d'une protection multiplateforme. Non moins agréable est la fonctionnalité qui vous permet de personnaliser le programme de manière simple et flexible pour répondre à tous les besoins.

Réglez NOD32. Comment activer ou désactiver l'antivirus ?

Il arrive souvent que lors de l'installation d'un programme particulier, nous soyons obligés de désactiver l'antivirus, car sinon il « mangera » un fichier important sans lequel l'application ne peut tout simplement pas démarrer.

Une autre raison courante pour chercher des réponses à la question de l'activation/désactivation d'un antivirus est l'objectif de réduire la consommation de ressources du « défenseur ». Cela est dû à la particularité du travail des antivirus - ils occupent généralement une quantité de mémoire assez importante, même lorsqu'ils sont dans un état passif, et lors de l'exécution d'autres programmes «lourds», il est parfois nécessaire de suspendre la protection.

Alors, comment accomplissez-vous la tâche d’activation ou de désactivation de NOD32 ? Examinons ce problème dans les instructions ci-dessous.

1. Lancez l'application Régler NOD32 et allez à Paramètres.

2. Dans la fenêtre qui s'ouvre, vous trouverez tous les packages de services NOD32 installés. Visitez chacun d’eux et activez/désactivez les options en fonction de vos besoins.

Réglez NOD32. Quarantaine antivirus et exceptions.

Quarantaine- un référentiel obligatoirement présent dans tout antivirus, quels que soient son constructeur et sa version (particulier ou professionnel). Il stocke tous les fichiers suspects qui, selon l'antivirus, peuvent nuire à votre système d'exploitation d'une manière ou d'une autre.

Il convient de noter qu'aucun document, même s'il s'agit d'un cheval de Troie, n'est supprimé instantanément. Tout d’abord, la menace qu’il représente est neutralisée : le fichier est placé en quarantaine et l’antivirus attend patiemment la décision responsable de l’utilisateur de actions supplémentaires— vous pouvez soit supprimer le document infecté, soit le marquer comme exception, ce dont nous parlerons un peu plus tard.

Comment trouver la quarantaine Antivirus Eset NOD32 ? Très simple! Regardons les instructions ci-dessous.

1. Courir Régler NOD32 et allez dans la rubrique Service.

2. Ouvrir l'onglet Fonds supplémentaires. Il est situé dans le coin inférieur droit.

3. est apparu devant nous liste complète services supplémentaires fournis par Eset dans le cadre de son antivirus. Ouvrir Quarantaine.

4. Dans le menu qui s'ouvre, NOD32 vous donne tous les droits pour gérer tous les fichiers isolés.

Nous avons trouvé quarantaine et je l'ai trouvé fonctions principales:

  • Isoler le fichier. Cette option vous permet de rechercher manuellement un fichier malveillant et de le bloquer si l'antivirus ne peut pas s'en sortir tout seul.
  • Restaurer. Une option qui vous permet de récupérer un fichier verrouillé accidentellement.

La simple restauration d'un document isolé n'évite pas toujours un blocage supplémentaire. Est-ce que cela peut être changé ? Considérons.

1. Sans quitter la fenêtre Quarantaine, faites un clic droit sur le fichier que vous souhaitez déverrouiller.

2. Choisir une option Récupérer et exclure de l'analyse.

3. Si vous avez confiance en vos actions, cliquez sur Oui. Si vous ne savez pas si un fichier est dangereux ou inoffensif, nous vous recommandons de cliquer sur Non.

Eset NOD32 a supprimé les fichiers. Comment récupérer ?

Antivirus- c'est la seule barrière qui retient un nombre incroyablement grand de personnes menaces possibles, capable d'infiltrer nos ordinateurs via Internet. Il est tout à fait naturel qu'il bloque absolument tous les fichiers ayant un mécanisme de fonctionnement similaire ; les documents qui interfèrent d'une manière ou d'une autre avec les processus du système ou du logiciel.

Malheureusement, les antivirus ne sont pas capables de différencier les fichiers, car tout fichier malveillant peut facilement se déguiser en processus Windows et détruire progressivement l'ordinateur de l'intérieur.

Par conséquent, le programme essaie par tous les moyens de protéger le PC, en bloquant tout ce qui, à son avis, constitue une certaine menace. Dans la plupart des cas, les documents bloqués peuvent être facilement restaurés simplement en faisant une exception, mais cela se produit parfois suppression complète, si l'antivirus considère le fichier comme étant extrêmement dangereux.

Récupération de partition Starus sera un bon assistant dans le travail quotidien avec le système de fichiers. L'application vous soulagera à long terme de tout souci concernant vos documents personnels et vous aidera à récupérer un fichier de n'importe quel format, quelle que soit la façon dont vous l'avez perdu.

Vous pouvez évaluer toutes les chances de « récupérer ce qui a été perdu » avant d'enregistrer l'outil Starus Partition Recovery. Téléchargez le programme pour récupérer les documents personnels effacés par l'antivirus et essayez-le entièrement gratuitement. DANS version d'essai Toutes les fonctions sont disponibles, y compris l'aperçu des fichiers récupérés. La fenêtre d'aperçu vous permettra de vous assurer qu'un fichier particulier n'est pas endommagé ou écrasé et peut être entièrement restauré.

Nous espérons que l'article vous a été utile et vous a aidé à résoudre vos questions.

Comment isoler les processus suspects sous Windows sans casser le système d'exploitation lui-même ? Comment créer un système fiable et compatible Logiciel Windows un bac à sable sans virtualisation matérielle ni hooks de fonctions du noyau, mais utilisant des mécanismes de sécurité intégrés et documentés du système d'exploitation ? Nous parlerons des problèmes les plus courants rencontrés par les développeurs (et finalement les consommateurs) de sandbox logiciels. Eh bien, bien sûr, nous vous proposerons notre solution :).

Introduction, ou à quel point il est mauvais de vivre sans bac à sable

Il existe quelques axiomes parmi les professionnels dont ils n'aiment pas parler. Que dire des axiomes ? Ils le sont et le sont. Il semble que tout le monde comprenne que deux et deux font deux. Par exemple, l’un d’eux est que les antivirus basés sur les signatures ne protègent pas. Eh bien, c’est-à-dire qu’ils ne protègent pas, et c’est tout. Beaucoup de choses ont été dites et redites à ce sujet à maintes reprises. Avec des exemples, de belles présentations, des danses et des performances. Et les épidémies de toutes sortes de choses désagréables comme les Ransomwares sont l'une des preuves de l'inefficacité des technologies de signature et heuristiques. Toutes sortes de chiffreurs et d'obscurcisseurs résolvent avec succès le problème de la protection des logiciels malveillants connus de longue date contre la détection, et pendant un certain temps, ces logiciels malveillants ne sont pas détectés par les antivirus. Ce temps est largement suffisant pour que certains se sentent mal et pour que d'autres se sentent bien.

Autrement dit, nous ne parlons même pas de 0day : vous pouvez prendre le vieux malware barbu bien connu, le transformer, supprimer les signatures comportementales (travailler pendant quelques jours pour une personne paresseuse) et l'utiliser encore, et encore, et encore une fois, jusqu'à ce que vous en ayez assez ou jusqu'à ce que vous soyez emprisonné. En même temps, ceux qui ont vendu le médicament pour que cette « mauvaise chose » n’arrive jamais ne semblent n’avoir rien à voir avec cela ; Avec des visages sérieux, ils publient une sorte de newsletter et parlent d'hygiène sur Internet, en oubliant de dire que si cette même hygiène est pleinement respectée, alors les antivirus, surtout payants, ne sont pratiquement pas nécessaires.

Bacs à sable et fonctionnalités de leur mise en œuvre

Ainsi, les antivirus ne sauvegardent pas, mais cassent parfois ce qui existe déjà. « Abordons la protection de l'autre côté et isolons les processus les uns des autres », a déclaré quelqu'un d'infiniment intelligent. C'est vraiment génial lorsque des processus suspects s'exécutent dans un environnement isolé appelé bac à sable. Les logiciels malveillants exécutés dans un bac à sable ne peuvent pas quitter le bac à sable et endommager l'ensemble du système. Cela pourrait être une solution, mais il existe des nuances dans les implémentations sandbox existantes...
Nous aborderons ensuite toutes les subtilités de la création de bacs à sable, dont la connaissance vous sera certainement utile lorsque vous devrez choisir un outil d'isolation de processus ou HIPS (Host-based Intrusion Prevention System - un système de prévention des intrusions pour les postes de travail).

Nuance n°1, ou un bac à sable pour tout le monde

La plupart des sandbox ne fournissent pas réellement d’isolation des processus. En vérité, dans la plupart des implémentations, le système protégé est divisé en deux parties : fiable et non fiable. Dans la partie de confiance sont exécutés processus normaux, et dans non fiable - isolé. Autrement dit, tous les processus isolés s'exécutent dans le même bac à sable, ont accès les uns aux autres et aux ressources de chacun, utilisent le même registre et le même système de fichiers.

Ainsi, le malware peut prendre pied dans le bac à sable lui-même et démarrer sporadiquement avec l'une des applications isolées (ou avec plusieurs applications isolées, ou avec l'une d'entre elles). Dans le même temps, les sandbox n’enregistrent souvent pas les actions des processus isolés. Les actions dont se plaignent HIPS se déroulent dans des bacs à sable sans la moindre réaction, ajustée à l'isolement, ce qui n'est pas très bon.

Comment vérifier que l’isolation est ainsi conçue ? Très simple! Exécutez deux applications dans un bac à sable. Par exemple, notepad.exe et wordpad.exe. Créer à l'aide de notepad.exe fichier texte 1.txt.

Bien sûr ce fichier ne sera pas enregistré sur le bureau, mais dans un répertoire « virtuel ». Essayez de l'ouvrir avec Wordpad (Fig. 3).



Ainsi, un fichier créé par une application en bac à sable peut être ouvert par une autre application en bac à sable. Soyons réalistes, l'isolement n'est plus très bon. Mais peut-être y aura-t-il au moins une sorte de protection contre l’enregistrement ? Nous modifions le contenu (Fig. 4).


Et nous économisons. Essayons maintenant d'ouvrir le fichier 1.txt à l'aide de notepad.exe. Bien sûr, exécutons notepad.exe dans le bac à sable (Fig. 5).


Et c'est de cela dont nous parlions. Deux applications isolées ne sont pas isolées l'une de l'autre. Il s’avère qu’un tel isolement n’est pas tout à fait clair. Même le ransomware, sans accéder aux dossiers locaux de l’ordinateur, peut tout crypter dans un répertoire virtualisé et, si vous avez de la chance, également sur les ressources réseau, puisque les paramètres du sandbox sont les mêmes pour toutes les applications isolées.

Nuance n°2, ou sous-isolation

Oui, les processus isolés ne peuvent pas atteindre la partie fiable du système... mais dans la plupart des implémentations, ils sont en écriture seule. Autrement dit, ils peuvent lire n’importe où, pratiquement sans aucune restriction, et ont souvent accès au réseau. Cela a apparemment été fait pour une plus grande compatibilité, mais cela ne peut pas être qualifié d’isolement.
Essayez une expérience simple avec un bac à sable de votre choix. Créez un répertoire sur votre disque dur. Disons ceci : E:\Photos. Placez-y, par exemple, une photographie (Fig. 6).


Lancement Internet Explorer dans le bac à sable et essayez d'envoyer cette image, par exemple, à rghost.



Alors c'est comment? Arrivé? Si l’expérience a été un succès, ce n’est pas très bon. Pire encore, si le bac à sable n'a pas la possibilité de spécifier des répertoires auxquels les applications isolées n'auront pas accès. Et ce n’est pas du tout bon si des applications isolées peuvent lire les données des répertoires de l’utilisateur actuel.

La virtualisation du système de fichiers et du registre dans la plupart des implémentations est basée sur le principe de la « copie à la demande ». Autrement dit, si un fichier doit simplement être lu, il est alors lu à partir du répertoire source s'il n'y a pas d'analogue dans le répertoire virtuel. Si le même fichier est présent dans le répertoire virtuel, l'application isolée fonctionnera avec lui. On peut en dire autant du registre virtuel. Eh bien, il est clair que lorsque vous essayez d’écrire un fichier sur un chemin réel, il sera écrit dans le système de fichiers virtuel. Presque toujours.

Ainsi, si le malware est « isolé » dans un tel bac à sable, il peut alors avoir accès totalà tous les autres processus « isolés », à pratiquement toutes les données du système pour la lecture et aux données virtualisées (stockées par des applications isolées) (qui sont souvent communes à toutes les applications isolées) pour l'écriture.

Nuance n°3, ou « faisons un autre vélo, c'est tellement intéressant »

La suite est disponible uniquement pour les membres

Option 1. Rejoignez la communauté « site » pour lire tous les documents sur le site

L'adhésion à la communauté dans la période spécifiée vous donnera accès à TOUS les documents Hacker, augmentera votre remise cumulée personnelle et vous permettra d'accumuler une note professionnelle Xakep Score !

J'essaie donc de verrouiller un fichier de stockage isolé dans mon application client afin que plusieurs instances de mon application ne puissent pas y accéder en même temps. J'utilise la syntaxe suivante :

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

Ce code amène mon application à lever une NullReferenceException à partir de la méthode FileStream.Lock de la structure. J'ai essayé d'utiliser une valeur non nulle pour la longueur. J'ai essayé d'écrire un octet dans un fichier, puis j'ai seulement bloqué cet octet. Peu importe ce que je fais, la même NullReferenceException me hante. Quelqu'un sait si cela est possible avec un stockage isolé ?

J'apprends également cette technique dans une application Silverlight, Silverlight prend-il en charge le verrouillage de fichiers ? Les documents MSDN semblent indiquer que ce n'est pas le cas, mais j'ai vu ce message de MVP qui dit que c'est le cas.

Mise à jour : Microsoft a corrigé le bug que j'ai soumis à Connect, mais il n'a pas été publié dans la version 4 du framework. Il devrait être disponible, espérons-le, dans le prochain SP ou dans la version complète.

4

2 réponses

Cela ressemble à un bug dans le Framework. Peut-être que je me trompe parce que c'est vraiment trop gros pour être vrai.

En regardant le code source de .NET 3.5 SP1 avec Reflector, vous pouvez constater qu'IsolStorageFileStream appelle le constructeur de base sans dimension (FileStream()), ce qui aboutit à une classe de base non réellement initialisée. InsulatedStorageFileStream crée une instance de FileStream et l'utilise dans toutes les méthodes qu'elle remplace (Write, Read, Flush, Seek, etc.). C'est étrange qu'il n'utilise pas directement sa classe de base.

Mais le verrouillage et le déverrouillage ne sont pas remplacés et nécessitent un champ privé (_handle), qui est toujours nul (puisque le constructeur utilisé est sans paramètre). Ils supposent que ce n'est pas nul, le jouent et déclenchent un NRE.

Pour résumer, le verrouillage et le déverrouillage ne sont pas pris en charge (ou ne fonctionnent pas).

Je pense que vous êtes obligé d'utiliser d'autres méthodes de verrouillage comme Mutex ou Semaphore.




Haut