[发明专利]一种恢复Java序列化文件数据的方法有效

专利信息
申请号: 201610188809.0 申请日: 2016-03-29
公开(公告)号: CN105787128B 公开(公告)日: 2019-04-23
发明(设计)人: 黄旭;杨博 申请(专利权)人: 四川秘无痕信息安全技术有限责任公司
主分类号: G06F16/20 分类号: G06F16/20
代理公司: 暂无信息 代理人: 暂无信息
地址: 641000 *** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 恢复 java 序列 文件 数据 方法
【权利要求书】:

1.一种恢复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,用于标识数组描述的开始;

0x77,用于标识接下来的数据为块数据;

0x78,用于标识类结构描述的结束;

0x70,用于标识类有无超类;

所述S2的详细步骤如下:

S201:分析数据存放方式,获取数据结构,用于设计解析算法;

分析类结构存储方式:类结构的描述通过S1中数据类型标识符、结构控制标识符、数据长度以及数据四部分来完成,该描述是一串byte流,结构为:0x72,类名长度,类名,指纹与标识符,域数量,域列表,0x78,引用标志;

数据含义与数据存储结构分析:数据与紧跟着类结构描述的结束符,是一系列数据描述首尾相接的byte串,结构为:数据类型描述符,数据;

S202:定义中间结构;

所述中间结构需要存放类描述编号,类型名称,类型名,类型数据。

2.根据权利要求1所述的一种恢复Java序列化文件数据的方法,其特征在于:所述S3的详细步骤如下:

S301:以递归方式遍历解析整个文件,分级构建中间结果,最终获得一个总的中间结果;

S302:对于首次完成描述的类结构,将该类转换得到的中间结构存放在列表中,从0开始编号,当遇到已描述标志0x71时,根据该表之后的数字ID检索类描述并加载。

3.根据权利要求2所述的一种恢复Java序列化文件数据的方法,其特征在于:所述S5的详细步骤如下:

S501:深度遍历中间结果生成的节点并解析;若最外层节点为类描述则执行S502;

S503:创建临时.java源文件;

S504:以类描述中类名为原文件中类名;

S505:读取已获取到的中间结果的节点名称获取节点名称;

S506:读取已获取到的中间结果中节点存放的数据类型,动态建立变量;

S507:统计节点数量;

S508:根据数据类型与名称向临时.Java文件写入域的信息;

S509:源文件中写入get和set方法;

S5010:存储源文件为其本身类名;

S5011:动态编译生成源文件为.class文件。

4.根据权利要求3所述的一种恢复Java序列化文件数据的方法,其特征在于:所述S6的详细步骤如下:

S601:针对已生成类模版的数据,取最外层节点;

S602:当需要直接恢复全部序列化数据时执行S603,当仅需要恢复序列化数据中的部分数据,执行S604-S606;

S603:利用java自带的序列化类数据读取接口直接生成类对象并使用java对对象的访问方式对类对象进行访问,结束;

S604:利用反射生成类对象;

S605:遍历生成的中间对象中的数据域部分;

S606:解析每个数据域的项,反射调用参数的set方法为类参数赋值或调用get方法获取参数值,结束。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川秘无痕信息安全技术有限责任公司,未经四川秘无痕信息安全技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201610188809.0/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top