Предлагаю новую тему для разговора - вирусологию

Applications development, KoOS API questions

POLL Нам нужна вирусология в МЕ|CO оси?

Total votes: 66
Да, это нужная тема.
56%
37
Нет, не надо, нам это не грозит
44%
29

  • И так после трёх или двух дней почти непрерывного мучения я написал самую первую пре- версию своего антивируса.
    Эта версия умеет открывать файлы (пока нужно писать руками путь к файлу, т.е. сканит по одному файлу) и эвристически в любом месте файла находит вредоносный код. Умеет обходить такие уловки, как втыкание пустых команд типа NOP; JMP $+2 и ещё кое-что. НО ЭТО В ТЕОРИИ! На практике я старательно всё написал, проверил, скомпилил, запустил, пробую загрузить файл в память, грузиться, запускаю процедуру сканирования, но орган мне, а не мясо... Вылетает с исключением 0D. Отладка показала (Мне пришлось научиться пользоваться отладчиком mtdbg!), что вся хрень в коммандах вида mov al,byte [ebx] ; mov al,byte [load_offset + ecx] ; cmp al,byte [edx] и т.д.
    Но без побайтного сравнения я не могу реализовать эвристику. Что делать???
  • Nable
    что вся хрень в коммандах вида mov al,byte [ebx] ; mov al,byte [load_offset + ecx] ; cmp al,byte [edx] и т.д.
    У тебя ошибка в алгоритме, скорее всего. Возможно, программа пытается считать что-либо по несуществующему адресу. Сами по себе команды глючить не будут.
  • Посмотри, что находится при этом в ebx/ecx/edx и сравни с тем, что должно быть (адрес загруженного файла, адрес образца). Если падает с исключением 0D, то адрес неверный.
  • В страшном приступе бессонницы я подумал: а нафиг писать сканер винта, если можно при запуске нового процесса сканить этот процесс, при подозрении вывести окно "Y/N?" и т.п. И вместо скана ослячьего массива данных, нужно просканить лишь десяток процессов, да и то не за один раз. При этом обеспечивается почти полная защита от вирей даже от FAT вирусов, ведь незаметно в ColibriOS ни один процесс не запустишь (система знает обо всех процессах), остаются только две уязвимости: вирусный код сжат и зашифрован в основном коде очень сложно, при запуске обнаружить невозможно, и если программа загружает с носителей куски кода в виде *.bin (нельзя проследить, что загружает прога - документ или код). Бороться с этим можно, если проверять у уже запущенных программ операции FileI/O и немногие другие потенциально деструктивные функции. Если ещё проверять операции с сокетами, то получится брандмауер, но это так, лирическое отступление. Правда нужно взаимодействовать с системой, что сложно для меня, но постараюсь.
    А для скана винта есть много досовых антивирусов (кстати, где скачать последний DOSBOX?), например мой любимый NAV, к виндовозной версии которого прилагается досовая.
  • т.е. от сканера уже решил отказаться и писать монитор?
    зря, зря...
  • кстати, где скачать последний DOSBOX?
    Если хочешь скачать последнюю официальную версию под Windows,Linux и ещё какие-то системы - иди на http://dosbox.sourceforge.net
    Портированная под KolibriOS версия 0.65 лежит на http://diamondz.land.ru/dosbox.7z
    Ушёл к умным, знающим и культурным людям.
  • OFF: хто есть Nable и есть ли он вообще?
  • to Chugumoto
    Nable is a common creature of anvil gods. Так подойдёт? Скажу честно, фразу придумал не сам, в оригинале было: 'Who am I? I'm a common creature of anvil gods.'
    Существую ли я реально вопрос для философов, а не программеров.

    От написания сканера я не отказываюсь, более того, всё остаётся на своих местах, просто сканеру пользователь говорит: проскань винт! и тот сканит. В моём варианте система говорит сканеру: пользователь хочет запустить /DRIVE/PATH/APPLICATION, разрешить? Включается сканер, проверяет файл /DRIVE/PATH/APPLICATION и отвечает "OK" или "есть риск, запросить пользователя, или "file is infected, запуску не подлежит".
    Вопрос в том, как такой обмен данными реализовать.

    to diamond
    Спасибо за ссылку, большое.
  • Дело в том, что простой сканер (без монитора) написать проще. И с него обычно все и начинается.
    К тому же если будет только монитор (в том виде как ты говоришь), то его нельзя будет использовать для лечения винтов с других систем...
    А ИМХО это очень нужно...
  • to Chugumoto
    Вас понял.
    OK
  • У меня плохая новость - с ~3 до ~10(или 14) марта я буду в Краснодаре (в общем не дома) и не смогу продолжать своё неблагодарное дело, потом до конца марта тоже буду где-то (ещё точно не знаю где, а почему вынужден бывать в других городах не скажу, всем смешно будет(??)). В общем я не сбегаю и не говорю, что ничего делать не буду, я лишь вынужден временно покинуть кодинг. В самом лучшем случае продолжу 10 марта, в самом худшем 2 апреля.
    (По написании этих строк злобная часть меня представила такую картину - весь форум с радостью кричит:"Ура! Минимум неделя без этого флудераста!")
    P.S. Почему вы так не любите досовые антивирусы???
    P.P.S. С грустью смотрю - чем новее ядро, тем больше тормозят все программы. Для многих программ скорость опустилась до такой степени, что не понятно: прога зависла или так тормозит.
  • Nable
    Ура! Минимум неделя без этого флудераста!
    Нефига ты мой рекорд не побил! :-)
    Я тут самый болтливый, особенно по количеству постов.
    P.S. Почему вы так не любите досовые антивирусы???
    Они плохо обновляют вирусные базы, вернее редко, если вообще обновляют.
    С грустью смотрю - чем новее ядро, тем больше тормозят все программы. Для многих программ скорость опустилась до такой степени, что не понятно: прога зависла или так тормозит.
    Не замечал, может потому, что постоянно сижу на A64-3000. Но вроде на Cyrix 233 все быстрее работает, чем раньше, хотя за самые последние версии поручиться не могу. А в чем конкретно выражается?
  • Nable wrote:а почему вынужден бывать в других городах не скажу, всем смешно будет(??)
    А с чего смешно-то? Вон у меня многие знакомые ездят по разным городам за аниме, и ничего... Просто это у вас анлим почти нормальный есть, а у нас в Кр-ре - нет... :(
    А почему не скажешь? :)
    Колись давай! :twisted:
  • to Mario79
    1Вы хоть по делу посты создаёте+с огромными размышлениями на великом русском (вроде нематерном, хотя...) на тему Ville, лидерства и проч. А вообще у меня самомнение на уровне земного ядра (в смысле такое низкое), вот и думаю, что без меня миру станет лучше... (Забейте на мою философию, я маленько сошел на лирические отступления)
    2Антивирусные базы NAV (на который я раскошеливаюсь лицензионный) обновляются все и сразу
    3У меня CeleronA-374MHz\98m ram\ поэтому чувствуется каждая мелочь (а год назад был 80386DX-40+80387+8m ram и было совсем весело)
  • Who is online

    Users browsing this forum: No registered users and 6 guests