此实验代码请务必在Vmware中执行,不要在真机上进行实验,否则会很麻烦。

本实验的设计是基于C语言的恶意代码,其执行过程如下:

1. 首次执行该病毒时,如果检测到注册表的任务管理器未禁用,则该病毒依次执行以下功能:

创建一个启动项,将文件复制到系统目录路径下,并将其用作自动启动路径;

禁用任务管理器;

禁用注册表编辑器;

获取图片并修改桌面背景(重新引导生效);

修改注册表以将用户键盘输入阻止为1(重新启动生效);

删除驱动器号,使桌面无效并开始菜单快捷方式;

在桌面上恶意扩散,生成具有随机名称的自复制文件;

强制关闭计算机;

2. 重新启动计算机后,任务管理器已被禁用,因此它仅在桌面上恶意扩散,并且改变了桌面背景并且键盘输入无效.

1. 扩散模块

为了实现恶意代码的自我扩散,请使用Windows系统随附的API函数SHGetSpecialFolderPath来获取当前用户的桌面路径;使用GetModuleFileName函数获取当前正在执行的程序的路径,最后使用Copyfile函数完成自我扩散.

扩散模块的相关代码如图2.1所示.

图2.1恶意代码扩散模块

2. 注册表修改模块

修改注册表项,以使病毒程序在启动时自动启动,禁用任务管理器,禁用注册表编辑器电脑病毒编写,修改桌面背景图片,并将用户的键盘输入屏蔽为数字1. API函数主要用于: RegCreateKey,RegSetValueEx,RegCloseKey,相关代码如下:

图2.2修改注册表以实现启动时自动启动

如上面的代码所示,使用GetModuleFileName函数获取当前可执行程序的绝对路径,调用API函数GetSystemDirectory获取系统目录路径,并使用文件操作函数CopyFile实现对文件的复制. 可执行程序,以避免被感染者直接删除. 将系统目录路径中的可执行程序设置为同时自动启动,并修改了注册表以创建文件关联. 只要用户打开txt文件,默认情况下就会打开系统目录路径中的病毒程序.

图2.2禁用任务管理器和注册表编辑器

只要将键值1添加到指定目录,即可禁用任务管理器或禁用注册表编辑器.

图2.3修改桌面背景图片

图2.3中所示的代码实现了在重新启动计算机后从指定的URL下载图片并将其设置为桌面背景,并且默认情况下无法更改它. 实际操作仅需将名称添加为Wallpaper,即在指定目录中添加数据. 类型为REG_SZ且内容为下载完成路径的项目.

图2.4修改注册表以阻止用户键盘输入

修改注册表以阻止用户键盘输入. 用户重新启动计算机后,此操作才会生效.

3. 前台窗口中的隐藏模块

隐藏前景窗口以防止用户正常运行,以避免用户直接杀死控制台程序并导致病毒程序无法继续运行. 使用GetForegroundWindow()函数获取前景窗口的句柄,并使用ShowWindow函数隐藏当前句柄指示的窗口. 前景中的隐藏窗口模块如图2.5所示.

图2.5前台窗口中的隐藏模块

4. 注册表修改检测模块

第一次运行病毒程序时,尚未修改注册表. 这时,您运行病毒程序来执行注册表修改模块,但是当计算机重新启动时,注册表已被修改,因此无需再次运行注册表. 修改操作(也没有相应的管理员权限),因此添加一个模块来检测是否禁用了任务管理器,代码如图2.6所示:

图2.6注册表修改检测模块

5. 执行模块

执行模块实现的功能相对简单,同时确保计算机不会崩溃. 第一种是禁用任务管理器,注册表修改编辑器,在重新启动注册表后修改桌面背景,并屏蔽用户的键盘输入. 这些与注册表相关. 在注册表修改模块中已指出相关,它们是执行模块的一部分.

修改注册表后,被感染计算机的驱动器号被破坏,因此桌面快捷方式和菜单栏图标指向无效的连接,并且只有在重新启动后才能还原. 相关代码如下所示:

图2.7损坏的系统的驱动器盘符

此函数调用DefineDosDevice函数,但是由于此API函数需要管理员权限,因此只能在第一次执行时运行;

最后,该病毒程序将自己复​​制到桌面上以生成垃圾文件,这些文件总共被复制30次. 相关代码如下所示:

图2.8在桌面上生成的垃圾邮件文件

6. 隐藏恶意代码并获得管理员权限

因为您需要获得管理员权限才能修改注册表,所以用户不会将未知程序授予管理员权限,因此他们使用自解压方法将恶意代码与某些常规程序安装包捆绑在一起以执行恶意代码. 隐藏并欺骗了管理员权限.

使用压缩软件自解压恶意代码执行程序和其他常规安装程序包以进行隐藏. 在高级选项中,选择解压缩后自动运行的程序,选择静默安装模式,然后使用指定的ico文件指定图标,这样自解压缩的文件与原始的正常安装包之间就不会有明显的区别. 使用时. 但是运行后,将安装正常程序并执行恶意代码. 这样,完成了恶意代码的隐藏,并提高了恶意代码的传染性. 一些高级选项设置如图2.9所示.

图2.9高级自解压高级选项

三,实验结果

执行伪装的自解压文件,程序已正常安装,并且快速弹出窗口显示病毒程序此时开始执行. 同时,您可以看到此时已禁用任务管理器和注册表编辑器.

由于禁用了任务管理器和注册表编辑器,因此用户无法通过任务管理器轻松结束该过程,也无法还原注册表. 其效果如图3.2和3.3所示.

程序的继续. 弹出窗口显示C驱动器号已成功销毁. 如图3.4所示. 删除系统驱动器号后,桌面上的所有快捷方式均无效,并且“开始”菜单中的所有快捷方式均无效. 打开计算机窗口没有响应. 执行效果如图3.5所示. 然后,您只能手动重新启动计算机.

由于重新启动后已修改了注册表,因此此时更改了桌面背景. 效果如图3.6所示. 并且用户输入被阻止,无论输入什么字母,它始终显示1. 效果如图3.7所示.

由于该病毒程序被设置为在启动时自动启动,但此时尚未获得管理员权限,并且由于注册表已被修改,因此病毒此时会直接复制自身并在桌面上生成垃圾文件. 经过该次数后,操作结束,但如果用户打开txt文件,由于实现了注册表关联,则此时病毒程序开始执行,垃圾文件的效果为如图3.8所示.

病毒预功能已基本实现.

图3.1恶意代码的运行效果(一)

图3.2恶意代码的运行效果(二)

图3.3恶意代码的运行效果(三)

图3.4恶意代码的运行效果(四)

图3.5恶意代码运行效果(五)

图3.6恶意代码的运行效果(6)

图3.7恶意代码的运行效果(七)

图3.8恶意代码的运行效果(8)

第四次实验经验

该实验通过编写恶意代码学到了很多东西.

在编写此恶意代码的过程中,我对病毒程序或木马如何修改注册表并将其自身复制到系统目录路径有更深入的了解和实践,并且学习了如何使用文件操作API和Windows注册API功能,例如表修改API和磁盘驱动器号修改API. 同时,我还学习了如何伪装其可执行程序以达到欺骗受感染者的目的. 例如,在此实验中,将病毒程序复制到安装包中并执行,并在解压缩期间获得了管理员权限.

但是此实验中仍然存在一个缺陷电脑病毒编写,那就是如何使重新启动后的自启动程序获得管理员权限. 搜索大量信息后尚未实现此功能,因此需要在下一个实践中实现. 此块功能已完善.

此外,该病毒程序无法幸免于杀毒软件的检测和删除,因此如何对抗杀毒软件是另一个需要改进的地方.

总的来说,该实验的实现相对简单,但是仍有很多事情需要学习!

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-150828-1.html

c语言制作电脑病毒原理,用C语言编写的简单病毒相关推荐

  1. c语言制作辅助,一种辅助C语言教学的展示设备的制作方法

    本实用新型涉及教学设备技术领域,具体涉及一种辅助c语言教学的展示设备. 背景技术: c语言是一门面向过程的.抽象化的通用程序设计语言,广泛应用于底层开发,c语言能以简易的方式编译.处理低级存储器,c语 ...

  2. c语言数组电脑显示不出来,C语言有关结构数组的一个程序为什么运行什么结果都不显示?求助~...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include struct Student {char name[20]; char major[20]; int English; ...

  3. c语言制作飞机大战试训报告,c语言飞机大战源代码.doc

    c语言飞机大战源代码.doc include include include include define N 35 void printint N;输出 void movebulint N;子弹移动 ...

  4. c语言制作猜数游戏教程,C语言实现猜数游戏

    本文实例为大家分享了C语言实现猜数游戏的具体代码,供大家参考,具体内容如下 代码如下 #include #include #include void game() { srand((unsigned ...

  5. 如何用c语言制作飞机订票系统,C语言编程飞机订票系统如何设计?

    题目:编制一个航空客运订票系统,实现简单的机票操作 班级:计0702 姓名:学号: 完成日期:2008年12月20日 一. 实验内容: 1.问题描述: 航空客运订票的业务包括:查询航班.客票预订和办理 ...

  6. c语言软件电脑下载文件,求C语言头文件下载?

    传统 C++ #include <assert.h> //设定插入点 #include <ctype.h> //字符处理 #include <errno.h> // ...

  7. 易语言制作计算机按键指令,关于易语言编写计算器的问题(完整代码!!!!!!!)

    本帖最后由 火凤凰 于 2011-7-30 18:54 编辑 .版本 2 .程序集 窗口程序集1 .子程序 _按钮16_被单击 .如果 (编辑框记录符号.内容 ≠ "") 编辑框主 ...

  8. 用html编写一个诗歌的网页,试验2用HTML语言制作简单的网页.doc

    <计算机网络B>实验指导书 实验三 网页制作 测绘工程学院 实验三 网页制作 一.实验目的 1.简单了解HTML语言. 2.认识网页以及网页的结构. 3.掌握用HTML语言制作简单网页的方 ...

  9. 记录一次C语言制作简易病毒实验

    最近在做一个制作简易病毒的实验,查到了一篇大佬的文章,写的很详细,受益良多,这里先把大佬的文章附上: https://blog.csdn.net/hbhgyu/article/details/7777 ...

  10. 一般杀毒软件检测病毒原理

    一般杀毒软件检测病毒原理 2014年09月05日 ⁄ 综合 ⁄ 共 3171字 ⁄ 字号 小 中 大 ⁄ 评论关闭 常用的反病毒软件技术 特征码技术:基于对已知病毒分析.查解的反病毒技术 目前的大多数 ...

最新文章

  1. python函数装饰器参数 参数_【转】python 装饰器功能以及函数参数使用
  2. SpringBoot整合Mybatis完整详细版
  3. CSS染色图标(图片)
  4. 44response对象
  5. Redis----windows下的常用命令
  6. 基于信息熵确立权重的topsis法_基于信息熵和TOPSIS法的装备战场抢修排序决策模型...
  7. 6. head 区的设置
  8. python查看数据库存在表_python sqlite3查看数据库所有表(table)
  9. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(611,5): error MSB
  10. 复合梯形公式C语言程序,C语言复合梯形公式实现定积分
  11. 【观察】阿里云栖大会究竟好在哪里?
  12. 04-SNAP处理Sentinel-2 L2A级数据(二)
  13. jenkins的administrator权限
  14. 2018年全国大学生电子设计竞赛“TI杯”H题解析
  15. DPDK Rx flexible descriptor在Intel E810网卡中的使用
  16. 测试员就是“背锅侠”?学会这些,扔掉测试人常背的3口“锅”
  17. 微信小程序Canvas学习
  18. IC功能芯片的封装和包装经验
  19. javaScript基础学习 - 14 - JavaScript内置对象 -案例代码
  20. tableau实战案例-分析120个国家和地区的自杀率情况

热门文章

  1. win7精简_还不升级!Bug最少的win10 LTSC版,极致精简,比win7更快更干净
  2. C#之DotNetBar2使用方法 - superTabControl1
  3. appium+python实现手势密码
  4. toastr 自定义提示
  5. Wowza服务器系列(3):试用wowza Stream Engine服务运行
  6. SmartSVN使用
  7. 啊哈C语言——让计算机多彩的开口说话
  8. 电机扭矩计算机公式由来T=9950*P/
  9. 【树莓派】在Raspbian下将wifi中继为有线网络
  10. Python数据挖掘-文本挖掘