计算机病毒永恒之蓝_永恒之蓝攻击win10

计算机病毒永恒之蓝_永恒之蓝攻击win10做技术的要一直保持激情,和对新鲜事物的敏感性,从中寻找到快乐—-JobBird  最近永恒之蓝病毒肆虐,简直让电脑用户闻风丧胆,一旦中招真的是毁灭性的,虽然自己写不出来这么牛逼的程序,也没有这样的耐心去分析它究竟是怎么做到的,或者怎么解除威胁。基于技术宅的好奇心免不了对其指手画脚一番。  什么是病毒?  网上跟教科书上都有非常明确的定义,什么什么一大堆,看一下就过了,反正也

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

   做技术的要一直保持激情,和对新鲜事物的敏感性,从中寻找到快乐—-JobBird

    最近永恒之蓝病毒肆虐,简直让电脑用户闻风丧胆,一旦中招真的是毁灭性的,虽然自己写不出来这么牛逼的程序,也没有这样的耐心去分析它究竟是怎么做到的,或者怎么解除威胁。基于技术宅的好奇心免不了对其指手画脚一番。

   什么是病毒?

   网上跟教科书上都有非常明确的定义,什么什么一大堆,看一下就过了,反正也记不住。其实我自己的理解就是:病毒首先是可执行代码段,其次就是非法的,也就是不是用户预想到的。

   永恒之蓝病毒?

   这个病毒会自动给你电脑上的所有文件加密,然后会跟你索取金钱。至于这个病毒的工作原理,还有传播途径,网上有比较详细的分析,包括如何修复防范,这些文章我是写不出来了,但是可以从别的方面随便分析一二。

    我怎么样才能写这么一个病毒呢?

    首先,我会把它当成一个正常的程序来写:就是写个加密软件嘛,把原有的文件从字符或者二进制的层次进行加密。在windows系统上面,我可以任意对所有文件或者文件夹进行加密,但是在linux上面就是有各种权限的限制。这一方面就可以突出linux的文件系统优点,至少别的用户的文件是修改不了,不过当前的实际情况基本上一个电脑上的所有文件都是同属一个用户,所以意义不大。

   第二步,我会遍历整个系统的文件系统,找出所有文件,然后加密之。

   第三步,只要用户运行,就自动执行第一步和第二步。

   其实完成这三步,目前的计算机使用环境、生态圈,最主要的是电脑使用者的防范意识不强烈的情况下,比如随便点击不明来历的程序,或者安装流氓软件,破坏性都非常大,并不亚于永恒之蓝,会写程序的同学是不是觉得这么一个程序非常简单呢?跃跃欲试捉弄一下你的同事、同学、朋友?不想被打死就这么干吧。

   第四步,可以搜索本地计算机的邮件列表,然后复制自己,把自己添加到附件中,发送出去。这一步是很简单的。

   截止到第四步,只要有编程基础的同学应该都可以完成,难度并不太大。

    第五步,通过socket协议自动繁殖感染其他电脑。这个socket协议包含了很多协议,有网络编程基础的都知道,要能顺利感染到对方电脑,必须要建立连接,哪怕是广播也是要被感染主机愿意接收病毒繁殖主机发过来的病毒数据。这个永恒之蓝病毒是通过445这个端口来传播的,在这个端口后面有一堆支持这个端口的应用的协议,总之就是提供了病毒传播的通道,反正你发过来的数据,我都接收。

    第六步,病毒顺利到达了目的之后,刚才说了基于445端口的主机程序,有很多内部线程在不断运行分析过来的数据,这又从理论上提供了主动运行非法代码段的可能性。至于这个怎么从单纯的分析数据变成运行非法程序,这就是系统漏洞,比如执行除零或者别的程序bug。然后最终就是病毒运行起来了。

    目前我们解决这个问题,首先禁用445,然后再打补丁,其实就是把系统漏洞给补上。通常linux都是默认把端口关闭,而windows则是默认把端口打开。

题外话扩展:

  1、计算机无论系统程序,还是应用程序,都是程序段,在内存中排的好好的,然后按照一定的规则执行。病毒就是在这些执行过程中,改变跳转指令,改成执行自己的代码段。

   2、病毒通常都会针对特定的操作系统,特定的硬件平台。linux病毒相对来说比较少,当然,linux因为维护基数跟质量都windows要优秀,另一方面病毒的传播很大一部分原因是PC用户的使用习惯,用Linux的用户相对来说是比较专业的,windows用户无论什么程序都喜欢去点一下,无差别运行。

   3、其他的,其实病毒蛮有意思的,需要对计算机系统有非常深入的理解跟认识才写的出来。这个深入的理解是比较模糊的,找漏洞是一个概率性的问题,也许是编程过程中偶尔发现的,找到了漏洞怎么利用?主要是一个跳转,跳转到非法的程序段。

   4、写一小段程序,让其不断创造垃圾文件,然后别人运行了。这也算是一个垃圾软件,或者叫小病毒吧。

   就这样吧。有兴趣的留言讨论,想了好多,好多,但是写出来却是干瘪瘪的。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181335.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Spring源码 – 核心接口BeanPostProcessor[通俗易懂]

    Spring源码 – 核心接口BeanPostProcessor[通俗易懂]Spring源码-核心接口BeanPostProcessor

    2022年8月12日
    6
  • Java队列实现

    Java队列实现一、队列简单介绍队列是一种常用的数据结构之一,与之前的栈类似,不过队列是“先进先出”。队列有队头(front)和队尾(rear),数据从队尾进入队列,从队头出队列,队头(front)指向队列的第一个数据,队尾(rear)指向队列中的最后一个数据。二、队列实现队列有很多种,这里只是介绍最基本的实现,采用链式存储,也就是链式队列,与之前的链表存储形式一样,通过结点对象描述一个数据,结点对象包含具体数

    2022年7月14日
    13
  • vs2019中scanf返回值被忽略_vs2017scanf

    vs2019中scanf返回值被忽略_vs2017scanf一、问题再现如下是笔者在学习数据结构中的二叉树时遇到的问题:报错警告:返回值被忽略:”scanf”。二、问题分析百度一下之后大致原因是:scanf()函数在读取时不检查边界,所以可能会造成内存泄漏。有一定的安全隐患。微软公司觉得其不安全,所以在VS编译器中提供了scanf_s()函数,这是VS编译器特有的函数。强制用户提升安全性,如果想要在VS中使用scanf()函数,则可以通过一下4中方法解决。三、解决方案1、把scanf改成:scanf_s把所有的scanf()改

    2025年6月8日
    2
  • 移位寄存器专题(verilog HDL设计)

    移位寄存器专题(verilog HDL设计)目录移位寄存器简介分类4位右移位寄存器工作原理1、16位右移位寄存器2、16位左移寄存器3、串行输入并行输出寄存器4、并行输入串行输出移位寄存器移位寄存器简介移位寄存器内的数据可以在移位脉冲(时钟信号)的作用下依次左移或右移。移位寄存器不仅可以存储数据,还可以用来实现数据的串并转换、分频,构成序列码发生器、序列码检测器,进行数值运算以及数据处理等,它也…

    2022年7月16日
    13
  • ioctl函数详解(Linux内核 )

    ioctl函数详解(Linux内核 )1.概念ioctl是设备驱动程序中设备控制接口函数,一个字符设备驱动通常会实现设备打开、关闭、读、写等功能,在一些需要细分的情境下,如果需要扩展新的功能,通常以增设ioctl()命令的方式实现。在文件I/O中,ioctl扮演着重要角色,本文将以驱动开发为侧重点,从用户空间到内核空间纵向分析ioctl函数。2.用户空间ioctl#include<sys/ioctl.h>intioctl(intfd,intcmd,…);参数描述

    2022年10月17日
    3
  • 关于vagrant一个虚拟机搭建多个项目配置(总结)

    关于vagrant一个虚拟机搭建多个项目配置(总结)

    2021年11月8日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号