Мы добились успеха, проверив запущенные процессы для любого процесса, который мы определили ранее, как AV-программу. (Вы можете перечислить список процессов, используя некоторый простой код, который можно найти, прибегая к поиску чего-нибудь в списке «Список запущенных процессов Delphi»)
Если мы его найдем, мы сообщаем об этом пользователю и отказываемся продолжать ...
Чтобы построить наш список процессов, которые мы знаем как AV, мы устанавливаем пробные версии программ AV, а затем просматриваем список процессов (либо в диспетчере задач, либо с помощью нашего кода перечисления процессов). Это не сложно чтобы обнаружить их ... и вы можете закрыть AV-программы и посмотреть, исчезнут ли процессы, которые вы идентифицируете. (Обозреватель процессов полезен: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)
Например, некоторые из процессов, которые мы ищем в настоящее время, включают MCShield (McCaffe), NPROTECT (Norton), PCCNTMON (Trend Micro) и т. Д.
Очевидно, что это не охватит ВСЕ AV-программы, но если вы сделаете вышеупомянутое с основными поставщиками (Norton, McCaffe, Trend Micro, ZA и т. Д.), У вас будет большой процент AV-программ в поле покрыты.
Одна вещь, которая хороша в этом, заключается в том, что она проста в реализации и не требует никаких действительно низкоуровневых вызовов API Windows, кроме как для перечисления текущих запущенных процессов ...