dari awal virus maker mencoba menerapkan kode evolusi virus.
Salah satu cara termudah untuk menyembunyikan fungsi kode virus enkripsi.
Virus pertama yang dikenal wasCascade enkripsi diimplementasikan pada DOS

virus mulai dengan konstan decryptor, yang diikuti oleh virus dienkripsi pada
tubuh. Pertimbangkan contoh yang diekstraksi dari Cascade.1701 ditampilkan pada
The Decryptor dari Virus Cascade
lea si, Start; posisi untuk mendekripsi (dinamis set)
mov sp, 0682; panjang tubuh terenkripsi (1666 bytes)
Mendekripsi:

XOR [si], si; dekripsi kunci / counter 1
XOR [si], sp; dekripsi kunci / counter 2
inc si; selisih satu counter
Desember sp; pengurangan yang lain
jnz Decrypt; loop sampai semua byte adalah dekripsi
Mulai:; Encrypted / dekripsi Tubuh Virus
Catatan bahwa decryptor ini antidebug fitur karena SP (stack pointer)
register digunakan sebagai salah satu kunci dekripsi. Arah loop dekripsi
yang selalu ke depan; register SI incremented per satu.
Karena awalnya poin SI mendaftar ke awal dari tubuh virus dienkripsi,
nilai awalnya tergantung pada posisi relatif dari tubuh virus dalam file.
Virus 7,3 Terenkripsi

Cascade menambahkan dirinya ke file, sehingga SI akan menghasilkan nilai yang sama jika dua host
program memiliki ukuran setara. Namun, SI (dekripsi tombol 1) diubah jika
program host memiliki ukuran yang berbeda. Register SP adalah counter sederhana untuk
jumlah byte untuk mendekripsi. Perhatikan bahwa dekripsi yang akan maju dengan kata
(Double-byte) panjang kunci. Posisi dekripsi, bagaimanapun, adalah bergerak maju dengan
satu byte setiap kali. Ini merumitkan loop dekripsi, tetapi tidak berubah
yang reversibilitas. Perhatikan bahwa XOR sederhana ini sangat praktis untuk virus karena XORing
dengan nilai yang sama dua kali hasil nilai awal.
Pertimbangkan enkripsi huruf P (0x50) dengan kunci 0x99. Anda lihat, 0x99 0x50 XOR
adalah 0xC9, dan 0xC9 0x99 XOR akan kembali ke 0x50. Inilah sebabnya mengapa penulis seperti virus
enkripsi sederhana sehingga banyak-mereka malas! Mereka dapat menghindari menerapkan dua DIF-
algoritma beda, satu untuk enkripsi dan satu untuk dekripsi tersebut.
Cryptographically berbicara, enkripsi seperti lemah, meskipun awal antivirus
program punya pilihan selain untuk memilih deteksi string dari decryptor sendiri.
Hal ini menyebabkan beberapa masalah, namun. Beberapa virus yang berbeda mungkin
yang decryptor yang sama, tetapi mereka mungkin memiliki fungsi yang sama sekali berbeda. Oleh
mendeteksi virus berdasarkan decryptor nya, produk tersebut tidak mampu untuk mengidentifikasi
varian atau virus itu sendiri. Lebih penting lagi, nonviruses, seperti antidebug wrap-
pers, mungkin memiliki decryptor serupa di depan kode mereka. Akibatnya, virus
yang menggunakan kode yang sama untuk mendekripsi sendiri akan membingungkan mereka.
Seperti metode kode sederhana evolusi juga muncul di 32-bit Windows virus
sangat awal. W95/Mad dan W95/Zombie menggunakan teknik yang sama seperti Cascade. Itu
Satu-satunya perbedaan adalah implementasi 32-bit. Pertimbangkan decryptor dari puncak
dari W95/Mad.2736, ditampilkan pada Listing
The Decryptor dari Virus W95/Mad.2736
mov edi, 00403045h; EDI Set untuk Mulai
edi menambahkan, EBP; Sesuaikan menurut dasar
mov ecx, 0A6Bh; panjang tubuh virus dienkripsi
mov al, [] kunci; memilih tombol
Mendekripsi:
XOR [edi], al; tubuh mendekripsi
inc edi posisi; counter selisih
loop Decrypt; sampai semua byte adalah dekripsi
JMP Start; melompat Langsung ke mulai (lebih dari beberapa data)
86 DB kunci; variabel satu byte kunci
Mulai:; dienkripsi / dekripsi tubuh virus
Evolusi Teknik Bab 7-Advanced Kode dan Kits Virus Komputer Generator

In, ini merupakan implementasi yang lebih sederhana dari metode XOR sederhana.
Deteksi virus tersebut masih dimungkinkan tanpa berusaha untuk mendekripsi virus sebenarnya
tubuh. Dalam kebanyakan kasus, pola kode decryptor ini virus adalah unik
cukup untuk deteksi. Jelas, deteksi tersebut tidak tepat, tapi kode perbaikan
dapat mendekripsi tubuh virus dienkripsi dan mudah menangani perbedaan kecil.
Penyerang dapat menerapkan beberapa strategi yang menarik untuk membuat enkripsi
dan dekripsi lebih rumit, lebih membingungkan program antivirus itu
deteksi dan rutinitas perbaikan:
* Arah loop dapat mengubah: loop maju dan mundur adalah dukungan-
porting (lihat semua kasus pada Gambar 7.1).
* Beberapa lapisan enkripsi yang digunakan. Yang pertama decryptor decrypts sec-
satu o ligasi, yang decrypts kedua yang ketiga, dan seterusnya (lihat Gambar 7.1c.). Kelinci

oleh TechnoRat, (W32, W97M) / Coke oleh Vecna,
dan W32/Zelly oleh areexamples ValleZ virus yang menggunakan metode ini.
* Beberapa loop enkripsi mengambil satu tempat demi satu, dengan secara acak pilih-
ed arah-maju dan mundur loop. Teknik ini mengacak yang
kode yang paling (lihat Gambar 7.1c.).
* Hanya ada satu loop dekripsi, tetapi menggunakan lebih dari dua kunci untuk mendekripsi
dienkripsi setiap potongan informasi di atas yang lain. Tergantung pada
pelaksanaan decryptor, virus tersebut dapat jauh lebih sulit-
kultus untuk dideteksi. Ukuran kunci terutama hal-semakin besar ukuran kunci
(8, 16, 32-bit, atau lebih), semakin panjang dekripsi brute force mungkin mengambil jika
kunci yang tidak dapat diekstraksi dengan mudah.