一直就想写这篇东西了,仅仅是上班时说要上班,不写。回家后又忙着玩游戏,丢一边去了。如今仅仅好不务正业的开写了。希望头儿不会知道我的blog。哈哈   在非常久之前就对HTML的病毒非常感兴趣了,非常好奇怎么能远程向本地不经过同意就能下载可执行文件的,仅仅是一直没机会搞得到ASP的原码,所以不才敢断章取义的去作什么分析。近期一次听一朋友说他看一个网页时病毒防火墙提示有病毒。叫我小心(先感谢一下他先),我闪了一下念头,就打开FlashGet把那个病毒首页下了下来。

  略微看了一下发如今首页代码的以下几行里有一个隐含的浮动帧。其引用的URL地址并非本地的,感觉应该是了,然后再次动用FlashGet下了下来。竟然发现放病毒的空间不支持ASP,下下来的ASP文件是源文件。这样兴趣来了,三下五除二的把全部病毒的相关文件都下了下来。   因为这个病毒非常easy。所以我也仅仅摘抄了一些片段而以,假设实在感兴趣的话。不防去找一个有病毒的网页瞅瞅,只是。不要用IE去看,要用FlashGet等下载工具下载下来。再用记事本打开,不然中招了可不要来找我。好了正文開始。   真正的病毒有三个文件,一个是引导文件。一个是下载文件,第三个是激活文件。

  第一个引导文件     关键部分是:         这个作用是将下载和激活两个文件当作该页的对象来引用并执行,这个也是病毒文件可以在本地进行感染的关键地方,在引用的文件中竟然可以无阻碍的引用client的Action组件。唉唉,这就是那把刀啊。

  第二个是下载exe病毒文件     然后是怎么将exe下载下来,而不弹出下载的提示框呢。

这个是收下载文件来完毕的任务。     该病毒的作法是在server端用Microsoft.XMLHTTP组件和response.contenttype = "image/gif"将病毒文件以图片格式下载到client的网页缓存里(这里是非常easy的Get/BinaryWrite操作。就不具体说了)。
  第三个是激活     感觉激活的过程非常巧妙。病毒是先用fso在c:\下生成一个hta文件。将激活过程写到这个文件中。

然后再用WScript.Shell来执行这个文件。这样,激活过程中需要大权限的操作(比方:写注冊表操作)就没问题了。     具体操作过程是这样的。将在网页缓存文件夹里的病毒文件移动到系统文件文件夹。然后改名为win.exe。

再往注冊表里写入自启动的键。使得病毒能在系统重新启动后自己主动启动,然后删除hta文件,完毕感染和激活。

  这就是病毒的基本执行过程(按照惯例病毒破坏部分就不提了),可是这个对我们有什么用呢。事实上这样的病毒我是非常讨厌的,可是,其下载exe和激活过程还是有可利用的地方的。

比方:你作的系统必需要client下载一些组件并激活后才干使用的,这样的操作面对了解的人当然是不成问题,可是假设你面对的是那种网络是什么都还没搞清林的用户时。我预计系统还没開始使用你的电话就要打爆了。假设借用种方式,在对方同意的情况下自己主动下载组件,并自己主动激活。那就省事多了。是吧。
  只是。这样的方式对小形文件是非常方便,假设要下载1m以上的文件..那就要考虑多线程下载的操作了。当然这个不是这篇文章的范围了。以后有机会再说说用ASP+XML实现WEB多线程上传多线程下载的方法吧。

一个简单的HTML病毒分析的更多相关文章

  1. 从一个简单的小实例分析JSP+Servelt与JSP+Struts2框架的区别

    最近在学struts2,struts2相比以前的JSP+Servlet,在处理流程上的更简单,我们就一个小实例来具体分析一下. 实例内容如下: 实现一个简单的注册页面包括:用户名.密码.重复密码.年龄 ...

  2. UNP学习笔记2——从一个简单的ECHO程序分析TCP客户/服务器之间的通信

    1 概述 编写一个简单的ECHO(回复)程序来分析TCP客户和服务器之间的通信流程,要求如下: 客户从标准输入读入一行文本,并发送给服务器 服务器从网络输入读取这个文本,并回复给客户 客户从网络输入读 ...

  3. 第一讲 一个简单的Qt程序分析

    本文概要:通过一个简单的Qt程序来介绍Qt程序编写的基本框架与一些Qt程序中常见的概念 #include <QApplication> #include <QPushButton&g ...

  4. 从一个简单案例上手Spring MVC,同时分析Spring MVC面试问题

    很多公司都会用Spring MVC,而且初级程序员在面试时,一定会被问到这方面的问题,所以这里我们来通过一个简单的案例来分析Spring MVC,事实上,我们在培训中就用这个举例,很多零基础的程序员能 ...

  5. 【转】用C写一个简单病毒

    [摘要]在分析病毒机理的基础上,用C语言写了一个小病毒作为实例,用TURBOC2.0实现. [Abstract] This paper introduce the charateristic of t ...

  6. Linux内核分析—完成一个简单的时间片轮转多道程序内核代码

    ---恢复内容开始--- 20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-10 ...

  7. 《Linux内核分析》第三周 构建一个简单的Linux系统MenuOS

    [刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK THREE ...

  8. Linux内核分析第三周学习总结:构造一个简单的Linux系统MenuOS

    韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.Linux内 ...

  9. Arachnid包含一个简单的HTML剖析器能够分析包含HTML内容的输入流

    Arachnid是一个基于Java的web spider框架.它包含一个简单的HTML剖析器能够分析包含HTML内容的输入流.通过实现Arachnid的子类就能够开发一个简单的Web spiders并 ...

随机推荐

  1. 对excel进行封装

    package com.huawei.utils; import java.io.FileNotFoundException;import java.io.FileOutputStream;impor ...

  2. css常用属性总结之 id和class的区别,使用类还是ID?

    前面两篇文章我们分别谈到了class和id的相关知识和如何使用,但是在实际项目中,我们该如何抉择,class还是id? 先回顾下两者的区别吧! 1.id具有唯一性,class具有普遍性,所以一个页面同 ...

  3. kubernetes configmap

    ConfigMaps允许您将配置工件与image内容分离,以保持容器化应用程序的便携性. 本页面提供了一系列使用示例,演示如何使用ConfigMaps中存储的数据创建ConfigMaps和配置Pod. ...

  4. Scala基础:闭包、柯里化、隐式转换和隐式参数

    闭包,和js中的闭包一样,返回值依赖于声明在函数外部的一个或多个变量,那么这个函数就是闭包函数. val i: Int = 20 //函数func的方法体中使用了在func外部定义的变量 那func就 ...

  5. EMC校招笔试题目

    ------------------------------------------------- 1,7×(1/7) = 1是什么率? 乘法运算满足结合律,交换律和分配率.这个题目用的应该是交换律. ...

  6. 10 华电内部文档搜索系统 search05

    上一节讲述了索引更新的处理方案,这一节首先讲述索引维护的相关方案.每创建一个索引,把文档相关的信息插入到数据库中.这个时候会产生一个唯一的对应的ID,获取这个ID之后,把这个ID又插入到对应的索引文件 ...

  7. 英文单词cipher 和password的区别,用法有什么不同,

    ['saɪfə(r)] cipher 指一套密码系统,比如电影<风声>中破译的那个系统叫cipher:password 则指进入的指令,比如你的qq密码,电脑密码等叫password.总之 ...

  8. C++ std::unordered_multimap

    std::unordered_multimap template < class Key, // unordered_multimap::key_type class T, // unorder ...

  9. Native2Ascii文件转换 -- 待完善

    摘自:https://www.oschina.net/code/snippet_87799_1612 Native2Ascii文件转换 -- 待完善 package com.xxx.xxx.Util; ...

  10. spring mvc 集成hibernate步骤

    今天从头把hibernate集成进入springMVC框架中,把过程记录下来. 1.首先要在监听器配置文件中加入hibernate支持,如下: <?xml version="1.0&q ...