一直就想写这篇东西了,仅仅是上班时说要上班,不写。回家后又忙着玩游戏,丢一边去了。如今仅仅好不务正业的开写了。希望头儿不会知道我的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. 【冷门】 C# 小技巧之获取变量名称

    今天在自我规范程序设计的时候,变量名匹配字符串来自配置文件,网上找了一会儿发现也有朋友在找寻这种方式,很不容易找到一个解决方案来自http://www.th7.cn/Program/net/20140 ...

  2. 【BZOJ 3261】最大异或和【可持久化字典树】

    题意 给出一个长度为n的整数序列,给出m个操作.操作有两种.1,Ax表示在序列结尾增加x.2,Qlrx表示找到一个位置p满足 l<=p<=r,使得a[p] xor a[p+1]xor... ...

  3. 257. Binary Tree Paths返回所有深度优先的遍历

    [抄题]: Given a binary tree, return all root-to-leaf paths. For example, given the following binary tr ...

  4. RPM简介与基本使用

    一.什么是RPM RPM的全名是Red Hat Package Manager,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:在Fedora .Redhat.Man ...

  5. SpringBoot与Shiro的整合(单体式项目)

    1.包结构 2.jar包,配置文件,类 2.1pom.xml文件配置 <?xml version="1.0" encoding="UTF-8"?> ...

  6. pthread_mutex_init函数与pthread_mutexattr_init函数

    直接上英文解释: pthread_mutex_init()如下: NAME pthread_mutex_init, pthread_mutex_destroy - initialise or dest ...

  7. 谈谈Vue.js——vue-resource全攻略

    本篇文章主要介绍了谈谈Vue.js——vue-resource全攻略,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧   概述 上一篇我们介绍了如何将$.ajax和Vue. ...

  8. 手机优秀app

    Mantano 阅读器 Aldiko   阅读器 掌阅阅读器 奇特阅读器 Gitden reader 网易蜗牛阅读

  9. error: failed to push some refs to 'https://git.oschina.net/bluede/TuShuGuanLi.g it'

    出现了这样的错,可以强制提交 git push -u origin master -f

  10. [你必须知道的异步编程]——异步编程模型(APM)

    本专题概要: 引言 你知道APM吗? 你想知道如何使用异步编程模型编写代码吗? 使用委托也可以实现异步编程,你知道否? 小结 一.引言 在前面的C#基础知识系列中 介绍了从C#1.0——C#4.0中一 ...