u16 major_version,2e 00,major_version = 00 2e = 46
下面的 cpool_info constant_pool:
u30 int_count,00,即没有int
即s32 integer[int_count],也不存在了
u30 uint_count,00,也没有
即u32 integer[uint_count],也不存在了
u30 double_count,00,也没有
d64 double[double_count],不存在
u30 string_count,18 = 24个string字符串
string_info string[string_count]:结构如下:
举几个string的例子:
08 74 65 73 74 5F 66 6C 61 0C 4D 61 … … … …
u30 size , 08 ,8个字节
u8 utf8[8] = 74 65 73 74 5F 66 6C 61 =test_fla
继续:
0C 4D 61 69 6E 54 69 6D 65 6C 69 6E 65 0D .. .. .. …
u30 size , 0C,12个字节
u8 utf8[12] = 4D 61 69 6E 54 69 6D 65 6C 69 6E 65 0D = MainTimeline
… … … … …
一直到 53 70 72 69 74 65 = Sprite
如下:
<stringList count="24"> <string value="test_fla"/> <string value="MainTimeline"/> <string value="flash.display"/> <string value="MovieClip"/> <string value="test_fla:MainTimeline"/> <string value=""/> <string value="txt"/> <string value="flash.text"/> <string value="TextField"/> <string value="frame1"/> <string value="HelloWorld!"/> <string value="text"/> <string value="x"/> <string value="y"/> <string value="addChild"/> <string value="addFrameScript"/> <string value="Object"/> <string value="flash.events"/> <string value="EventDispatcher"/> <string value="DisplayObject"/> <string value="InteractiveObject"/> <string value="DisplayObjectContainer"/> <string value="Sprite"/> </stringList>
u30 namespace_count,08,就是有8个namespace
namespace_info namespace[namespace_count],结构
同String,
u8 kind,16
u30 name,01
kind = 0×16 = CONSTANT_PackageNamespace,说明他是一个包名字,对应的名字是string池中的01,即为test_fla
继续 u8 kind,16
u30 name,03,kind = 0×16 = CONSTANT_PackageNamespace,说明他是一个包名字,对应的名字是string池中的03,即为flash.display
一直到 16 12,
u8 kind,16
u30 name,12,kind = 0×16 = CONSTANT_PackageNamespace,说明他是一个包名字,对应的名字是string池中的,18即为flash.events
<namespace_infoList count="8"> <namespace_info class="Namespace_info" kind="PackageNamespace" name="1"/> <namespace_info class="Namespace_info" kind="PackageNamespace" name="3"/> <namespace_info class="Namespace_info" kind="ProtectedNamespace" name="5"/> <namespace_info class="Namespace_info" kind="PackageNamespace" name="6"/> <namespace_info class="Namespace_info" kind="PackageNamespace" name="8"/> <namespace_info class="Namespace_info" kind="PackageInternalNs" name="1"/> <namespace_info class="Namespace_info" kind="PackageNamespace" name="18"/> </namespace_infoList>
<multiname_infoList count="17"> <multiname_info class="Multiname_info" kind="QName" ns="1" name="2"/> <multiname_info class="Multiname_info" kind="QName" ns="2" name="4"/> <multiname_info class="Multiname_info" kind="QName" ns="4" name="7"/> <multiname_info class="Multiname_info" kind="QName" ns="5" name="9"/> <multiname_info class="Multiname_info" kind="QName" ns="6" name="10"/> <multiname_info class="Multiname_info" kind="QName" ns="4" name="12"/> <multiname_info class="Multiname_info" kind="QName" ns="4" name="13"/> <multiname_info class="Multiname_info" kind="QName" ns="4" name="14"/> <multiname_info class="Multiname_info" kind="QName" ns="4" name="15"/> <multiname_info class="Multiname_info" kind="QName" ns="4" name="16"/> <multiname_info class="Multiname_info" kind="QName" ns="4" name="17"/> <multiname_info class="Multiname_info" kind="QName" ns="7" name="19"/> <multiname_info class="Multiname_info" kind="QName" ns="2" name="20"/> <multiname_info class="Multiname_info" kind="QName" ns="2" name="21"/> <multiname_info class="Multiname_info" kind="QName" ns="2" name="22"/> <multiname_info class="Multiname_info" kind="QName" ns="2" name="23"/> </multiname_infoList>
复制代码