关闭

解析IOS二进制格式的bplist

标签: pythonbplistiOS
553人阅读 评论(0) 收藏 举报
分类:

关于二进制格式的plist,搜到一篇博客《详解Binary Plist格式》,介绍的很详细,但是结合github上关于一份解析bplist的代码通过结果实际来看,博客中解析对象表的说明出现了问题,同原文不同处贴在下面


类型 HEX 说明
单字节 0X X=0:空值 X=8:布尔假 X=9:布尔真
整数 1X 后面跟的2^X个字节就是这个数字的值
浮点数 2X 后面跟的2^X个字节就是这个数字的值
日期 33 后面接着8个字节的浮点数时间戳
二进制 4X X表示这段数据的字节数,如果X=F,则后面取一个字节的后四位记为Y,随后的2^Y个字节解析为整数Z,即为这段数据的字节数
字符串 5X ASCII编码 X表示这段数据的字节数,如果X=F则后面作为整数对象继续解析所得数既为字节数如果X=F,则后面取一个字节的后四位记为Y,随后的2^Y个字节解析为整数Z,即为这段数据的字节数
字符串 6X Unicode编码 X表示这段数据的字节数,如果X=F则后面作为整数对象继续解析所得数既为字节数 如果X=F,则后面取一个字节的后四位记为Y,随后的2^Y个字节解析为整数Z,即为这段数据的字节数,记得双字节!
UID 8X X+1表示这段数据的字节数 现在被当做字符串来处理
数组 AX X表示其元素个数,如果X=F则后面作为整数对象继续解析所得数既为个数如果X=F,则后面取一个字节的后四位记为Y,随后的2^Y个字节解析为整数Z,即为这个数组的元素个数,  后面接着X或Z个元素在偏移表的位置
集合 CX X表示其元素个数,如果X=F则后面作为整数对象继续解析所得数既为个数如果X=F,则后面取一个字节的后四位记为Y,随后的2^Y个字节解析为整数Z,即为这段集合的元素个数, 后面接着X或Z个元素在偏移表的位置
字典 DX X表示其元素个数,如果X=F则后面作为整数对象继续解析所得数既为个数 如果X=F,则后面取一个字节的后四位记为Y,随后的2^Y个字节解析为整数Z,即为这段数据的字节数, 后面接着X或Z个key在偏移表的位置,X个value在偏移表的位置


另我个人写了一份解析bplist的python代码,上传在了github

0
0
查看评论

iOS之旅--显示网络图片和base64二进制图片

IOS之旅–显示网络图片和base64二进制图片显示网络图片在这里我使用的是SDWebImage源码, 首先我们需要下载SDWebImage的源码,地址为:https://github.com/rs/SDWebImage 把下载下来的代码中得 SDWebImage文件夹导入(copy)工程中, 需要...
  • sjl_leaf
  • sjl_leaf
  • 2015-09-02 15:41
  • 6264

java 解析 plist文件

转载自:http://archive.cnblogs.com/a/2391527/ 为了方便的将spritesheet的图导入我自己的动画编辑器! 我做了plist文件解析 DOM解析比较麻烦 因为element getChildNodes 会获取到text对象。而这个对象可能是一个空白字符解...
  • yang3wei
  • yang3wei
  • 2012-04-22 00:42
  • 5521

iOS中二进制数据转成字典

1.二进制数据转成字典 NSData *jsonData ; NSDictionary *dicJson=[NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers ...
  • l1902046733
  • l1902046733
  • 2016-03-09 14:11
  • 3441

STL 格式解析--文本以及二进制格式

STL 格式解析-主入口 判断文件是否有效 以及文件为文本或二进制read(const char *chFile) { bool bRet = false; FILE* fStl = fopen(chFile, "r"); if (fStl == nu...
  • yulinxx
  • yulinxx
  • 2017-07-05 17:20
  • 694

Java二进制协议之Hessian(1)

此文章是Hessian系列的第一篇,主要是介绍
  • kwclhit
  • kwclhit
  • 2014-10-06 10:22
  • 705

AFNetworking 返回数据为空或二进制等数据

最近在做IOS的开发,网络请求采用了AFNetworking框架,由于服务器端是接收JSON的数据,一开始没设置 manager.responseSerializer发现数据返回二进制, 后来设置为: manager.responseSerializer=[AFJSONResponseSeriali...
  • avsdszv2222
  • avsdszv2222
  • 2015-04-29 17:23
  • 2097

wav文件格式解析

WAV是由微软开发的一种音频格式。WAV符合 PIFF Resource Interchange File Format规范。WAV文件本身由三个“块”信息组成:将文件标识为WAV文件的RIFF块,识别采样率等参数的FORMAT块和包含实际数据(样本)的DATA块。 WAV文件格式说明 ...
  • gwhcsdn
  • gwhcsdn
  • 2017-04-29 16:42
  • 437

ARP实例分析-wireshark捕获的网络报文,二进制解析每个bit位对应的意思

下面是用wireshark捕获的一次arp报文,对他进行解析,不同的报文段使用了不同的颜色进行解析:     A B C D E F G H I J ...
  • u010476739
  • u010476739
  • 2015-09-12 23:55
  • 1013

Linux系统ELF文件二进制格式分析(二)

本文接着《Linux系统ELF文件二进制格式分析(一)》继续分析ELF文件格式
  • gongtxy
  • gongtxy
  • 2015-03-11 11:16
  • 1536

Excel 文件二进制结构分析

序我对 Excel 文件结构的学习研究,也是最近才开始。只是好奇,拿出改游戏的劲头与手段,一点点的啃。发觉似乎有不少人也对该文件格式感兴趣。只是很可惜,我找不到能力足够、并且愿意一起共享心得体会、共同学习的同道。一人独行,自然倍感寂寞,兴趣的火花也就时燃时灭;再加上我人比较懒,工作忙,也难以抵御外界...
  • luedipiaofeng
  • luedipiaofeng
  • 2007-10-16 18:37
  • 4634
    个人资料
    • 访问:16527次
    • 积分:402
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:4篇
    • 译文:0篇
    • 评论:0条
    文章分类