Перейти к содержанию
vpv

Возможно ли самостоятельно разработать антивирус

Recommended Posts

Vad
Немного мыслей по поводу ИТ и ИБ в России

http://habrahabr.ru/post/171301/

так оно всё и есть. А ещё есть такое, когда заказывается у подрядчика разработка, выделяются деньги как будто на полноценный продукт, ЦЕЛЕНАПРАВЛЕНО делается фуфло по себестоимости недельной работы. Главное, чтобы не зависла при запуске. После приёмки проекта деньги делятся между главным конструктором АСУ и гендиректором фирмы-разработчика.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Petuya

Продолжаю постить самые интересные моменты иммунитета. Что происходит, когда мы нажимаем кнопку сканирование?

Сначала дропается дроппер (опять немецкий). На этот раз он, видимо, хочет какой-то пароль, но дропы в его теле не зашифрованы, поэтому их можно просто сдампить. А можно во время сканирование порыться во временных папках (C:\Users\<USER_NAME>\AppData\Local\Temp\DABB.tmp\ или вроде того) и найти там 5 файлов.

1) Form.exe - приложение. Является пустышкой. Показывается на время построения списка сканируемых файлов (все заметили, как окно подменяется через секунду?)

2) Батник scan.bat

@echo offsetlocal enabledelayedexpansionchcp 1251>nulstart Form.exeset a1="%1"for /f "tokens=4* skip=2" %%a in ('reg query "HKEY_CLASSES_ROOT\*\shell\Иммунитет: Проверить на вирусы\command"') do (set y=%%a)set y=%y:~1,-9%set x=%0set x=%x:~1,-9%copy "%y%System\Scan.cpp" "%x%Scan.cpp"copy "%y%base.dll" "%x%base.dll"::if "%a1:~0,2%"=="~0,2" goto :endset b=%a1:~1,-1%dir /a-d /b /s "%b%" >scanftaskkill /f /im Form.exe"Scan.exe"del /f Scan.exedel /f Form.exedel /f Scan.cppdel /f base.dllmove scanx "%y%viruslist.ini"exit:endecho Программа не может быть запущена в режиме standalone^! 1>notepnotepad notep

Как видно, он показывает форму-пустышку, строит в файле scanf список файлов для сканирования и запускает Scan.exe, убивая пустышку.

3) Scan.exe - сам "сканер", вместе с формой.

4) scanf - список файлов для сканирования. Примечательно, что сканирование можно остановить найдя этот файл и удалив все содержимое.

5) scanx - результат сканирования.

Теперь смотрим код сканера:

Private Sub Timer1_Timer() '450218  'Data Table: 42DEA8  Dim var_8C As String  Dim var_A8 As Variant  Dim var_94 As Long  Dim var_90 As Long  Dim var_B8 As Variant  Dim var_DC As Variant  Dim var_96 As Integer  Dim var_2D8 As Variant  loc_44FBE4: Timer1.Enabled = &H0  loc_44FBFB: var_8C = scca.Text  loc_44FC12: If (CDbl(var_8C) = CDbl(&H10000)) Then  loc_44FC1D:   Me.Caption = "Иммунитет: Полное сканирование файлов"  loc_44FC22: End If  loc_44FC31: var_8C = scca.Text  loc_44FC46: If (CDbl(var_8C) = CDbl(4096)) Then  loc_44FC51:   Me.Caption = "Иммунитет: Частичное сканирование файлов"  loc_44FC56: End If  loc_44FC5D: Me.Enabled = &H0  loc_44FC75: vir.Caption = CStr(&H0)  loc_44FCB5: SendMessage(CLng(var_88.??@??@??@), &H409, &H0, &HFF0000)  loc_44FCC3: On Error Goto 0  loc_44FCCF: Open "scanx" For Output As &H5 Len = &HFF  loc_44FCDC: Open "scanf" For Input As &H2 Len = &HFF  loc_44FCEA: var_94 = FileLen("scanf")  loc_44FCED: ' Referenced from: 4500C4  loc_44FCF7: If Not(EOF) Then  loc_44FD04:   LineInput &H2, Me.global_56  loc_44FD19:   var_90 = ((var_90 + Len(Me.global_56)) + &H2)  loc_44FD3A:   arg_5CVar(((CDbl(var_90) / CDbl(var_94)) * CDbl(&H64))).???????B????? = var_88  loc_44FD68:   arg_1CVar(CStr(((CDbl(var_90) / CDbl(var_94)) * CDbl(&H64))) & ").???????B????? = var_88  loc_44FD90:   arg_1CVar("Проверяется файл:" & Me.global_56).???????B????? = var_88  loc_44FDC0:   var_DC = CVar(CStr(var_88.??@??@??@??@??@) & "Файл:" & Me.global_56) 'String  loc_44FDCE:   var_205.MemConst_FFFF = var_E0  loc_44FE14:   Text6.Caption = CStr((CDbl("".label.Caption) + CDbl(&H1)))  loc_44FE31:   var_96 = FreeFile  loc_44FE4B:   If Not((push FileLen(Me.global_56) = &H0)) Then  loc_44FE5B:     Open Me.global_56 For Binary As var_96 Len = &HFF  loc_44FE8C:     Me.global_68 = CStr(Input(CLng(scca.Text), var_96))  loc_44FEAE:     var_A8 = compet(Me.global_68)  loc_44FEC7:     If Not((Me.global_64 = "")) Then  loc_44FFC2:       var_2D8 = CVar(CStr(CVar(CStr("".??@??@??@??@??@) & "(cHex:") & Hex(CVar(Asc(CStr(Mid$(Me.global_68, &H1, 2))))) & "" & Hex(CVar(Asc(CStr(Mid$(Me.global_68, &H2, 2))))) & "" & Hex(CVar(Asc(CStr(Mid$(Me.global_68, &H3, 2))))) & ") -" & CVar(Me.global_64))) 'String  loc_44FFD0:       var_205.MemConst_FFFF = var_E0  loc_450016:     End If  loc_450016:   End If  loc_45003A:   If Not(("".Number = &H0)) Then  loc_450058:     var_DC = CVar(CStr("".??@??@??@??@??@) & vbCrLf) 'String  loc_450066:     var_205.MemConst_FFFF = var_E0  loc_45007C:     GoTo loc_4500C0  loc_45007F:   End If  loc_45009C:   var_DC = CVar(CStr("".??@??@??@??@??@) & vbCrLf) 'String  loc_4500AA:   var_205.MemConst_FFFF = var_E0  loc_4500C0:   ' Referenced from: 45007C  loc_4500C4:   GoTo loc_44FCED  loc_4500C7: End If  loc_4500CB: Close &H2  loc_4500D1: Close &H5  loc_4500E5: arg_1"Готово".???????B????? = ""  loc_4500FF: arg_1"100%".???????B????? = ""  loc_45012B: arg_5CVar(CDbl("".????????)).???????B????? = var_E0  loc_45014E: var_8C = CStr("".??@??@??@??@??@)  loc_45015F: If (var_8C = "") Then  loc_450164:   var_B8 = "Опасных объектов не обнаружено!"  loc_450174:   var_205.MemConst_FFFF = ""  loc_45017C: End If  loc_45018D: var_8C = "".label.Caption  loc_4501A1: If (CDbl(var_8C) = CDbl(&H0)) Then  loc_4501B3:   vir.Caption = "не обнаружено!"  loc_4501CC:   vir.Forecolor = &HFF0000  loc_4501D4: End If  loc_4501D8: var_B8 = "Проверка завершена!"  loc_4501E8: arg_1var_B8.???????B????? = ""  loc_4501FE: var_B8.Timer.Enabled = &H0  loc_45020D: Me.Enabled = &HFF  loc_450214: Exit SubEnd Sub

Видимо, отличие глубокого и неглубокого сканирования заключается в соответствующей надписи.

Теперь метод complet:

Public Function compet(txt) '44F26C  'Data Table: 42DEA8  loc_44F0D4: If (txt = "MZ*") Then '44F0EE  loc_44F0E7:   Me.global_64 = Me.global_64 & "Приложение;"  loc_44F0EE: End If  loc_44F0F6: If (txt = "UPX*") Then '44F110  loc_44F109:   Me.global_64 = Me.global_64 & "Упакован UPX;"  loc_44F110: End If  loc_44F118: If (txt = "Rar!*") Then '44F132  loc_44F12B:   Me.global_64 = Me.global_64 & "Архив RAR;"  loc_44F132: End If  loc_44F13A: If (txt = "ID3*") Then '44F154  loc_44F14D:   Me.global_64 = Me.global_64 & "Файл MP3;"  loc_44F154: End If  loc_44F15C: If (txt = "BM*") Then '44F176  loc_44F16F:   Me.global_64 = Me.global_64 & "Рисунок BMP;"  loc_44F176: End If  loc_44F17E: If (txt = "‰PNG*") Then '44F198  loc_44F191:   Me.global_64 = Me.global_64 & "Рисунок PNG;"  loc_44F198: End If  loc_44F1A0: If (txt = "GIF*") Then '44F1BA  loc_44F1B3:   Me.global_64 = Me.global_64 & "Рисунок GIF;"  loc_44F1BA: End If  loc_44F1C2: If (txt = "яШя*") Then '44F1DC  loc_44F1D5:   Me.global_64 = Me.global_64 & "Рисунок JPG;"  loc_44F1DC: End If  loc_44F1E4: If (txt = "РП*") Then '44F1FE  loc_44F1F7:   Me.global_64 = Me.global_64 & "Документ DOC;"  loc_44F1FE: End If  loc_44F206: If (txt = "DF*") Then '44F220  loc_44F219:   Me.global_64 = Me.global_64 & "Документ PDF;"  loc_44F220: End If  loc_44F228: If (txt = "PK*") Then '44F242  loc_44F23B:   Me.global_64 = Me.global_64 & "Архив ZIP;"  loc_44F242: End If  loc_44F24A: If (txt = "RIF*") Then '44F264  loc_44F25D:   Me.global_64 = Me.global_64 & "WAV контент;"  loc_44F264: End If  loc_44F264: Result = arg_10: Exit SubEnd Function

Вот что значит его хваленое "сканирование по заголовку"? Оригинально. Если срабатывает какой-то из "вердиктов" - он дописывается к имени файла в логе сканирования, вместе с несколькими HEX-байтами. Пример:

Файл: C:\Users\Anton\1234.zip (cHex: 50 4B 3) - Архив ZIP;Файл: C:\Users\Anton\NTUSER.DAT (cHex: 50 4B 3) - Архив ZIP;Файл: C:\Users\Anton\ntuser.dat.LOG1 (cHex: 50 4B 3) - Архив ZIP;

(Да-да, при невозможности открытия файла он тупо присваивает ему предыдущий вердикт).

По коду видно, что нигде нет вывода в scanx (результат), а также не может быть выведено чего-либо кроме "Опасных объектов не обнаружено!".

Возвращаясь к ГУИ. Особенно доставляет функция сканирования оперативной памяти:

Private Sub UserControl12_ '566E5C  'Data Table: 422148  loc_566E49: MsgBox("Проверка оперативной памяти уже была запущена на уровне службы " & Chr(34) & "Антивирус Иммунитет" & Chr(34) & ". Повторный запуск невозможен во время выполнения первого.", &H30, "Внимание!", var_E4, var_104)  loc_566E59: Exit SubEnd Sub

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vad
Бида бида. Если бы он осилил чуть больше, чем эта красивая легенда, то знал бы о чем в статье речь.

2Бабушкин: Срочно три со стены это позорище, лол. Сначала прочти о чем пишут в статье и пойми её смысл.

Так вот откуда эта идея у г-на Бабушкина :facepalm: . Алёша, я знаю, ты читаешь тему :) Тебе опять надо стирать написанное. Речь в твоей ссылке идёт о восстановлении данных, а не об архивации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Petuya

Опечатка. Дроппер не дропается, а запускается.

И кстати, интересно. Почему у него сканирование 64кб ассоциируется с ПОЛНЫМ сканированием файла?:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Petuya

UPD: в конфиге переключатель между частичным и полным сканированием файла ни на что не влияет. Сканирование всегда идет частичное. При этом если сигнатурка ухала на 1 байт от начала файла - она уже не распознается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vad
про то что идею архивации он тоже украл, тоже уже писали в топике ;) ...
...По словам разработчика системы, выпуск первой коммерческой версии "Архиватора Лыщенко 1.0" намечен на середину 2004 года...
Ну раз Лыщенко просрочил с выпуском своего коммерческого архиватора будем ждать Архиватор Бабушкина. А про авторство идеи он (Бабушкин) не заявлял вроде.

У меня как раз проблемы с местом на диске. Но дополнительный покупать не буду, лучше подожду, когла Алексей сделает архиватор.

К этому времени Владислав (Лыщенко) намерен снабдить программу современным пользовательским интерфейсом и решить небольшую, но пока не решенную, проблему разархивации данных, упакованых этим методом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
teaspammer
Опечатка. Дроппер не дропается, а запускается.

И кстати, интересно. Почему у него сканирование 64кб ассоциируется с ПОЛНЫМ сканированием файла?:)

http://stud-forum.ru/catalog.aspx?CatalogI...&DocId=2970

Проверять файлы не по всей структуре, а только по заголовку и точке входа, включая OEP

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Petuya

Во-первых, OEP не обязана входить в первые 64кб. Оно запросто может быть где-то в конце файла (часто так и бывает).

Во-вторых, она даже эти 64кб толком не сканирует. Он проверяет из них первые 2-4 байта. Хотя считывает из файла действительно 64кб.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ARCHANGEL
Во-первых, OEP не обязана входить в первые 64кб. Оно запросто может быть где-то в конце файла (часто так и бывает).

Во-вторых, она даже эти 64кб толком не сканирует. Он проверяет из них первые 2-4 байта. Хотя считывает из файла действительно 64кб.

Мы видим это из ваших листингов. Было бы прекрасно, если б описали подробнее начало с дроппером и избавили бы меня от необходимости ресёрча этого куска, тогда я б его скопипастил бы в черновик, и можно было б продолжать.

А так - ну, мы ж уже поняли, что это УГ, а не антивирус, так чему вы удивляетесь? Хотя... я вот несколько раз пересматривал видео с Бабушкиным, и каждый раз удивляюсь, неужели не нашлось кого-то, кто бы подошёл к нему и снисходительно произнёс: "Шарик, ты балбес!".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
spirit

Спасибо за ваш анализ, с интересом наблюдаю за темой. Есть предложение, которое должно помочь журналистам разобраться в документе и облегчить написание разоблачительных статей :) Предлагаю в начале документа сделать краткие выводы из анализа, написанные простым языком в формате "<заявленная фича>: <краткий вывод о ее (не)работоспособности>".

Например:

Полное сканирование файлов:Не выполняется. Программа анализирует только несколько байт в начале файла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
spirit

Немного подправленый пример:

Полное сканирование файлов:Не выполняется. Программа анализирует только несколько байт в начале файла. Этого недостаточно для обнаружения вируса в абсолютном большинстве случаев.
Отредактировал spirit

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
priv8v

подскажите Бабушкину: нужно проверять первые два байта на предмет их равности MZ :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vad

Флэшка-маркер тоже украдена тынц

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
JIghtuse
Флэшка-маркер тоже украдена тынц

:facepalm: просто талант. Я думал, что хоть это на самом деле "изобрёл".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Раджа
:facepalm: просто талант. Я думал, что хоть это на самом деле "изобрёл".

Дык он же улучшил и расширил. :D У Лёхи оно вроде как на бумаге еще писать собиралось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Kapral

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
vpv

Фееричный дол***б... Раз у меня скачивает с вирусом, то это все подсунули злые дядьки! А то что у меня с сайта автора, с таким же вердиктом скачивалось никого не волнует.

Троль он какой-то. А может сам Бабушкин.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
teaspammer

Намеренно троллит для трафика на свой блог

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Kapral
Намеренно троллит для трафика на свой блог

Не знаю, не знаю

Лично для меня - выдвигать себя таким "Пастернака не читал, но осуждаю" было бы западло

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexxSun
...... Троль он какой-то. А может сам Бабушкин.

Ну, это вы подзагнули, это точно не Бабушкин. Он в инфе «Обо мне» честно даёт инфу про себя. Просто сочувствующий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Admiral

Этот Иван Шипилов пишет статьи, почитав которые хочется автора кое куда послать если честно! И все больше я думаю что он или пишит их для повышения рейтинга своего сайта или ему проплаченно!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexxSun

Да по ссылке прочитайте внимательно:

После того, как встретился с Антоном, мы 3 часа бегали под дождем по Иркутску
Уж не знаю, наверное это везение или сказалась стрессовая ситуация, но вел я машину уверенно как никогда. Мы благополучно добрались до Байкала

Здесь может быть всё намного проще — он может быть лично знаком с сабжем этой темы ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
teaspammer

Admiral

ты только, что повысил ему цитируемость

Бабушкин - тру металлист

2884231362304668250_1_.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

  • Сообщения

    • demkd
      ---------------------------------------------------------
       4.15.3
      ---------------------------------------------------------
       o Добавлен новый модуль uvsv для систем не младше Vista.
         Признаком его работы является номер версии uVS c буквой v на конце: 4.15.3v.
         Модуль позволяет получить более четкие шрифты при активном масштабировании.
         На системах младше Vista будет работать обычная версия 4.15.3.

       o Выбранный шрифт теперь применяется и к меню.

       o Добавлена подстройка размеров списка под размер шрифта в окне активности процессов.
         Улучшена функция сортировки процессов по загрузке GPU.

       o Добавлена подстройка размеров списка под размер шрифта в окне удаления программ.

       o Добавлена подстройка размеров списка под размер шрифта в окне списка сохраненных компьютеров.

       o На основе полученных дамп-файлов выявлены и исправлены ошибки:
         o Исправлена критическая ошибка в файле английской локализации (файл lclz).
         o Исправлена потенциальная критическая ошибка при попытке загрузки поврежденного файла сигнатур.
       
    • Ego Dekker
      Домашние антивирусы для Windows были обновлены до версии 17.1.11.
    • Ego Dekker
    • PR55.RP55
      .xml  файлы taskschd.msc Могут быть подписаны  цифровой подписью. Думаю будет нелишним, если uVS будет это фиксировать. т.е. проверять не только подпись целевого файла, но и подпись самого файла\задачи. и писать в ИНфО .  
    • demkd
      ---------------------------------------------------------
       4.15.2
      ---------------------------------------------------------
       o Исправлена ошибка при работе с образом автозапуска.
         Для некоторых процессов команда unload не добавлялась в скрипт при нажатии кнопки "принять изменения".  o Добавлена плашка окна на таскбаре для окна удаленного рабочего стола.
         (при работе с удаленной системой) -----------------------------------------------------------
      Есть проблема с локализацией глюка в редких случаях приводящему к аварийному завершению uVS при активном флаге "Проверять весь HKCR".
      На основе дампов его найти не получается, нужна копия реестра системы с такой проблемой, если кому-то попадется такая проблема, то присылайте архив с копией реестра системы мне на почту.  
×