网络安全

位置:IT落伍者 >> 网络安全 >> 浏览文章

病毒及流氓软件自我复制的简单实现[2]


发布日期:2019年01月19日
 
病毒及流氓软件自我复制的简单实现[2]

Application类提供了获取程序运行绝对路径并包括文件名的属性和程序运行绝对路径的文件名属性竟然不直接提供一个文件名的属性好奇怪正规的截取文件名的方法应该根据\来判断这里采用了替换的方法大家可以思考一下如果用SubString怎么实现如果文件名不是数字那么从exe开始生成如果你执行了exe的文件那么狠糟糕你可能需要注销一下当前用户来终止程序运行当然让它运行也不会有多大影响最后我们把目标锁定在程序的当前目录下病毒和流氓软件就没有那么客气了经常它可能会选择磁盘根目录C:\WinodwsC:\Windows\System或者其他重要的系统目录中而且病毒采用了随机的命名方式或者是模仿系统文件名称的固定命名方式以达到隐藏自身和迷惑用户的目的

if ((FileExists(_file)) && (_count > ))

{

// 复制

FileStream _fileStream = FileOpen(_file FileModeOpen FileAccessRead FileShareReadWrite);

byte[] _buffer = new byte[_fileStreamLength];

_fileStreamRead(_buffer _bufferLength);

_fileStreamClose();

// 如果目标已存在删除

if (FileExists(_target))

{

FileDelete(_target);

}

// 粘贴

FileStream _writer = FileOpen(_target FileModeOpenOrCreate FileAccessReadWrite FileShareNone);

_writerWrite(_buffer _bufferLength);

_writerClose();

// 运行刚复制完成的程序

SystemDiagnosticsProcessStart(new SystemDiagnosticsProcessStartInfo(_target));

}

ApplicationExit();

最后我们来完成第三个目标自我复制并且运行复制好的新程序前面我们得到了_file程序运行绝对路径并包括文件名这样我们就可以打开并读取它了File是文件操作的静态方法它只负责打开关闭创建和删除文件对文件的读写就要由FileStream来操作了这里只是整个复制文件非常的简单病毒的特性是可以附加到别的程序或文件上整个过程就比较复杂了首先需要非常了解可执行文件的结构把原来的可执行文件分解并且把自身也进行分解然后重新组合成一个新的可执行文件但是执行的次序已经改变了程序开始会先跳转到病毒代码保证病毒能够被执行后再跳转回正常的程序代码以使病毒能够得以在隐藏的状态下执行行调用了新复制完成的程序以使得新复制的程序能够自动运行并且进行下一次的复制同样的道理现在非常多的软件都提供了自动更新的功能它的原理基本也是这样下载升级包主程序调用升级程序如果有必要主程序会先退出升级程序完成对主程序或者其他文件的复制更新然后再重新调用主程序由此可见计算机的功能是没有好坏之分的病毒能够运用的原理普通程序当然也能够利用水能载舟亦能覆舟就是这个道理非常希望您为我提供批评和建议您可以给我的邮箱Anature@com发送邮件

[] []

               

上一篇:写给ASP.NET程序员:网站中的安全问题

下一篇:病毒及流氓软件自我复制的简单实现[1]