Дело было так. Один молодой человек меня достал, покажи мол ему полиморфизм на скриптовых языках и все тут. Видите-ли, он по наивности своей считает, что это невозможно. Хотя мы-то с вами знаем, что на Perl и Python вообще возможно все.

Для написания своего простенького полиморфного скрипта я выбрал Perl, так как я владею им лучше всего из всех тех языков которые допустимы правилами конкурса. Итак, встречайте, полиморфный скрипт на Perl.

print "Hello, I'm polymorphic\n";

open(Myself, $0);
@Body = <Myself>;
close(Myself);

$Body = join("",@Body);
$cryptKey = int(rand(255));

for($i=0;$i<length($Body);$i++)
{@Crypt[$i]=(ord(substr($Body,$i,1))) * ($cryptKey);}

for($i=0;$i<6;$i++)
{$Var[$i]=chr(int(rand(25)+65)).int(rand(65535));}

$glue = chr(int(rand(25)+65));
$Crypt = join($glue,@Crypt);

open(File, ">$0");
print File "\$$Var[0]=\"$Crypt\";";
print File "\@$Var[1]=split(\"$glue\",\$$Var[0]);";
print File "for(\$$Var[2]=0;\$$Var[2]<(\@$Var[1]);\$$Var[2]++)
{\$$Var[3].=chr(\@$Var[1] [\$$Var[2]]/$cryptKey);}";
print File "open($Var[4],\">\$0\"); print $Var[4] \$$Var[3];
close($Var[4]); \@$Var[5]=(\"perl\",\"$0\"); system(\@$Var[5]);";
close(File);

При первом запуске он зашифрует и перезапишет себя, и превратится в нечто подобное:

$T17629="16912H17214H15855H16610H17516H4832H5134H10872H
15251H16308H16308H16761H6644H4832H11023H5889H16459H4832

for($P51339=0;$P51339<(@B11503);$P51339++)
{$G13527.=chr(@B11503 [$P51339]/151);}open(T50805,”>$0″);
print T50805 $G13527;close(T50805); @X30941=(”perl”,”d2.pl”);
system(@X30941);

При каждом последующем запуске, в результате случайной генерации ключей, имен переменных и т.д., возможны незначительные изменения в размере файла.

Попрошу читателей не бояться запускать этот скрипт, это не вирус, ничего заражать он не будет, никаких троянских функций тоже не несет, просто перезаписывает себя и все.

Еще раз напоминаю: это — очень простой скрипт, который я написал за 20 минут. Если проявить фантазию, можно сделать все что угодно, даже нечто такое, обо что современные антивирусные технологии вроде эвристики и эмуляторов кода зубы пообломают.