您当前的位置:首页>论文资料>VC 在编写病毒专杀工具中的应用

VC 在编写病毒专杀工具中的应用

资料类别:论文资料

文档格式:PDF电子版

文件大小:1.82 MB

资料语言:中文

更新时间:2024-11-30 08:19:34



推荐标签:

内容简介

VC 在编写病毒专杀工具中的应用 数学执本与率用
VC在编写病毒专杀工具中的应用
张准张晟涛崔朝霞付丽群
(河北联合大学迁安学院河北迁安064400)
安全技术
摘要:目前病毒越来超多,录毒软件存在滞后性。各大安全公司针对影响较大的病毒都推出病毒专录工具其实鲁通用户电可以用VC端写病毒专杀工具来实现对病毒的专杀,这种程序国不必考虑图形累面,简单方便。
关键词:VC病毒专杀
中图分类号:TP309.5 1引言
文献标识码:A
计算机病毒是人类编写的计算机软件程序,这种程序对计算机有危害性和破坏性。计算机从上世纪八十年代诞生至今,病毒的分类、规模、感染时间、破坏性,传染性和自我复制性都增大了不少。
2病毒专杀工具的设计和VC实现
这里所说的专杀工具主要是指特洛伊术马与worm病毒等应用程序互不关联的病毒体,而不是有自动复制与感染功能同时捆绑于其他应用程序文件的狭义病毒。对于大多查杀独立文件的病毒来说,杀毒过程可以设计成这样:杀死病毒在任务管理器中的进程、去掉病毒在计算机注册表中的随机启动项.清除位于硬盘上病毒文件,最后针对破坏文件正常关联的程序还需要修复注册表以保证文件的关联正常,具体过程如下。
2.1终止病毒进程
VC是不能根据文件名直接终止指定进程的,其原因是VC中结束进程的API函数TerminateProcess()不能直接用来结束特定的进程。根据MSDN对TerminateProcess(0这个函数的描述可以知道:该函数的第一个参数是一个句柄,用来表示要结束的进程,而不是字符串类型的进程名。在这种情况下获取进程句柄,可以考患利用函数OpenProoess(),函数声明的原型是这样的
HANDLE OpenProcess(DWORD dwDesiredAccess, BOOL bInheritHandle,DWORD dwProcessId);
最后一个参数是进程标识符,进程ID又是如何获取?在NT架构的系统中,MSDN中可以查到很多枚举进程的函数。所以这里的思路是先利用CreateToolhelp32SnapshotO函数获取到进程的快照,接下来再利用Process32First()函数和Process32Next()数枚举当前正在运行的进程。调用这些函数得到的结果会把每个进程的细节都账值PROCESSENTRY32结构体分量中。该结构包括进程的结构大小、进程的弓用计数、进程ID、进程默认堆ID、进程模块ID、此进程开启的线程计数,父进程标识符、进程完整名,线程的优先权。所以用采取枚举进程可以终止特定的进程,遇历zExeFie检查其和待终止的目标进程名是否相同,如果相同的话就获取其th32ProcessID参数,接下来调用OpenProcess获取到要结束的进程句柄。代码比较复杂,这里不在费述,这里有个简单的方法,可以利用VC调用命令提示符接口的命令来结束指定的进程,使用方法是:
System("taskkill /f /im virusprocess.exe"), 2.2删除病毒文件
删除病毒文件只需要在VC中调用删除文件的函数DeleteFile就能够删除指定的文件,查MSDN可知DeleteFile函数只有一个参数为 LPCTSTR类型的lpFilename,该参数的一个指针,用来待删除文件的绝对路径。
2.3修复受损的注册表,恢复正常进程的启动项与文件关联第一步是用函数RegOpenKeyEx打开要修改的目标主键,查
文章编号:1007-9416(2013)04-0215-0) MSDN可知该函数的声明为:
LONG RegOpenKeyEx(HKEY bKey,LPCTSTR 1pSubKey, DWORD ulOptions, REGSAM samDes ired,PHKEY phkResult);
其中第一个参数表示要打开注册表项的句柄,第二个参数表示要打开注册表项的字符串指针。利用这个函数可以获取到要修改的注册表句柄。
第二步是修改键值,这里用到的函数是RegSetValueEx,这个函数的原型是:
LONG RegSetValueEx(HKEY bKey.LPCTSTR lpValueName,DWORD Reserved,DWORD dwType, CONST BYTE+1pData,DWORD chData),
同样用函数RegDeleteValue删除指定键值,最后用函数 RegCloseKey关闭注册表这样也是可以的。
以上这些函数的使用是很简单的,将相应的参数设为需要删除或修改注册表项的键值就可以了,这里值得注意的是函数RegSet ValueEx的最后一个参数是字节型的。这样就可以修复文件关联和清除病毒文件的随机启动项,这里以修复受损的cmd文件关联作为例子,修改扩展名相应的参数就可以适用于其他扩展名类型。
HKEYbKey
LPCTSTR recov="/"%1/" %+",
DWORD 1Result=RegOpenKeyEx(HKEY_CLASSES_ROOT,"cmdfile//shell//open//command",o,KEY_WRITE,&bKey),
if(ERROR_SUCCESS ==IResult)
RegSetValueEx(bKey, *", NULL,REG_SZ, (LPBYTE)recov , 9),//修改键值
Reg CloseKey(bKey);
这样就初步做好了一个简单的病毒专杀工具。如前所述,这个工具只具有简单的查杀功能,对于普通的本马病毒和端虫病毒是有效的,对于类似于双进程的病毒程序,应根据具体情况对程序功能做出扩充,例如有些病毒是借助修改system.ini,win.ini等系统文件完成随计算机启动而启动的,这种情况下需要利用其他方法清除对应的病毒文件,另外,必要的时候杀毒程序还需增加终止服务与
卸载动态链接库模块的功能。 3结语
通常我们在系统下杀毒,某些病毒是杀不掉的,因此,杀毒程序最好运行在安全模式或PE模式下使用全盘杀毒来进行全方位的病毒清除。清除被感染的文件,免除后患。借助VC缩写病毒专杀工具可以提高我们的编程水平和反病毒水平,由于其功能有限,当系统中病毒时最好采用专业的杀毒软件去处理。
215
上一章:采用普通微机实现视景模拟 下一章:毕业生管理系统的设计与实现

相关文章

质量“工具”在产品生产过程中的应用 传统质量工具在软件质量保证中的应用 自动化测试工具在软件测试中的应用 带压堵漏工具在压缩机提板阀中的应用 工具式轻型无拉杆桥墩模板在石武客运专线中的应用 工具式外挂防护架在装配式混凝土结构中的应用 金刚石工具在钢筋混凝土结构修复改造中的应用与研究现状 水性聚氨酯金属闪光漆在大型交通工具中的应用研究