62
Na tym zakończyliśmy przegląd głównych procedur, z których składają się typowe wirusy. Oczywiście każda z tych procedur może zostać napisana zupełnie inaczej i tylko od Ciebie zależy jak będzie wyglądać, ważne tylko aby spełniała mniej więcej takie same funkcje, jak te przedstawione powyżej.
Skonstruowanie wirusa z tych procedur nie powinno stanowić problemu. Po prostu zapis z poszczególne procedury jedna po drugiej, zaczynając od tablicy^partycji, zaś na końcu dołącz coś w tym stylu:
instaluj:
cali zarazenie_tablicy_partycji;lub cali zarazenie_pliku
mov ax,4CH
int 21H
koniec: end instaluj
Najprostszą metodą zabezpieczenia się przed wirusami jest korzystanie tylko i wyłącznie z oryginalnych programów. Dyskietki firmowe nie powinny zawierać żadnych wirusów, a jeśli już jakiś się zdarzy, to firma, która sprzedaje program musi wyrównać wszelkie straty powstałe przez wirusa. Korzystanie z dyskietek z wszelkich innych źródeł niesie za sobą ryzyko zarażenia komputera. Jednak i w tym wypadku, jeśli złapiesz wirusa nie wpadaj w panikę. Wystarczy mieć zaklejone kopie zbiorów z dysku twardego, oraz dyskietkę z oryginalną zawartością tablicy partycji i bloku ładującego dysku twardego (Utworzone naprzyldad przy pomocy programu Norton Utilities), Mając takie kopie możesz być pewny, że wirus nie zniszczy żadnych cennych danych na dysku,
W przypadku zauważenia jakichkolwiek anomaliów w pracy komputera, załaduj na nowo system z zaklejonej dyskietki, co do której masz pewność, że nie jest zawirusowana. Jest to konieczne, gdyż jak pewnie już wiesz po przeczytaniu poprzedniego rozdziału wirusy, mogą stosować różne sztuczki w celu maskowania swojej obecności w systemie. Następnie porównaj zawartość tablicy partycji i bloku ładującego dysku twardego, z tymi, które znajdują się na dyskietce. Porównaj także rozmiary plików z dysku twardego i z dyskietek. Jeśli zauważyszjakiekolwiek różnice, będzie to znaczyło, ża w systemie jest wirus. Najprostszą metodą pozbycia się go jest przywrócenie oryginalnej tablicy partycji i boot sektora oraz ponowne przekopiowanie z dyskietek plików, które są zarażone. JeśJi chcesz się pobawić w pogromcę wirusów to możesz przeanalizować kod wirusa (zawsze będzie się wykonywał na początku zarażonych programów). Najważniejsza informacja, którą musisz wyciągnąć z wirusa, to adres pierwotnego punktu startu programu oraz ewentualnie oryginalne bajty początku pliku. Przywrócenie oryginalnych wartości do nagłówka i zawartości pliku unieszkodliwia wirusa (może on fizycznie zostać w pliku, ale nie uaktywniać się podczas wykonywania programu). Ostatnim krokiem może być wykasowanie tej części pliku, w której znajduje śię kod wirusa, nie jest to jednak czynność niezbędna,
To co przedstawiłem wyżej to całkowita teoria walki z wirusami. Przynajmniej w moim przypadku sprawdza się w stu procentach. Waika z każdym typem wirusa jest inna, ponieważ w każdym mogą byó zastosowane inne sztuczki. Myślę jednak, że przy każdym z nich przydadzą Ci się wiadomości z poprzedniego rozdziału.
No pewnie, łatwo powiedzieć „W przypadku zauważenia jakichkolwiek anomaliów w pracy w pracy komputera..T. Pewnie zastanawiasz się ,co ten facet od Ciebie chce i skąd masz być taki genialny żeby samemu wyczuć wirusa w swoim systemie. Otóż najprostszą metodą sprawdzania, czy wirusy nie dołączyły się do jakiegoś pliku (a co za tym idzie, czy nie ma ich w systemie) jest sprawdzenie jego sumy kontrolnej. Suma ta może być liczona na wiele sposobów. Jeden ze sposobów przedstawię poniżej. Program liczący sumę jest napisany w Turbo Pascalu. Jeśli wywołasz program bez parametrów wejściowych, to po wywołaniu pyta o nazwę zbioru. Program liczy sumę tylko dla pojedynczego zbioru. Możesz go tak zmodyfikować, żeby liczył sumę po kolei dla każdego zbioru w katalogu (lub dla każdego zbioru na dysku), a także aby zapamiętywał gdzieś (na przykład w sektorach dysku niewykorzystywanych przez system) te sumy i przy następnym przebiegu sprawdzał, czy nie zaszły jakieś zmiany.
*}
M
*}
*}
*}
*}
*}
*}
{
{
{
{
{
{
{
{
*
* Program Suma Andrzej Dudek Październik 1992
* Program liczy sumę kontrolna dla pliku, ktorego nazwa
* przekazywana jest jako parametr jego wywołania.
*
* Użycie: