.sol文件格式解析
发布时间:2020-12-15 06:24:02 所属栏目:百科 来源:网络整理
导读:最近想要做一个分享某个flash播放器的屏蔽名单的火狐扩展,随便看看了看那个sol文件就做了,结果出来各种BUG,果然还是得认真分析一下文件格式 在网上搜了一遍只看到这个分析 http://hi.baidu.com/1984holmes/blog/item/89b5f3c2762c105db319a8ce.html Share
最近想要做一个分享某个flash播放器的屏蔽名单的火狐扩展,随便看看了看那个sol文件就做了,结果出来各种BUG,果然还是得认真分析一下文件格式 在网上搜了一遍只看到这个分析 http://hi.baidu.com/1984holmes/blog/item/89b5f3c2762c105db319a8ce.html SharedObject .sol文件头总是00 BF,接着4个字节是大小(这个大小是之后所有块的大小哦),然后也是固定的54 43 53 4F 00 04 00 00 00 00。 第17、18字节是SharedObject变量名的长度,紧跟着就是SharedObject变量名。之后的4个字节代表sol文件版本,00 00 00 00是AS2.0生成的,00 00 00 03是AS3.0生成的。 紧跟着是SharedObject的data变量名长度,这里算法很奇怪,如果长度是x,这里的值就是2x+1。之后是data变量名。再接着是data变量值的类型,这里类型如下: 02 逻辑值false,后接00 03 逻辑值true,后接00 04 数字(紧接数字值,每一个字节取值在0~7F,大于7F进位为80 00;最后以00结尾) 06 字符串(紧接长度,为字符串长度的2x+1;长度之后是字符串值,最后以00结尾) 09 数组(紧接数组的元素个数,取值还是2x+1 ,接下来的一个字节可能是数组的维数;最后以00结尾) 作者基本把格式说清楚了,但还是有些要补充的 关于数字进位,我猜测大概是采用类似可变字节编码(variable-byte)的方式,第一位是延续位,1表示后面还有字节,0表示结束 分析清楚了以后其实就能明白sol文件采用的就是键值对(key-value pair)的方式来组织的,每个键值对都是以00结尾 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |