Wirusy DOS-owe
Uwagi ogólne
DOS jest systemem bardzo podatnym na działanie wirusów. Nie ma w nim żadnych
zabezpieczeń. Dowolny proces ma dostęp do wszystkich plików i
sektorów na dysku. Wirusy mogą się bez przeszkód rozmnażać. Infekowane są pliki:
.exe, .com, .sys, .obj i inne.
Szczegółowy opis działania wirusów DOS-owych znajduje się w
książce A. Dudka "Jak pisać wirusy".
Wirusy zarażające pliki wykonywalne w postaci absolutnej (.com)
Programy w postaci absolutnej rozpoczynają działanie zawsze spod adresu
PSP:100H (PSP - Program Segment Prefix). Aby taki plik zainfekować
wystarczy:
- Dopisać kod wirusa na końcu pliku.
- Obliczyć punkt startu wirusa w tym pliku.
- Zapamiętać pierwsze trzy bajty pliku (jeśli po wykonaniu kodu wirusa
ma się wykonać kod nosiciela).
- Wpisać na początku pliku skok pod adres 100H + punkt_startu_wirusa.
Wirus wraz z nosicielem musi mieścić się w jednym segmencie (64K).
Wirusy zarażające pliki wykonywalne w postaci przemieszczalnej (.exe)
Pliki w postaci przemieszczalnej rozpoczynają się od nagłówka. Są w nim
zawarte m.in. informacje o punkcie startowym programu. Aby taki plik
zainfekować wystarczy:
- Dopisać kod wirusa na końcu pliku.
- Obliczyć punkt startu wirusa w tym pliku.
- Zapamiętać nagłówek programu (jeśli po wykonaniu kodu wirusa ma się
wykonać kod nosiciela).
- Zmodyfikować nagłówek tak by początek programu rozpoczynał się od
kodu wirusa.
Wirusy sektora startowego
Równie łatwo w DOS-ie można zainfekować boot sector. Najczęściej spotykane
wirusy sektora startowego są także rezydentnymi wirusami plikowymi.