Jak napisać skaner silnika antyvirusowego

0

Witam,

Mam pytanie jak napisać dobry skaner antyvirusowy. Chodzi mi o to jak efektywnie sprawdzać czy dany plik zawiera kod wirusa ?
Jak tworzyć efektywną bazę sygnatur?

0

Co do efektywnego wyszukiwania to Ci nie pomogę, nie wiem w sumie, czy jest otwierany prawie każdy plik (antywirusy zazwyczaj omijają avi, mp3 itd) i przeszukują cały plik w poszukiwaniu jakiegoś fragmentu kodu zawartego w sygnaturze, nie wiem również jak robić to wydajnie, ale chętnie się dowiem. :)

Co do baz wirusów, to z tego co pamiętam z kiedyś przeczytanego artykułu kasperskiego (wiadmo, że wszystkich szczegółów nie podadzą), u nich baza wyglądała tak, że była tabela, w której w jednej kolumnie (powiedzmy VirusDefinition) był kawałek unikalnego do każdego wirusa kodu (nie wiem czy w postaci binarner , czy w postaci szestnastkowej, czy w innej), zaś w prawej kolumnie np. Repair, był kod w ich języku skryptowym (ponoć coś ala python), którego zawartość miała usunąć / zniwelować działanie wirusa. Antywirus przeszukuje, czy w np. jakasBiblioteka.dll znajduje się jakiś kod kawalka virusa, jeśli tak to uruchamiał skrypt naprawiający.

0

a ma ktoś może jakieś linki do artykułów na ten temat?

0

**Proszę ** - dzięki ci za ten artykuł.

0

kilkanaście lat temu mógłbym być bogaty tworząc własnego antyvira - a dzisiaj konkurencja jest ogromna. Na rynku istnieje masa programów antyvirusowych. Czy w takim razie jest sens tworzyć własnego antyvira?

0

Jak możesz i nie chcesz zakładać konta, to pisz chociaż wszystko pod jednym nickiem - będzie łatwiej :)

Akurat wyżej podanego artykułu od kasperskiego nie widziałem, a sam wcześniejszą wypowiedź wzorowałem na innym, pamiętam tylko to, że temat artykułu na miał coś związanego z sztuczną inteligencją w kasperskim... nieważne :) - ten art jest lepszy.

Co do tego czy jest sens czy nie. To nie jest takie łatwe, trzeba dobrze przeanalizować rynek, ale ogólnie wg mnie sens jest zawsze. Dobry soft i dobra reklama = sukces, choć czasami dobra reklama = sukces ;)

Jednak....

To nie jest takie łatwe, jeśli chcesz komuś sprzedać produkt, to musisz chociaż w małym stopniu zagwarantować mu takie rzeczy jak skuteczność, brak zamieszania w systemi (np. usuwanie plików windows), aktualizacje.

Ogólnie wg mnie, sam czy w nawet 10-15 os zespole nie jest się w stanie zrobić dobrego antywirusa. W tej kategori, jak zresztą w każdej innej, trzeba być bardzo na czasie. Wydawać szybko aktualizacje, zbierać informacje o nowych zagrożeniach, implementować nowe algorytmy itd. To wszystko wymaga ogromnej wiedzy, dobrych, doświadczonych specjalistów, z różnych dziedzin, a oni się cenią. Koszty produkcji antywirusa wg mnie są ogromne, ale oczywiście sam nic nigdy takiego nie tworzyłem i nie jestem ekspertem.

Mam nadzieję, że sam sobie odpiszesz na Twoje pytanie.

Co do tematu, to chętnie był poczytał inne artykuły na temat antywirusów, ogólnie bardzo ciekawi mnie sposób sprawdzania danych. Bazy antywirusów teraz są ogromne, jak przeskanować plik i sprawdzić wszystkie sygnatury i to w niezłym czasie. Osobiście to mi najbardziej imponuje, ogromne przetwarzanie danych, choć pewnie za tym stoi sztab ludzi od algorytmów.

0

Można zbudować np Automat skończony, zastosować Algorytm Aho-Corasick lub nawet zastosować metody probabilistyczne np Algorytm Karpa-Rabina czy Filtr Blooma do wstępnego odsiania. Te ostatnie może nawet nadają się do implementacji na GPGPU.

0

Po co chcesz pisać antywirusa? Masz tu źródła Kasperskiego 2008 http://thepiratebay.org/torrent/6132242 przerób i wydaj pod inną nazwą :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1