提取Excel、Word、PPT文件中的Flash文件的两种方法

 

方法一:VBA代码法

新建一个文件,然后拷贝以下代码到VBA模块中,运行代码,选择含有Flash的Excel文件确定,即可获取swf文件。

 

  1. Sub ExtractFlash() 
  2.  
  3.     Dim tmpFileName As String 
  4.     Dim FileNumber As Integer 
  5.     Dim myFileId As Long 
  6.     Dim MyFileLen As Long 
  7.     Dim myIndex As Long 
  8.     Dim swfFileLen As Long 
  9.     Dim i As Long 
  10.     Dim swfArr() As Byte 
  11.     Dim myArr() As Byte 
  12.  
  13.     tmpFileName = Application.GetOpenFilename("MS Office File (*.doc;*.xls), *.doc;*.xls", , "Open MS Office file"
  14.  
  15.     If tmpFileName = "False" Then Exit Sub 
  16.  
  17.     myFileId = FreeFile 
  18.  
  19.     Open tmpFileName For Binary As #myFileId 
  20.  
  21.     MyFileLen = LOF(myFileId) 
  22.  
  23.     ReDim myArr(MyFileLen - 1) 
  24.  
  25.     Get myFileId, , myArr() 
  26.  
  27.     Close myFileId 
  28.  
  29.     Application.ScreenUpdating = False 
  30.  
  31.     i = 0 
  32.  
  33.     Do While i < MyFileLen 
  34.  
  35.         If myArr(i) = &H46 Then 
  36.  
  37.             If myArr(i + 1) = &H57 And myArr(i + 2) = &H53 Then 
  38.  
  39.                 swfFileLen = CLng(&H1000000) * myArr(i + 7) + CLng(&H10000) * myArr(i + 6) + CLng(&H100) * myArr(i + 5) + myArr(i + 4) 
  40.  
  41.                 ReDim swfArr(swfFileLen - 1) 
  42.  
  43.                 For myIndex = 0 To swfFileLen - 1 
  44.                     swfArr(myIndex) = myArr(i + myIndex) 
  45.                 Next myIndex 
  46.                 Exit Do 
  47.  
  48.             Else 
  49.                 i = i + 3 
  50.             End If 
  51.  
  52.         Else 
  53.             i = i + 1 
  54.         End If 
  55.  
  56.     Loop 
  57.  
  58.     myFileId = FreeFile 
  59.  
  60.     tmpFileName = Left(tmpFileName, Len(tmpFileName) - 4) & ".swf" 
  61.  
  62.     Open tmpFileName For Binary As #myFileId 
  63.  
  64.     Put #myFileId, , swfArr 
  65.  
  66.     Close myFileId 
  67.  
  68.     MsgBox "Save the extracted SWF Flash as [ " & tmpFileName & " ]" 
  69.  
  70. End Sub 

 

方法二:UE修改法

1、打开这个含有Flash的Excel文件,进入设计模式,选中这个Flash后拷贝到桌面,获取一个片段文件
2、用ULraEdit32(UE)打开这个片段文件,查找“465753”字段
3、把“465753”字段之前的文字全部剪切,然后把文件另存为”X.swf”
4、OK
 
 
 
作者:laoyebin(Paladin.lao) 
出处:http://www.cnblogs.com/laoyebin/ 
个人网站英文出处:http://mrvsto.com/ 
个人网站中文出处:http://cn.mrvsto.com/ 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章