一种保护核心代码的方法、装置、设备和存储介质制造方法及图纸

技术编号:35362974 阅读:16 留言:0更新日期:2022-10-29 18:01
本发明专利技术提供了一种保护核心代码的方法包括:建立核心代码基础类;编写析构函数,以继承所述核心代码基础类;建立核心调用接口,以在调用系统API函数时,提供一个传递参数和一个返回值;建立IO系统函数调用规范接口;编写检测逻辑接口,并将所述检测逻辑嵌入到核心代码执行代码中;根据所述核心调用接口和所述IO系统函数调用规范接口的代码类型分别建立保护不同等级的保护策略,以实现核心代码的保护,并将不同的逻辑拆分到不同的层来实现,同时不同层之间通过参数来传递数据和结果,采用不同等级的多种保护策略,增加了序核心代码的逆向分析难度。分析难度。分析难度。

【技术实现步骤摘要】
一种保护核心代码的方法、装置、设备和存储介质


[0001]本专利技术实施例涉及计算机
,尤其涉及一种保护核心代码的方法、装置、设备和存储介质。

技术介绍

[0002]对于游戏程序来说,有些核心逻辑是编写在客户端代码中,一旦被黑客或者竞争对手通过逆向分析清楚,核心功能很有可能会被盗用,传统方法都是通过检测反调试等来阻止黑客进行挑选,当系统检测新/可疑调试文件,便会检查它们的行为,黑客一旦用这些技术检测到这些组织行为,就不执行相关操作以规避检测调试,仍能继续对核心功能进行调用。
[0003]因此,亟需一种方法来保护游戏程序核心代码不易于被逆向。

技术实现思路

[0004]本专利技术提供了一种保护核心代码的方法,通过对核心调用接口和IO系统函数调用规范接口进行规范和区分,并将不同的逻辑拆分到不同的层来实现,同时不同层之间通过参数来传递数据和结果,采用不同等级的多种保护策略,增加了序核心代码的逆向分析难度。
[0005]第一方面,本专利技术的实施例提供一种保护核心代码的方法,包括:
[0006]建立核心代码基础类;
[0007]编写析构函数,以继承所述核心代码基础类;
[0008]建立核心调用接口,以在调用系统API函数时,提供一个传递参数和一个返回值;
[0009]建立IO系统函数调用规范接口;
[0010]编写检测逻辑接口,并将所述检测逻辑嵌入到核心代码执行代码中;
[0011]根据所述核心调用接口和所述IO系统函数调用规范接口的代码类型分别建立保护不同等级的保护策略,以实现核心代码的保护。
[0012]优选的是,所述检测逻辑的接口编写,具体包括如下步骤:
[0013]在核心代码的CoreCode的函数头调用中传入堆栈检测参数true;
[0014]在核心代码的CoreCode的函数尾调用中传入堆栈检测参数false;
[0015]遍历开发代码,若所述堆栈检测参数true和所述堆栈检测参数false均被调用,且检测到的调用函数与调用堆栈一致,判定为合法调用。
[0016]优选的是,还包括:
[0017]遍历所有函数调用;
[0018]若所述核心调用接口存在非API函数调用或所述IO系统函数调用规范接口中是存在非IO函数调用,判定为误调用;
[0019]并检测每个接口的函数调用时间。
[0020]优选的是,所述IO系统函数调用规范接口包括:IO逻辑的调用接口、核心代码的抽
象接口、非核心代码的抽象接口、结果数据上报接口和上层调用者区分接口。
[0021]优选的是,所述保护策略包括基于代码的虚拟化保护、基于代码的混淆保护、基于代码的完整性保护、基于代码的反调试保护和现有的核心代码的代码保护中的一种或几种。
[0022]优选的是,所述核心调用接口的代码、所述IO逻辑的调用接口的代码、所述核心代码的抽象接口的代码和所述结果数据上报接口代码的保护策略为基于代码的混淆保护,具体包括:
[0023]对现有核心调用接口代码中的所有汇编代码插入混淆后的汇编代码;
[0024]并插入无效汇编代码;
[0025]改变现有汇编代码的执行顺序和结构;
[0026]构造多个虚假分支,虚假循环;
[0027]并将一段完整汇编代码拆分成多个片段单元。
[0028]优选的是,所述上层调用者区分接口的代码和所述检测逻辑接口的代码保护策略为基于基于代码的虚拟化保护,具体包括:编写一套虚拟机,将现有函数代码进行按照虚拟机进行转换,从而获得虚拟字节码。
[0029]第二方面,本专利技术实施例提供一种保护核心代码的装置,包括:
[0030]基础模块,其用于建立核心代码基础类;
[0031]析构模块,其用于编写析构函数,以继承所述核心代码基础类;
[0032]调用接口模块,其用于建立核心调用接口,以在调用系统API函数时,提供一个传递参数和一个返回值;
[0033]规范接口模块,其用于建立IO系统函数调用规范接口;
[0034]检测模块,其用于编写检测逻辑接口,并将所述检测逻辑嵌入到核心代码执行代码中;
[0035]保护策略模块,其用于根据所述核心调用接口和所述IO系统函数调用规范接口的代码类型分别建立保护不同等级的保护策略,以实现核心代码的保护。
[0036]第三方面,本专利技术实施例提供一种电子设备,包括应用处理器和存储器,其特征在于,所述处理器用于实现所述存储器中存储得计算机管理程序式时实现如权利要求1

7中任一项所述的保护核心代码的方法。
[0037]第四方面,本专利技术实施例提供一种计算机可读存储介质,其上存储有计算机管理类程序,其特征在于,所述计算机管理类程序被处理器执行时实现如权利要求1

7中任意一项所述的保护核心代码的方法的步骤。
[0038]有益效果
[0039]本专利技术提供了一种保护核心代码的方法,通过对核心调用接口和IO系统函数调用规范接口进行规范和区分,并将不同的逻辑拆分到不同的层来实现,同时不同层之间通过参数来传递数据和结果,采用不同等级的多种保护策略,增加了序核心代码的逆向分析难度。
附图说明
[0040]图1为本专利技术所述的保护核心代码的方法流程图。
[0041]图2为本专利技术所述的检测逻辑接口的方法流程图。
[0042]图3为本专利技术所述的本专利技术程序核心代码的保护装置实施例的单元结构示意图。
[0043]图4为本专利技术实施例提供的具有程序核心代码的保护功能的装置的硬件结构示意图。
[0044]图5为本专利技术实施例提供的一种可能的电子设备的实施例示意图;
[0045]图6为本专利技术实施例提供的一种可能的计算机可读存储介质的实施例示意图。
具体实施方式
[0046]以下由特定的具体实施例说明本专利技术的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本专利技术的其他优点及功效,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0047]需要说明的是,在本专利技术的描述中,术语“中”、“上”、“下”、“横”、“内”等指示的方向或位置关系的术语是基于附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示所述装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0048]此外,还需要说明的是,在本专利技术的描述中,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种保护核心代码的方法,其特征在于,包括:建立核心代码基础类;编写析构函数,以继承所述核心代码基础类;建立核心调用接口,以在调用系统API函数时,提供一个传递参数和一个返回值;建立IO系统函数调用规范接口;编写检测逻辑接口,并将所述检测逻辑嵌入到核心代码执行代码中;根据所述核心调用接口和所述IO系统函数调用规范接口的代码类型分别建立保护不同等级的保护策略,以实现核心代码的保护。2.根据权利要求1所述的保护核心代码的方法,其特征在于,所述检测逻辑的接口编写,具体包括如下步骤:在核心代码的CoreCode的函数头调用中传入堆栈检测参数true;在核心代码的CoreCode的函数尾调用中传入堆栈检测参数false;遍历开发代码,若所述堆栈检测参数true和所述堆栈检测参数false均被调用,且检测到的调用函数与调用堆栈一致,判定为合法调用。3.根据权利要求2所述的保护核心代码的方法,其特征在于,还包括:遍历所有函数调用;若所述核心调用接口存在非API函数调用或所述IO系统函数调用规范接口中是存在非IO函数调用,判定为误调用;并检测每个接口的函数调用时间。4.根据权利要求1

3中任一项所述的保护核心代码的方法,其特征在于,所述IO系统函数调用规范接口包括:IO逻辑的调用接口、核心代码的抽象接口、非核心代码的抽象接口、结果数据上报接口和上层调用者区分接口。5.根据权利要求4所述的保护核心代码的方法,其特征在于,所述保护策略包括基于代码的虚拟化保护、基于代码的混淆保护、基于代码的完整性保护、基于代码的反调试保护和现有的核心代码的代码保护中的一种或几种。6.根据权利要求5所述的保护核心代码的方法,其特征在于,所述核...

【专利技术属性】
技术研发人员:周志刚
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1