提取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/ 

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