Salah satu teknik yang digunakan penulis malware untuk mengelabui antivirus adalah Instruction Permutation. Cara ini dilakukan dengan merubah urutan sequence instruction. Dengan merubah urutan proses, maka sequence binary dari kode akan berubah sehingga malware akan berbeda dari signature yang telah diketahui antivirus. Contohnya sebagai berikut:
op1 Reg1/Mem1, Reg2/Mem2
op2 Reg3/Mem3, Reg4/Mem4
Operasi diatas dapat dilakukan permutasi.
1‐ Reg1/Mem1 ≠ Reg2/Mem2
2‐ Reg1/Mem1 ≠ Reg4/Mem4
3‐ Reg2/Mem2 ≠ Reg3/Mem3
Contoh lainnya dapat dilihat pada gambar diatas.
Teknik lainnya adalah transposisi code. Cara ini dengan merubah urutan instruksi dan code flow. Walaupun begitu execution flow tidak berubah dengan menggunakan unconditional atau conditional branches. Transformasi dapat dilakukan dengan single instructions level atau sebuah code block.
Contoh code transposisi pada virus Zperm dapat dilihat pada gambar berikut:
Teknik lainnya yang digunakan adalah Virtualization obfuscation. Teknik ini digunakan untuk melawan reverse engineering. Pada teknik ini instructions dan logic dari code dimasukan dalam virtual machine untuk menghindari proses analisis. Teknik ini menggunakan sebuah virtual machine yang digunakan untuk menjalankan interpreter logic dari program. Interpreter yang digunakan menggunakan bahasa assembly.
Selain itu ada teknik code integration. Teknik ini ditemukan pada malware Win95/Zmist. Malware ini memasukkan code malware ke program target yang diinfeksi. Untuk melakukan ini, Zmist melakukan decompile program target menjadi beberapa bagian. Kemudian malware akan menambahkan kode malicious antara beberapa bagian tadi. Dengan penambahan kode baru ini program akan menjadi sebuah kode baru. Teknik ini sangat menyulitkan proses deteksi.
Referensi
You, Ilsun, and Kangbin Yim. “Malware Obfuscation Techniques: A Brief Survey.” BWCCA. 2010.