Борьба с ложным срабатыванием антивируса.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Борьба с ложным срабатыванием антивируса.

Сообщение xenomorph » 28.12.2005 (Ср) 21:04

Привет всем!

Аутлайн:

1. Пишу прогу на ВБ. (оригинальное начало, да?)
2. Вроде всё хокей.
3. Добавляю в прогу 1 модуль.
4. Компилирую.
5. DrWeb орёт - "подозрение на вирус!!!" ->"мочить \ не мочить"

Трабла: сия ситуация меня мягко говоря "не устраивает".
Модуль критичен - без него никак.

Фишка:

1. Менял код - модифицировал - DrWeb орёт "Подозрение на Трой.Вин32!"
2. Выносил в класс - "Подозрение на Трой.Вин32!"
3. Менял название переменных \ процедур - "Подозрение на Трой.Вин32!"
4. Раскидывал по модулям - "Подозрение на Трой.Вин32!"

5. (!) Начял удалять код - (система 50\50 - 50% кода оставлям -
если орёт дальше, продолжаем, если нет - рассматриваем другие 50%,
далее в цикле ...)

Вообщем - довавляю в код декларации 2х АПИ
ReadProcessMemory &
WriteProcessMemory - ОРЁТ.
Убираю - молчит.

Вопрос вобщем -
как сделать так чтоб он заткнулся?
1. Не пакерами.
2. Желательно модификацией кода.
3. Модуль - критичен - выкидывать низЯЯЯ!

Хинты:
Я думаю, что алерт АВ связан с секцией импорта АПИ.
Как они располагаються в .exe?
Похоже что ругаеться он именно на таблицу импорта АПИ.
Как разместить их декларации чтоб они изменили сигнатуры?
Есть ли вожможность вызова АПИ по имени?

т.п. как в АЗМ-е -
LoadDll
GetProcByName
push arg1
push arg2
push arg3
Call ProcName?

Все РАЗУМНІЕ ИДЕИ по СУЩЕСТВУ приветствуться!
Заранее огромное спасибо!
--
ЧТО именно я пишу - єто сугубо МОЁ дело,
коментв и дураЦкие вопросы - >> \dev\null
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.12.2005 (Ср) 21:15

xenomorph
C этими попвтками скрыться (что здесь, что в теме unstoppeble exe) легко можно зайти в тупик.
Надо изобретать этот, как там в Alpha Centauri говорилось... А вот: Алгоритм охоты на охотников, то есть в данном случае прибивать DrWeb :D
Изображение

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 28.12.2005 (Ср) 21:51

5. DrWeb орёт - "подозрение на вирус!!!" ->"мочить \ не мочить"

У меня такой же случай был, все прогу перерыл все равно Dr.Web пишет Backdoor. Как понял именно из-за таблицы импорта.
Все решилося вызовом ф-ции ShellExecute через GetProcAddress ...
الفيجوال بيسك الرابح

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Сообщение xenomorph » 28.12.2005 (Ср) 22:38

2: GM
А можно пример єтой радости?
т.е. GetProcAddress даёт адресс процедуры -
а как это вызвать???
--
Скажу огромное спасибо за код 8-)!
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 28.12.2005 (Ср) 22:46

Помню GSerg выкладывал пример в проектах. А я выложу то что юзал в своей проге.
Вложения
APIByName.rar
(3.05 Кб) Скачиваний: 112
الفيجوال بيسك الرابح

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

re

Сообщение xenomorph » 29.12.2005 (Чт) 10:07

EPM - Entry Point Modification (?) ...
Евристика Доктора Вэба не спалит? ...
Объясни на пальцах как это делать пожалуйста!
(если можно - то подетпаьнее 8-)...)
--
ИМХО это не сильно гуд - т.к. если у АВ антиэвристика будет на высоте - т.е. факт изменения Т.В. он засечёт ИМХО ничё харошего из этого не выйдет - но пожжалуйста - я буду ооочнь признателен за технологию! - КАК это сделать 8-).
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 02.01.2006 (Пн) 15:26

xenomorph, не знаю как сейчас, но в 3-5 мес. назад версии от heuristики WeбA помогал вынос вызовов "подозрительных" Api в отдельные Sub'ы. Отлично шло для Данилова, как и для Каспера :)
----

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

re

Сообщение xenomorph » 03.01.2006 (Вт) 18:15

2 Flex:
Sorry - у меня такая привычка 8-).
Буду исправляться!

Да и напиши как-нить прогу -
ентри-пойнт модификатор.
Полезняшка выйдет!
--

Хух ... нервов потрепало :-),
Я ещё троян не дописал -
а он уже детектится.
Во облом да? ...
И чё, - Дк.Вэб это оказываеться не на
ветер выброшеные деньги?
LOL!

Вопстчем - как я это решил ...

1. Обнаружил АПИ, к. доктор не переваривает:
ReadProcessMemory.
Что итнтересно - к WriteProcessMemory - он абсолютно равнодушен,
а вот ReadProcessMemory - его просто повергает в тихий ужас 8-).

Как её не объявляй -
Private Declare
Public Declare
... и в модулях и в классах и в контролах -
всё равно детектит (!).

2. Я попытался "разбавить" таблицу импорта введя 10 процедур
с подомным именем (5 - до по алфавиту, и 5 - после):
так:

Public Declare Function ReadPrinter Lib "winspool.drv" Alias "ReadPrinter" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pNoBytesRead As Long) As Long
Public Declare Function ReadFileEx Lib "kernel32" Alias "ReadFileEx" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpOverlapped As OVERLAPPED, ByVal lpCompletionRoutine As Long) As Long
Public Declare Function ReadFile Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long
Public Declare Function ReadEventLog Lib "advapi32.dll" Alias "ReadEventLogA" (ByVal hEventLog As Long, ByVal dwReadFlags As Long, ByVal dwRecordOffset As Long, lpBuffer As EVENTLOGRECORD, ByVal nNumberOfBytesToRead As Long, pnBytesRead As Long, pnMinNumberOfBytesNeeded As Long) As Long

Public Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

Public Declare Function RealizePalette Lib "gdi32" Alias "RealizePalette" (ByVal hdc As Long) As Long
Public Declare Function Rectangle Lib "gdi32" Alias "Rectangle" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Declare Function RectInRegion Lib "gdi32" Alias "RectInRegion" (ByVal hRgn As Long, lpRect As RECT) As Long
Public Declare Function RectVisible Lib "gdi32" Alias "RectVisible" (ByVal hdc As Long, lpRect As RECT) As Long
Public Declare Function RedrawWindow Lib "user32" Alias "RedrawWindow" (ByVal hwnd As Long, lprcUpdate As RECT, ByVal hrgnUpdate As Long, ByVal fuRedraw As Long) As Long

Ну само собой я менял их местами и выносил в разные модули -
0 по фазе - детектит (!)

3. Попробывал её вызвать через динамический вызов -
без обявления явно - ТОТ ЖЕ РЕЗУЛЬТАТ!

Я оффигел - во Доктор даёт да?

Я честно не верил что он анализирует файл на наличие строки:
(я с трудом представляю КАК ТАК можно ловить вирусы 8-ХХХ)

Вот что в результате:

'-----------------------------< покусано >------------------------------
'Direct API Call: (Is Detected by Dr.Web)
'Call ReadProcessMemory(pi.hProcess, ByVal context.Ebx + 8, addr, 4, 0)
'-----------------------------< покусано >------------------------------
;NOT Detected Mod:

Dim p1 As Long
Dim p2 As Long
'Dim K As String
Dim RPM As String

p1 = pi.hProcess
p2 = context.Ebx + 8

'Detected Calls:
'RPM = Trim(" ReadProcessMemory")

'Undetected Calls:
'RPM = "Read" & "Process" & Trim(" Memory")
RPM = Trim(" R" & "eadProcessMemory")

Call CallApiByName("kernel32.dll", _
RPM, _
p1, _
p2, _
VarPtr(addr), _
4, _
0)
'-----------------------------< покусано >------------------------------
Делайте выводы ...
Если честно - то экристика на высоте ...
8-).
--
Всем пасибо!
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 04.01.2006 (Ср) 0:34

Хех, вспомнил у меня та же трабла была, я в файле просто написал
"Shell" + "Execute", и все заработало.
الفيجوال بيسك الرابح

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Сообщение xenomorph » 04.01.2006 (Ср) 15:32

:P
2 GM 8-) А раньше - сказаить не мог Ж-)))
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

Adam Smith
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 25.04.2008 (Пт) 9:04
Откуда: ЧР. Грозный

Re: Борьба с ложным срабатыванием антивируса.

Сообщение Adam Smith » 28.12.2012 (Пт) 16:01

Легко они тогда отделались.

Сейчас всё сложнее.

8 из 46 или 6 из 46, но авира гнида популярная, битдэфэндэр тоже говорят рулит.

И че делать ума не приложу.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Борьба с ложным срабатыванием антивируса.

Сообщение Хакер » 28.12.2012 (Пт) 16:06

Adam Smith, постинг в темы, обсуждение которых давно закончилось — это некрофилия, наказуемое деяние.
В данном случае, постинг в тему, обсуждение которой закончилось 7 назад, это злостная некрофилия.

В следующий раз будешь наказан.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 34

    TopList