2016-04-14 1 views
0

J'écris une application de bureau C# qui appelle IsDebuggerPresent et si c'est mon application se termine. Je lis dans l'article suivant que les programmes antivirus recherchent cette fonction comme indicateur de logiciels malveillants: https://www.alienvault.com/open-threat-exchange/blog/your-malware-shall-not-fool-us-with-those-anti-analysis-tricksL'appel de la fonction IsDebuggerPresent de kernal32 entraînera-t-il les programmes antivirus à signaler mon application?

Est-ce que cette fonction obtenir mon application signalé par les programmes antivirus?

Répondre

2

Il est hautement improbable que votre programme soit marqué.

L'article parlait de la version native de l'appel et cet appel utilisait une manière extrêmement inhabituelle d'appeler pour essayer d'éviter la détection, pas la version gérée.

Cependant, je doute que vous trouviez un quelconque avantage à le faire dans votre programme, cela n'empêchera en rien les gens d'analyser votre programme. Les gens peuvent simplement mettre un point d'arrêt sur l'appel au IsDebuggerPresent et ensuite passer simplement la vérification if. La seule chose que vous êtes susceptible de causer en ajoutant cette vérification est plus de maux de tête pour vous lorsque vous allez essayer de résoudre les problèmes dans votre code.

+0

"n'arrêtera pas les gens du tout" - particulièrement vrai pour C# /. Net code ... Supprimer l'appel et recompiler n'est pas exactement la science de fusée (même pour le code obfusqué). –

1

La seule façon de savoir est de tester. Je sais que la version entreprise de Symantec ne dérange pas du tout pour la version gérée.

Notez que cet appel ne facilite pas l'activité du virus sur un système. Il aide simplement le virus à agacer un analyste dans un laboratoire AV jusqu'à un jour. Il n'y a aucune raison de le rechercher dans la nature comme un signe d'un virus.