Предлагаю новую тему для разговора - вирусологию
-
на свободном хостинге захостить страницу, туда и выложить, либо на фтп каком-нибудь и ссылку сюда
И так после трёх или двух дней почти непрерывного мучения я написал самую первую пре- версию своего антивируса.
Эта версия умеет открывать файлы (пока нужно писать руками путь к файлу, т.е. сканит по одному файлу) и эвристически в любом месте файла находит вредоносный код. Умеет обходить такие уловки, как втыкание пустых команд типа NOP; JMP $+2 и ещё кое-что. НО ЭТО В ТЕОРИИ! На практике я старательно всё написал, проверил, скомпилил, запустил, пробую загрузить файл в память, грузиться, запускаю процедуру сканирования, но орган мне, а не мясо... Вылетает с исключением 0D. Отладка показала (Мне пришлось научиться пользоваться отладчиком mtdbg!), что вся хрень в коммандах вида mov al,byte [ebx] ; mov al,byte [load_offset + ecx] ; cmp al,byte [edx] и т.д.
Но без побайтного сравнения я не могу реализовать эвристику. Что делать???
Эта версия умеет открывать файлы (пока нужно писать руками путь к файлу, т.е. сканит по одному файлу) и эвристически в любом месте файла находит вредоносный код. Умеет обходить такие уловки, как втыкание пустых команд типа 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?), например мой любимый NAV, к виндовозной версии которого прилагается досовая.
т.е. от сканера уже решил отказаться и писать монитор?
зря, зря...
зря, зря...
Если хочешь скачать последнюю официальную версию под Windows,Linux и ещё какие-то системы - иди на http://dosbox.sourceforge.netкстати, где скачать последний DOSBOX?
Портированная под 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
Спасибо за ссылку, большое.
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
Вас понял.
OK
У меня плохая новость - с ~3 до ~10(или 14) марта я буду в Краснодаре (в общем не дома) и не смогу продолжать своё неблагодарное дело, потом до конца марта тоже буду где-то (ещё точно не знаю где, а почему вынужден бывать в других городах не скажу, всем смешно будет(??)). В общем я не сбегаю и не говорю, что ничего делать не буду, я лишь вынужден временно покинуть кодинг. В самом лучшем случае продолжу 10 марта, в самом худшем 2 апреля.
(По написании этих строк злобная часть меня представила такую картину - весь форум с радостью кричит:"Ура! Минимум неделя без этого флудераста!")
P.S. Почему вы так не любите досовые антивирусы???
P.P.S. С грустью смотрю - чем новее ядро, тем больше тормозят все программы. Для многих программ скорость опустилась до такой степени, что не понятно: прога зависла или так тормозит.
(По написании этих строк злобная часть меня представила такую картину - весь форум с радостью кричит:"Ура! Минимум неделя без этого флудераста!")
P.S. Почему вы так не любите досовые антивирусы???
P.P.S. С грустью смотрю - чем новее ядро, тем больше тормозят все программы. Для многих программ скорость опустилась до такой степени, что не понятно: прога зависла или так тормозит.
Nable
Я тут самый болтливый, особенно по количеству постов.
Нефига ты мой рекорд не побил!Ура! Минимум неделя без этого флудераста!
Я тут самый болтливый, особенно по количеству постов.
Они плохо обновляют вирусные базы, вернее редко, если вообще обновляют.P.S. Почему вы так не любите досовые антивирусы???
Не замечал, может потому, что постоянно сижу на A64-3000. Но вроде на Cyrix 233 все быстрее работает, чем раньше, хотя за самые последние версии поручиться не могу. А в чем конкретно выражается?С грустью смотрю - чем новее ядро, тем больше тормозят все программы. Для многих программ скорость опустилась до такой степени, что не понятно: прога зависла или так тормозит.
А с чего смешно-то? Вон у меня многие знакомые ездят по разным городам за аниме, и ничего... Просто это у вас анлим почти нормальный есть, а у нас в Кр-ре - нет...Nable wrote:а почему вынужден бывать в других городах не скажу, всем смешно будет(??)
А почему не скажешь?
Колись давай!
to Mario79
1Вы хоть по делу посты создаёте+с огромными размышлениями на великом русском (вроде нематерном, хотя...) на тему Ville, лидерства и проч. А вообще у меня самомнение на уровне земного ядра (в смысле такое низкое), вот и думаю, что без меня миру станет лучше... (Забейте на мою философию, я маленько сошел на лирические отступления)
2Антивирусные базы NAV (на который я раскошеливаюсь лицензионный) обновляются все и сразу
3У меня CeleronA-374MHz\98m ram\ поэтому чувствуется каждая мелочь (а год назад был 80386DX-40+80387+8m ram и было совсем весело)
1Вы хоть по делу посты создаёте+с огромными размышлениями на великом русском (вроде нематерном, хотя...) на тему Ville, лидерства и проч. А вообще у меня самомнение на уровне земного ядра (в смысле такое низкое), вот и думаю, что без меня миру станет лучше... (Забейте на мою философию, я маленько сошел на лирические отступления)
2Антивирусные базы NAV (на который я раскошеливаюсь лицензионный) обновляются все и сразу
3У меня CeleronA-374MHz\98m ram\ поэтому чувствуется каждая мелочь (а год назад был 80386DX-40+80387+8m ram и было совсем весело)
Who is online
Users browsing this forum: Ahrefs [Bot] and 1 guest