Windows 网络编程:AutoRun 免疫程序

2019 年 1 月 15 日 计算机与网络安全

一次性进群,长期免费索取教程,没有付费教程。

教程列表见微信公众号底部菜单

进微信群回复公众号:微信群;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

【推荐书籍】
登录查看更多
0

相关内容

Microsoft Foundation Class Library 微软基础类库
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
160+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
107+阅读 · 2020年5月9日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
83+阅读 · 2019年11月25日
AWVS12 V12.0.190530102 windows正式版完美破解版
黑白之道
29+阅读 · 2019年8月24日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
15+阅读 · 2019年5月13日
7 款实用到哭的App,只说一遍
高效率工具搜罗
84+阅读 · 2019年4月30日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
React Native 分包哪家强?看这文就够了!
程序人生
12+阅读 · 2019年1月16日
逆向 | C++ 加壳程序的编写思路
计算机与网络安全
9+阅读 · 2019年1月1日
一天精通无人中级篇:遥控器协议 S-BUS
无人机
48+阅读 · 2018年12月20日
刚开始学编程?这几款小工具能让你事半功倍
码农日常工具推荐
架构文摘
4+阅读 · 2017年9月26日
Learning to See Through Obstructions
Arxiv
7+阅读 · 2020年4月2日
Arxiv
24+阅读 · 2020年3月11日
Feature Selection Library (MATLAB Toolbox)
Arxiv
7+阅读 · 2018年8月6日
Arxiv
3+阅读 · 2018年2月24日
Arxiv
6+阅读 · 2018年1月14日
Arxiv
3+阅读 · 2017年10月1日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
160+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
107+阅读 · 2020年5月9日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
83+阅读 · 2019年11月25日
相关资讯
AWVS12 V12.0.190530102 windows正式版完美破解版
黑白之道
29+阅读 · 2019年8月24日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
15+阅读 · 2019年5月13日
7 款实用到哭的App,只说一遍
高效率工具搜罗
84+阅读 · 2019年4月30日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
React Native 分包哪家强?看这文就够了!
程序人生
12+阅读 · 2019年1月16日
逆向 | C++ 加壳程序的编写思路
计算机与网络安全
9+阅读 · 2019年1月1日
一天精通无人中级篇:遥控器协议 S-BUS
无人机
48+阅读 · 2018年12月20日
刚开始学编程?这几款小工具能让你事半功倍
码农日常工具推荐
架构文摘
4+阅读 · 2017年9月26日
相关论文
Learning to See Through Obstructions
Arxiv
7+阅读 · 2020年4月2日
Arxiv
24+阅读 · 2020年3月11日
Feature Selection Library (MATLAB Toolbox)
Arxiv
7+阅读 · 2018年8月6日
Arxiv
3+阅读 · 2018年2月24日
Arxiv
6+阅读 · 2018年1月14日
Arxiv
3+阅读 · 2017年10月1日
Top
微信扫码咨询专知VIP会员