利索能及
我要发布
收藏
专利号: 2018105306280
申请人: 武汉斗鱼网络科技有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-24
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种检测C++虚表被hook的方法,其特征在于,包括:客户端获取只读数据rdata段,其中C++虚表存储于所述rdata段中;

所述客户端利用预设的共享密钥,将所述rdata段进行加密,并发送至服务器;

所述服务器根据加密结果检测所述C++虚表是否被hook,并将检测结果反馈至所述客户端。

2.根据权利要求1所述的方法,其特征在于,所述客户端获取只读数据rdata段,包括:获取模块定义文件,并根据模块定义文件对应的格式解析所述模块定义文件,得到各节点头信息;

遍历各节点头信息,并依据各节点头信息中的节点属性判断是否为rdata段;

若是,则获取rdata段的起始地址和内存大小,根据所述rdata段的起始地址和内存大小获取rdata段。

3.根据权利要求1所述的方法,其特征在于,在所述客户端利用预设的共享密钥,将所述rdata段进行加密之前,还包括:客户端按预设计算规则对所述rdata段进行哈希hash计算,得到hash结果;

相应的,所述将所述rdata段进行加密,包括:将所述rdata段的所述hash结果进行加密。

4.根据权利要求3所述的方法,其特征在于,所述服务器根据加密结果检测所述C++虚表是否被hook,包括:服务器对所述加密结果进行解密,得到解密结果,并判断所述解密结果与标准数据是否相匹配;

若否,则检测到所述C++虚表已被hook;

其中,所述标准数据为服务器按所述预设计算规则,对服务器内预先存储的所述rdata段进行hash计算得到的。

5.根据权利要求3所述的方法,其特征在于,所述客户端按预设计算规则对所述rdata段进行哈希hash计算,得到hash结果,包括:获取用户的信用值,并根据所述信用值选取加密等级;

根据所述加密等级选取对应数量的hash算法;

根据选取的对应数量的hash算法,分别对所述rdata段进行hash计算,并将各计算结果拼接为hash结果。

6.根据权利要求5所述的方法,其特征在于,在所述根据所述加密等级选取对应数量的hash算法之后,还包括:对所述rdata段进行分片,根据所述加密等级选取对应数量及位置的分片;

相应的,客户端根据选取的对应数量的hash算法,分别对选取的对应数量及位置的分片进行hash计算,并将各计算结果拼接为hash结果。

7.根据权利要求1所述的方法,其特征在于,在所述客户端获取只读数据rdata段之前,还包括:客户端生成第一公钥和第一私钥,并将所述第一公钥发送至所述服务器;

服务器生成第二公钥和第二私钥,并将所述第二公钥发送至所述客户端;

客户端根据所述第一私钥以及所述第二公钥生成第一共享密钥;

服务器根据所述第二私钥以及所述第一公钥生成第二共享密钥;

其中第一共享密钥的数值与第二共享密钥的数值一致,分别作为客户端与服务器的预设的共享密钥。

8.一种检测C++虚表被hook的装置,其特征在于,包括:数据获取模块,配置于客户端,用于获取只读数据rdata段,其中C++虚表存储于所述rdata段中;

加密模块,配置于所述客户端,用于利用预设的共享密钥,将所述rdata段进行加密,并发送至服务器;

检测模块,配置于所述服务器,用于根据加密结果检测所述C++虚表是否被hook,并将检测结果反馈至所述客户端。

9.一种终端,其特征在于,所述终端包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的检测C++虚表被hook的方法。

10.一种可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的检测C++虚表被hook的方法。