一直就想写这篇东西了,仅仅是上班时说要上班,不写。回家后又忙着玩游戏,丢一边去了。如今仅仅好不务正业的开写了。希望头儿不会知道我的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. spring是什么

    spring是一个容器,用于降低代码间的耦合度,根据不同的代码采用了ioc和aop这二种技术来解耦合. 比如转账操作:a用户少1000,b用户多1000.这是主业务逻辑   IOC 涉及到的事务,日志 ...

  2. Kafka Zookeeper 基本命令示例

    Kafka 新建Topic bin/kafka-topics. --replication-factor --partitions --topic my-topic 查看已存在Topic列表 bin/ ...

  3. 刷题向》一道关于位运算的神题(BZOJ3668)(HARD-)

    个人觉得这道题对于位运算的加深理解很有意义 根据题目所说,我们要求出一个在给定范围里的自变量,使得最终结果最大. 那么因为这道题是针对于位运算的,所以可以想到用对于位运算取极限情况,即对于“0”和“( ...

  4. Crack IDEA

    使用破解补丁 Crack IDEA→在http://idea.lanyus.com/上可以找到最新的破解补丁,下载并放到软件的bin目录下 →更改bin目录下的两个文件:Idea.exe.vmopti ...

  5. Java中的静态代理实现方式

    1.编写一个接口类 如:Subject package com.neusoft.pattern.staticProxy; /** * <p>Title:</p> * <p ...

  6. 图解Git

    转载自http://marklodato.github.io/visual-git-guide/index-zh-cn.html#diff 图解Git 其他语言: Deutsch English Es ...

  7. servicestack.redis工具类

    using System;using System.Collections.Generic;using System.Linq;using ServiceStack.Redis;using Servi ...

  8. 面向对象的JavaScript-009-闭包

    引自:https://developer.mozilla.org/cn/docs/Web/JavaScript/Closures 闭包是指能够访问自由变量的函数 (变量在本地使用,但在闭包中定义).换 ...

  9. Boost::lexical_cast类型转换

    1.字符串->数值 C++代码 #include <boost/lexical_cast.hpp> #include <iostream> int main() { us ...

  10. static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较

    隐式转换(implicit conversion) ; int b; b=a; short是两字节,int是四字节,由short型转成int型是宽化转换(bit位数增多),编译器没有warning,如 ...