病毒程序源码实例剖析-CIH病毒[1]
CIH病毒主要感染Windows 95/98/Me的可执行程序,发作时破坏计算机Flash BIOS芯片中的系统程序,导致主板损坏,同时破坏硬盘中的数据。病毒发作时,硬盘驱动器不停地旋转,病毒程序以2048个扇区为单位,从硬盘主引导区开始依次往硬盘中写入垃圾数据,直到硬盘数据被全部破坏为止。硬盘上所有数据(包括分区表)被破坏,必须重新分区才能有可能挽救硬盘。同时,对于部分厂牌的主板,如技嘉和微星等,会将Flash BIOS 中的系统程序破坏,造成开机后系统无反应。
CIH病毒是1998年8月从台湾传入国内的,共有五个版本,各种不同版本随时间而发展,不断完善,其发展历程如下:
(1)CIH病毒1.0版
最初的1.0版只有 656个字节,雏形显得比较简单,与普通类型的病毒在结构上并无多大的改善,其最大的特点是可感染Microsoft Windows PE类可执行文件,被其感染的程序文件长度增加,1.0版的CIH病毒还不具有破坏性。
(2)CIH病毒1.1版
当CIH病毒发展到1.1版本时,病毒长度为796个字节,该版本的CIH病毒具有判断Windows NT软件的功能,一旦判断用户运行的是Windows NT,则不发生作用,进行自我隐藏,以避免产生错误提示信息,同时使用了更加优化的代码,以缩减其长度。
1.1版CIH病毒的另外一个改进点在于其可以利用Windows PE类可执行文件中的“空隙”, 将自身根据需要分裂成几个部分后,分别插入到PE类可执行文件中,这样做的优点是在感染大部分Windows PE类文件时,不会导致文件长度增加。
(3)CIH病毒1.2版
当CIH病毒发展到1.2版时,除改正了一些1.1版的缺陷之外,同时增加了破坏用户硬盘以及用户机器BIOS程序的代码,这一改进,使其步入恶性病毒的行列,1.2版的CIH病毒体长度为1003个字节。
(4)CIH病毒1.3版
1.2版CIH病毒最大的缺陷在于当其感染ZIP自解压包文件时,将导致此ZIP压缩包在自解压时出现下列错误警告信息:
WinZip Self-Extractor header corrupt. Possible cause: disk or file transfer error.
1.3版CIH病毒显得比较仓促,其改进点便是针对以上缺陷的,它的改进方法是: 一旦判断开启的文件是WinZip类的自解压程序,则不进行感染。同时,此版本的CIH病毒修改了病毒发作时间,由原来的4月26日改为6月26日。1.3版CIH病毒长度为1010个字节。
(4)CIH病毒1.4版
1.4版CIH病毒改进了以前几个版本中的缺陷,不感染ZIP自解压包文件,同时也修改了发作日期,由6月26日改为每月的26日,增加了病毒发作的频率。还修改了病毒中的版权信息(版权信息被更改为:“CIH v1.4 TATUNG”,在以前版本中的相关信息为“CIH v1.x TTIT”),1.4版CIH病毒长度为1019字节。
如前所述,CIH病毒创造了病毒历史上的几个第一,具有十分强大的破坏力,该病毒的发作给全世界造成了不可估量的损失。那么,具有如此之大“杀伤”力的代码是如何编写出来的呢?下面,我们以CIH病毒的1.4版为实例,分析其部分核心代码。
以上就是病毒程序源码实例剖析-CIH病毒[1]的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Alipay Php ...

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Sesi rampasan boleh dicapai melalui langkah -langkah berikut: 1. Dapatkan ID Sesi, 2. Gunakan ID Sesi, 3. Simpan sesi aktif. Kaedah untuk mengelakkan rampasan sesi dalam PHP termasuk: 1. Gunakan fungsi Sesi_Regenerate_ID () untuk menjana semula ID Sesi, 2. Data sesi stor melalui pangkalan data, 3.

Penerapan prinsip pepejal dalam pembangunan PHP termasuk: 1. Prinsip Tanggungjawab Tunggal (SRP): Setiap kelas bertanggungjawab untuk hanya satu fungsi. 2. Prinsip Terbuka dan Tutup (OCP): Perubahan dicapai melalui lanjutan dan bukannya pengubahsuaian. 3. Prinsip Penggantian Lisch (LSP): Subkelas boleh menggantikan kelas asas tanpa menjejaskan ketepatan program. 4. Prinsip Pengasingan Antara Muka (ISP): Gunakan antara muka halus untuk mengelakkan kebergantungan dan kaedah yang tidak digunakan. 5. Prinsip Inversi Ketergantungan (DIP): Modul peringkat tinggi dan rendah bergantung kepada abstraksi dan dilaksanakan melalui suntikan ketergantungan.

Bagaimana cara debug mod CLI dalam phpstorm? Semasa membangun dengan PHPStorm, kadang -kadang kita perlu debug PHP dalam mod Interface Line Command (CLI) ...

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Menghantar data JSON menggunakan perpustakaan Curl PHP dalam pembangunan PHP, sering kali perlu berinteraksi dengan API luaran. Salah satu cara biasa ialah menggunakan perpustakaan curl untuk menghantar post ...
