[发明专利]一种恢复Java序列化文件数据的方法有效
| 申请号: | 201610188809.0 | 申请日: | 2016-03-29 |
| 公开(公告)号: | CN105787128B | 公开(公告)日: | 2019-04-23 |
| 发明(设计)人: | 黄旭;杨博 | 申请(专利权)人: | 四川秘无痕信息安全技术有限责任公司 |
| 主分类号: | G06F16/20 | 分类号: | G06F16/20 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 641000 *** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 恢复 java 序列 文件 数据 方法 | ||
本发明公开了一种恢复Java序列化文件数据的方法,包括以下步骤:S1:分析并记录数据类型及结构的标识符;S2:定义中间结构用于存放各节点的数据类型名称、域名称及值;S3:获得最上层的中间结果,维护一个类定义ID列表;S4:展开中间结果,换为json字符串;S5:提取类的结构并生成类模版用于内存数据恢复;S6:恢复完整的序列化数据至内存中。本发明的有益效果如下:能够在无法获知原数据结构的情况下,将标准Java序列化文件解析成为JSON或XML格式的通用数据;将序列化文件解析成JSON或XML的基础上,为目标平台生成原有的实体类,并将解析的数据以对象的形式供目标平台调用;恢复的实体类可以动态编译为.class文件,供目标平台在后续对数据的处理中使用。
技术领域
本发明涉及信息安全技术领域,特别涉及一种恢复Java序列化文件数据的方法。
背景技术
在数据解析恢复领域经常会遇到序列化文件的解析。Java序列化是Java 自身提供的一种数据序列化方式,它允许开发人员将一个或一系列以类为基础的结构化的数据以流的形式存放在存储装置中。这种机制极大方便了开发人员对复杂数据结构的流式传输需求。
原有的Java序列化恢复方法有如下明显缺陷和不便:
1、序列化数据原数据结构丢失的情况下,无法通过Java原有的反序列化机制将序列化的数据恢复成为原有的结构。
2、在无法获知原数据结构的情况下,通常可以通过人工手动进行解析,但当数据较复杂时,人工解析就较为困难且耗时。
3、对结构相同的数据可以通过编写对指定结构的脚本来解析,但该方法无法保证解析脚本的通用性。无法应对众多未知结构的序列化数据。
4、人工解析和脚本解析无法将任意序列化文件中的数据恢复成为结构化的内存对象供系统直接调用。
发明内容
本发明针对现有技术的缺陷,提供了一种恢复Java序列化文件数据的方法,能有效的解决上述现有技术存在的问题。
一种恢复Java序列化文件数据的方法,包括以下步骤:
S1:分析并记录Java序列化文件数据中关于数据类型及结构的标识符;
S2:定义中间结构用于存放解析过程中生成的各节点的数据类型名称、域名称及值;
S3:根据规则遍历解析序列化文件中的节点,获得一个最上层的中间结果, 解析过程中维护一个类定义ID列表;
S4:展开中间结果,将中间结果利用android自带的json工具转换为json 字符串。
S5:提取类的结构并生成类模版用于内存数据恢复;
S6:恢复完整的序列化数据至内存中。
作为优选,所述S1中数据类型标识符用于标识其所修饰的数据类型,共有十个,分别对应着java中的8个基本数据类型、java类以及数组;
具体含义为:0x42表示byte;0x43表示char;0x44表示double;0x46表示float;0x49表示int;0x50表示long;Ox4c表示对象;0x53表示short;0x5a 表示boolean;0x5b表示数组。
作为优选,所述S1中结构控制标识主要有以下几种:
0x71,用于标识类已经被描述过,参考描述列表的记录;
0x72,用于标识类属性描述的开始;
0x73,用于标识对象描述的开始;
0x74,用于标识该结构为String;
0x75,用于标识数组描述的开始;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川秘无痕信息安全技术有限责任公司,未经四川秘无痕信息安全技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610188809.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:智能问答方法、装置及系统
- 下一篇:一种推荐应用软件的方法及装置





