Nie ma "języka do wirusów". Wirus wykorzystuje podatności w oprogramowaniu, czy to oprogramowaniu typu system operacyjny, czy to oprogramowaniu np. biurowym.
W momencie, kiedy cracker znajdzie podatność, może ją wyeksploatować na wiele możliwych sposób. Zazwyczaj stara się zachęcić potencjalnego "klienta" do uruchomienia swojego programu, który tę podatność wyeksploatuje. A w czym ten program będzie stworzony nie ma teoretycznie znaczenia. Ma znaczenie natomiast praktycznie, bo cóż z tego, że napiszę program wykorzystujący dziurę w języku Ruby, skoro jego żaden system Windows nie ma preinstalowanego i nikt go po prostu nie będzie mógł uruchomić.
Inny rodzaj wirusów to takie, które wykorzystują dziurę w oprogramowaniu np. biurowym, i zaszywają szkodliwy kod w pliku, który docelowo ma być uruchomiony przez dany program (np. plik tekstowy). Następnie - zazwyczaj - zadaniem takiego szkodliwego kodu jest pobranie z serwera crackera kolejnego złośliwego kodu (i tutaj wracamy do punktu pierwszego, z tą różnicą, że zamiast nakłaniać kogoś do uruchomienia pliku .exe (którym użytkownicy nie ufają), daliśmy mu plik któremu "ufa").