一次性进群,长期免费索取教程,没有付费教程。
教程列表见微信公众号底部菜单
进微信群回复公众号:微信群;QQ群:460500587
微信公众号:计算机与网络安全
ID:Computer-network
每当我们打开U盘时,看到有一个AutoRun.inf文件时都会不由地倒吸口凉气,“该死!又中病毒了!”。是的,有一种病毒程序通过AutoRun.inf文件使其自动运行起来,想必这不用做过多的介绍每一位都非常清楚。网上有很多免疫工具,现在一些修改版的操作系统里面也会提供这样一个免疫的小工具。它免疫的原理是建立一个不被删除的文件AutoRun.inf文件夹,以防止病毒生成一个运行病毒的AutoRun.inf。
一、AutoRun免疫程序的代码实现
我们的程序使用MFC编写,会用到几个API函数。好了,开始我们的代码吧。
启动VC6,选择菜单“File”->“New”命令,在弹出的“New”对话框中选择“Projects”选项卡,在左侧的列表中选择“MFC App Wizard(exe)”,在右侧填写项目的名称“ImmunityU”,如图1所示。
图1 新建MFC项目工程
单击“OK”按钮后,出现“MFC App Wizard–Step 1”的界面,选择“Dialog based”单选钮,如图2所示。
图2“MFC App Wizard–Step1”界面
这里,我们选择以对话框为基础进行开发。单击“Finish”按钮会出现最后一个对话框,直接单击“OK”按钮关闭对话框。
二、界面设置
我们的程序是有界面的,则首先要对界面进行一些设置。先把界面上所有的控件都删除掉,然后添加一个ComBoBox控件和两个按钮控件,如图3所示。
图3 程序界面
给添加的ComBoBox控件重新命名一个ID为:IDC_COMBO_DRIVER,并为其添加一个控件变量。添加的方法如下:
在IDC_COMBO_DRIVER上单击右键,在弹出的菜单上选择“ClassWizard”命令,弹出“MFC ClassWizard”对话框,选择“Member Variables”选项卡,双击IDC_COMBO_DRIVER,弹出“Add Member Variable”对话框,添加变量名为m_ComboDriver,选择类型为“Control”,然后单击“OK”按钮。添加情况如图4所示。
图4 给IDC_COMBO_DRIVER添加控件变量m_ComboDriver
三、代码相关部分
我们进行免疫时是对某个分区进行免疫的,因此要在ComboBox控件中显示出所有的磁盘分区供用户选择。在ComboBox中显示所有的磁盘分区,我们定义成一个函数来完成该功能。
把这个函数添加到OnInitDialog()函数的最后面,ComboBox中就会有所有的磁盘分区的盘符了。这个自定义函数中出现了两个API函数,一个是SetDlgItemText(),另一个是GetLogicalDriveStrings()。下面分别介绍这两个函数。
设置编辑框显示的内容:
该函数的第一个参数用来指定控件变量的ID,第二个参数指定一个字符串。
获取字符串类型的驱动器列表:
该函数的第一个参数指定缓冲区的长度,第二个参数指定一个缓冲区。
了解了这两个函数后,再来看代码就很容易理解了。在while循环中的AddString()是CComboBox类的一个成员函数,该函数是用来向CComboBox添加一个字符串的。如果你不理解那个while循环的话,建议在VC6下调试一下看看szDriverString里保存的内容,就会明白while循环的作用了。这个调试建议大家亲自动手练习一次。
接下来添加“免疫”按钮的代码,代码很简单,如下:
这段代码中加了详细的注释,大家应该可以看懂,就不做过多介绍了,如果哪里有疑惑的话,请大家自己动手调试一下。最后看一下“取消”按钮的代码:
整个对Autorun进行免疫的代码就完成了,大家可以自己进行一下试验。启动我们的程序,选择需要进行免疫的盘符,单击“免疫”,打开被免疫的那个磁盘,看看是不是真的免疫了,再试着用右键删除看看效果,可以看到我们的实现是成功的。
微信公众号:计算机与网络安全
ID:Computer-network