重金 !!!!!!!!!

Kain 2003-10-13 09:45:36
谁手头上有swf文件结构分析的资料阿!

最近了解一下swf scanner
不知道那位仁兄有swf文件分析这方面的资料
给个链接或者是一个mail

email:ghost_sea@371.net

在这谢先
...全文
46 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kain 2003-10-15
  • 打赏
  • 举报
回复
文件的版本和电影的高宽等信息用flash控件直接就可以分析出来
但是要分希swf文件里面的元素还不知道怎么办,比如:脚本等
airon2002 2003-10-14
  • 打赏
  • 举报
回复
我顶!
elite2018 2003-10-14
  • 打赏
  • 举报
回复
Simple enough. The file swfheaderdump.inc needs to contain the full definition of the SWFDump class:

<%
'-------------------------------------------------------------
' Create Date : 17/10/2001 (dd/mm/yyyy)
' Mod. Date : 17/10/2001
' Author : Claudio Heidel (heidel@f256.com)
'-------------------------------------------------------------

Class SWFDump

Private header
Private RECTdata
Private nBits
Private mversion
Private mfilelen
Private mxMin
Private mxMax
Private myMin
Private myMax
Private mheigt
Private mwidth
Private mframerate
Private mframecount

Private Sub Class_Initialize()

End Sub

Private Sub Class_Terminate()

End Sub


Private Function ReadHeader (filename)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(filename, ForReading)
ReadHeader = f.Read(21)
End Function

Private Function ToBin(inNumber, OutLenStr )
Dim binary
binary = ""
do while inNumber >= 1
binary = binary & inNumber mod 2
inNumber = inNumber \ 2
loop
binary = binary & String(OutLenStr - len(binary), "0")
ToBin = StrReverse(binary)
End Function

Private Function Bin2Decimal(inBin)
Dim counter
Dim temp
Dim Value
inBin = StrReverse(inBin)
temp = 0
For counter = 1 to Len(inBin)
If counter = 1 then
Value = 1
Else
Value = Value * 2
End If
temp = temp + mid(inBin, counter ,1) * Value
Next
Bin2Decimal = temp
End Function

Public Function SWFDump(fileName)

header = ReadHeader (fileName)
mversion = asc(mid(header,4,1))
mfilelen = asc(mid(header,5,1))
mfilelen = mfilelen + asc(mid(header,6,1)) * 256
mfilelen = mfilelen + asc(mid(header,7,1)) * 256 * 256
mfilelen = mfilelen + asc(mid(header,8,1)) * 256 * 256 * 256

RECTdata = ToBin(asc(mid(header,9,1)),8)
RECTdata = RECTdata & ToBin(asc(mid(header,10,1)),8)
RECTdata = RECTdata & ToBin(asc(mid(header,11,1)),8)
RECTdata = RECTdata & ToBin(asc(mid(header,12,1)),8)
RECTdata = RECTdata & ToBin(asc(mid(header,13,1)),8)
RECTdata = RECTdata & ToBin(asc(mid(header,14,1)),8)
RECTdata = RECTdata & ToBin(asc(mid(header,15,1)),8)
RECTdata = RECTdata & ToBin(asc(mid(header,16,1)),8)
RECTdata = RECTdata & ToBin(asc(mid(header,17,1)),8)

nBits = Mid(RECTdata,1,5)
nBits = Bin2Decimal(nBits)

mxMin = Bin2Decimal(Mid(RECTdata,6,nBits))
mxMax = Bin2Decimal(Mid(RECTdata,6 + nBits * 1 ,nBits))
myMin = Bin2Decimal(Mid(RECTdata,6 + nBits * 2 ,nBits))
myMax = Bin2Decimal(Mid(RECTdata,6 + nBits * 3 ,nBits))

mheigt = (myMax - myMin) / 20
mwidth = (mxMax - mxMin) / 20

mframerate = asc(mid(header,18,1))

mframecount = asc(mid(header,19,1))
mframecount = mframecount + asc(mid(header,20,1)) * 256

End Function


Public Property Get Heigt()
Heigt = mheigt
End Property

Public Property Get Width()
Width = mwidth
End Property

Public Property Get Version()
Version = mversion
End Property

Public Property Get FileLen()
FileLen = mfilelen
End Property

Public Property Get xMin()
xMin = mxMin
End Property

Public Property Get xMax()
xMax = mxMax
End Property

Public Property Get yMin()
yMin = myMin
End Property

Public Property Get yMax()
yMax = myMax
End Property

Public Property Get Framerate()
Framerate = mframerate
End Property

Public Property Get Framecount()
Framecount = mframecount
End Property
End Class
%>



elite2018 2003-10-14
  • 打赏
  • 举报
回复
With the number of Web sites using Macromedia Flash Files (.swf files) to present content, as a Web developer it may come in handy to have an ASP page that could easily read various tidbits of information about a Flash file. Fortunately, Flash files save a plethora of useful information in their headers. This information can be read using the FileSystemObject through an ASP page! (To learn more about Flash, check out FlashKit.com!)

In order to ease the process of reading this information, I created a handy class to do the grunt work for me. (For more information on using classes with VBScript, be sure to read: Using Classes within VBScript.) The class I created returns the following information about a Flash file:

SWFDump Class
Property Description
Version The version of the Flash file (3,4 or 5 at the moment)
Height Expresed in pixels.
Width Expresed in pixels.
xMin Expresed in Twips (20 twips = 1 pixel)
xMax Expresed in Twips
yMin Expresed in Twips
yMax Expresed in Twips
FileSize The total size of the .swf file.
FrameRate How many frames are in the Flash file.
FrameCounter Frame counter information.


The use of the SWFDump class is very simple. First off, I recommend that you place it in an include file so that you can easily include the class in the files that need to read Flash file information. (For more information on server-side includes be sure to read: The Low-Down on #include.) I chose to name my include file swfheaderdump.inc. To use the class, simply use code like the following:

<!-- #include file="swfheaderdump.inc" -->
<%
'-------------------------------------------------------------
' Create Date : 17/10/2001 (dd/mm/yyyy)
' Mod. Date : 17/10/2001
' Author : Claudio Heidel (heidel@f256.com)
'-------------------------------------------------------------

' Pass the SWF name in querystring this way
' swfdump.asp?swf=yourmovie.swf

set myObj = new swfdump
myObj.SWFDump (Server.MapPath(request("swf")))

Response.Write "Heigt (pixel) = " & myObj.Heigt & "<br>"
Response.Write "Width (pixel) = " & myObj.Width & "<br>"
Response.Write "Version = " & myObj.Version & "<br>"
Response.Write "FileLen (bytes) = " & myObj.FileLen & "<br>"
Response.Write "xMin (twips) = " & myObj.xMin & "<br>"
Response.Write "xMax (twips) = " & myObj.xMax & "<br>"
Response.Write "yMin (twips) = " & myObj.yMin & "<br>"
Response.Write "yMax (twips) = " & myObj.yMax & "<br>"
Response.Write "FrameRate = " & myObj.FrameRate & "<br>"
Response.Write "FrameCount = " & myObj.FrameCount & "<br>"
%>



hjwzr 2003-10-14
  • 打赏
  • 举报
回复
帮你顶一下
wjhs 2003-10-14
  • 打赏
  • 举报
回复
没有,帮你顶一把。

110,524

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧