[发明专利]神通数据库SQL命令与参数的解析还原方法在审
| 申请号: | 201910839746.4 | 申请日: | 2019-09-06 |
| 公开(公告)号: | CN112464226A | 公开(公告)日: | 2021-03-09 |
| 发明(设计)人: | 何建锋;张斌祥;武博 | 申请(专利权)人: | 西安交大捷普网络科技有限公司 |
| 主分类号: | G06F21/55 | 分类号: | G06F21/55 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 710075 陕西省*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 神通 数据库 sql 命令 参数 解析 还原 方法 | ||
1.神通数据库SQL命令与参数的解析还原方法,其特征在于,包括:
循环获取神通数据库协议的交互数据包;
解析数据包得到其应用层数据,提取应用层数据体前两字节的内容,根据字节值判断数据包类型:
值0x00,判断数据包为客户端连接请求,
值0x51,判断数据包为客户端SQL请求,
值0x50,判断数据包为数据库对客户端查询语句结果的响应,
值0x58,判断数据包为客户端的断开连接请求;
对上述的不同数据包类型,分别执行相应的解析流程,分析并提取SQL命令与参数填入还原列表。
2.根据权利要求1所述的方法,其特征在于,提取客户端连接请求包的命令与参数,包括以下步骤:
S11.从数据体头向后偏移2字节,取数值,若为0则直接返回、不解析;否则进行下一步;
S12.从数据体头向后偏移4字节,取3个字节内容转换为字符串,若为“MD5”则直接返回、不解析;否则进行下一步;
S13.从数据体头向后偏移136字节,取接下来的、直至空字节之前的字节内容,转换为字符串,判断字符串的第一个字符是否为0:
若不为0,则将取到的字符串提取为客户端的用户名;
若为0,重新从数据体头向后偏移72字节,取接下来的、直至空字节之前的字节内容,转换为字符串,再次判断字符串的第一个字符是否为0,若不为0则将取到的字符串提取为客户端的用户名。
3.根据权利要求1或2所述的方法,其特征在于,应用层数据体前两字节的值为0x52,判断数据包为数据库对客户端连接请求的响应,给SQL语句赋值为“LOGIN”。
4.根据权利要求1所述的方法,其特征在于,提取客户端SQL请求包的命令与参数,包括以下步骤:
从数据体头向后偏移3字节,取接下来的所有字符串,判断字符串中是否包含“PREPAREJDBC_STATEMENT_”:
若不包含,则将取出的字符串拷贝至SQL中;
若包含,重新从数据体头向后偏移31字节,取接下来的所有字符串,进一步判断字符串中是否包含“DECLARE JDBC_CURS_”与“SELECT”,若包含,则从该包含的字符串开始将取出的字符串拷贝至SQL中。
5.根据权利要求1或4所述的方法,其特征在于,应用层数据体前两字节的值为0x43,判断数据包为数据库对客户端SQL请求的响应,直接返回、不解析。
6.根据权利要求1所述的方法,其特征在于,数据库对客户端查询语句结果的响应包,提取其命令与参数,包括解析查询语句的结果集与影响行数。
7.根据权利要求1所述的方法,其特征在于,客户端断开连接请求,给SQL语句赋值为“LOGOUT”。
8.根据权利要求1所述的方法,其特征在于,应用层数据体前两字节的值为0x45,判断数据包为数据库对客户端连接错误的响应,从数据体头向后偏移1字节,取5字节的内容,转换为字符串,得到数据库向客户端返回的错误码。
9.根据权利要求1所述的方法,其特征在于,提取应用层数据体前两字节之前:
获取应用层数据总长度、数据头长度与数据体长度;
若应用层总长度小于数据头长度,排除该数据包、不进行解析;
若应用层总长度小于数据头与数据体长度之和,该数据包不完整、需要与后续数据包进行组包再解析。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交大捷普网络科技有限公司,未经西安交大捷普网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910839746.4/1.html,转载请声明来源钻瓜专利网。





