2013-05-17 4 views
14

Я искал какое-то время, но я не нашел подходящего ответа на этот вопрос. Я заметил, что мой антивирус начал обнаруживать мое приложение в качестве трояна. Мой антивирус - это Kaspersky 2013, и это тип обнаруженного трояна. http://www.securelist.com/en/descriptions/HEUR:Trojan.Win32.GenericKaspersky обнаруживает мое приложение ConsoleApplication как троянец

Мое приложение делает только три вещи:

  • чек, если Dongle Key подключен к компьютеру

  • Расшифровывает DLL (то есть класс МОФ библиотека с точкой пользовательского ввода) с ключом ключа

  • Запускает dll через пользовательскую точку входа.

Проблема в том, что аналогичный код работает в аналогичном приложении, но в этом случае мой антивирус обнаруживает его как трояна. я заметил, что часть кода, которая имеет проблемы заключается в следующем:

public static void ExecuteAssembly(byte[] Bytes) 
    { 
     Assembly a = Assembly.Load(Bytes); 
     foreach (Type type in a.GetTypes()) 
     { 
      try 
      { 
       MethodInfo main = type.GetMethod("Main"); 
       if (main != null) 
        main.Invoke(type, new object[] { }); 
      } 
      catch { } 
     } 
    } 

Что я могу сделать, чтобы избежать этой проблемы? Я не занимаюсь трояном, и я не могу избежать использования этой части кода для запуска моей dll. Поэтому я не думаю, что код является проблемой. Спасибо заранее.

Маттиа

EDIT:

Я загрузил файл на сайт Егор сказал мне. Это результат. https://www.virustotal.com/en/file/7ee30172ffda51f4b99700d10df2816403cbdc8f17bfe90f7deef81a88639da3/analysis/1369058630/

Какой совет вы можете мне дать? Чтобы отправить файл как ложный или что-то другое, как изменение кода? Я новичок в таких проблемах, поэтому не знаю, как действовать. Еще раз спасибо!

+0

нет других способов начать DLL программно? Системный вызов RunDLL.EXE, возможно, если он все еще существует. –

+1

Напоминает мне о временах, когда Avast запускал мои приложения в песочнице и убивал их без предупреждения через 10-20 секунд. У меня больше нет этих проблем, и я тоже не изменил свой код. – Nolonar

+3

Я бы посоветовал вам сократить это до простой демонстрации, так как вы можете сделать это и отправить ее в Kaspersky для обзора. –

ответ

5

Хотя я не могу дать вам ответ о том, как его решить, меняя код, я могу сказать вам, что вы не первый, у кого есть эта проблема. Я столкнулся с этим раньше с помощью одной из моих собственных программ, и кажется, что даже некоторые игры обнаруживаются как этот троян от Касперского. Как некоторые другие сказали в комментарии, вы можете представить это как ложный позитив для Касперского. Я следовал инструкциям по этой ссылке: How to report undetected viruses or false positives to the viruslab, No links to malware in the forum please!

4

вы обнаружите эвристическое обнаружение - это означает, что kaspersky оценил каждый отрицательный и положительный атрибут вашей DLL (каждая вещь из таблиц импорта в размер файла и фактические функции называлась) и решила что его класс ниже рекомендованного для хорошего исполняемого файла.

Я предполагаю, что пример кода - это то, что вызывает обнаружение - это означает, что вы удалили этот раздел кода, и вдруг kaspersky был в порядке с ним. если это так, вы можете обмануть сканер Касперского, вызвав Assembly.Load, используя отражение. (Что, вероятно, причина, почему он обнаружен - это очень часто с троянами для загрузки дополнительных модулей как библиотеки и загрузить их из памяти)

typeof(Assembly).GetMethod("Load").Invoke(null,new object[] {Bytes}); 
+1

Я больше не работаю над этим проектом (я ушел), но это было бы правильным решением. Благодаря! – Pliskin

Смежные вопросы