Kod polimorf: Perbezaan antara semakan
Kearah memperkasakan bahasa Melayu sebagai bahasa ilmu. |
|||
Baris 57: | Baris 57: | ||
CryptoKey: |
CryptoKey: |
||
nombor_rawak |
nombor_rawak |
||
== Lihat juga == |
|||
* [[Garis masa virus komputer dan cecacing yang terkenal ]] |
|||
* [[kod metamorfik]] |
|||
* [[kod ubah sendiri|Kod ubah sendiri (''Self-modifying code'')]] |
|||
* [[kod alphanumerik|kod alphanumerik (''alphanumeric code'')]] |
|||
* [[kod kerangka|kod kerangka (''shellcode'')]] |
|||
* [[pemecah perisian|pemecah perisian (''software cracking'')]] |
|||
* [[pemecah keselamatan|pemecah keselamatan (''security cracking'')]] |
|||
== Rujukan == |
== Rujukan == |
Semakan pada 09:53, 3 April 2008
Dalam terminologi komputer, kod polimorf merupakan kod yang mutasi tetapi mengekalkan algorithm asal. Teknik ini kadang-kala digunakan oleh virus komputer, kod kerangka (shellcode) dan cecacing komputer bagi menyembunyikan kehadiran mereka.
Kebanyakan perisian anti-virus dan sistem pengesanan pencerobohan (intrusion detection system cuba untuk mengesan kod jahat dengan menapis fail komputer dan paket data yang dihantar menerusi jaringan komputer. Sekiranya perisian keselamatan menjumpai pola yang sama dengan virus komputer atau cecacing yang dikenali, ia mengambil langkah sewajarnya bagi menangani ancaman tersebut. Algorithm polimorf menjadikannya sukar bagi perisian sebegini bagi mencari kod tersebut kerana ia sentiasa berubah.
Enkripsi merupakan kaedah paling banyak digunakan bagi mencapai polimorf bagi kod. Bagaimanapun, bukan semua kod boleh dienkrip kerana ia akan menjadikannya tidak boleh digunakan langsung. Sebahagian kecil darinya kekal tidak dienkrip dan digunakan bagi memulakan perisian dienkrip. Perisian anti-virus mensasarkan kod kecil yang tidak dienkrip ini.
Pengaturcara berniat jahat cuba melindungi kod polimorf dari strategi pengimbasan virus dengan menulis semula enjin yang tidak dienkrip setiap kali virus atau cecacing membiak. Perisian anti-virus menggunakan penganalisa pola rumit bagi mencari pola dasar dalam pelbagai mutasi enjin penyah dekrip yang berlainan, dengan harapan dapat mengesan perisian perosak (malware) sebegini.
Virus polimorf pertama yang diketahui ditulis oleh oleh Mark Washburn. Virus ini dikenali sebagai virus komputer 1260, ditulis pada 1990. Virus polimorf yamh lebih terkenal dicipta pada 1992 oleh seorang pemecah keselamatan (security cracking) Bulgaria yang menggunakan nama samaran (pseudonym) Dark Avenger sebagai cara mengelakkan pengecaman pola oleh perisian anti-virus.
Contoh
Algorithm yang menggunakan, sebagai contoh, pemboleh ubah A dan B tetapi bukan pemboleh ubah C mampu kekal walaupun anda memasukkan banyak kod yang mengubah kandungan kepada pemboleh ubah C.
Algorithm asal:
Start: GOTO Decryption_Code Encrypted: ... banyak kod dienkrip ... Decryption_Code: A = Encrypted Loop: B = *A B = B XOR CryptoKey *A = B A = A + 1 GOTO Loop IF NOT A = Decryption_Code GOTO Encrypted CryptoKey: some_random_number
Algorithm yang sama, tetapi dengan banyak perubahan kod C yang tidak diperlukan:
Start: GOTO Decryption_Code Encrypted: ... lots of encrypted code ... Decryption_Code: C = C + 1 A = Encrypted Loop: B = *A C = 3214 * A B = B XOR CryptoKey *A = B C = 1 C = A + B A = A + 1 GOTO Loop IF NOT A = Decryption_Code C = C^2 GOTO Encrypted CryptoKey: nombor_rawak
Lihat juga
- Garis masa virus komputer dan cecacing yang terkenal
- kod metamorfik
- Kod ubah sendiri (Self-modifying code)
- kod alphanumerik (alphanumeric code)
- kod kerangka (shellcode)
- pemecah perisian (software cracking)
- pemecah keselamatan (security cracking)
Rujukan
- Diomidis Spinellis. Reliable identification of bounded-length viruses is NP-complete. IEEE Transactions on Information Theory, 49(1):280–284, January 2003. doi:10.1109/TIT.2002.806137