一种代码检测方法、设备及介质技术

技术编号:23049823 阅读:12 留言:0更新日期:2020-01-07 14:44
本发明专利技术公开了一种代码检测方法、设备及介质,所述代码检测的方法能够通过语义信息进行检测,或者通过场景逻辑进行检测。其中,通过语义信息进行检测的方法可以通过词库或者翻译获取代码变量的语义信息,所述语义信息能够表征代码执行的操作,根据通用测试用例,寻找对应的代码执行操作进行代码检测。通过场景逻辑检测的方法包括结合逻辑关系模型和语义信息,明确场景逻辑的语义,进行逐层筛选场景逻辑,检查伪代码文件中条件缺失的部分。所述方法将应用场景和代码变量进行关联,在具体的应用场景中进行错误代码的检测,并通过语义信息校验并明确代码变量之间的逻辑关系,提高场景逻辑筛选的准确度,同时提高了代码检测的准确度。

A code detection method, equipment and medium

【技术实现步骤摘要】
一种代码检测方法、设备及介质
本专利技术涉及代码调试领域,尤其涉及一种代码检测方法、设备及介质。
技术介绍
对于软件项目,尤其是游戏项目而言,存在一部分为代理项目的游戏,而对于绝大部分代理项目,源代码是高度机密信息,因此对这类项目直接进行源代码层级的扫描方案经常是不可行。代理项目游戏中如果存在错误代码,进行检测和修正可能会不够及时准确,容易引起玩家的不满情绪,会对游戏运营造成不良影响。此外,在进行代码检测时,通常只是在代码层面上进行检测,检查代码的功能是否完善,但是与具体的应用场景是分离的,不能确定代码是否能够完成具体的应用场景。有的场景下,如果缺少某一判断条件,可能会导致玩家越权执行操作或者游戏角色的伤害计算不对等等情况,但是可能在代码层面,缺少该判断条件并不会出现明显的问题。因此会出现在运行代码时没有检测到错误的代码,但是更新游戏后,玩家在具体游戏场景里进行操作时会出现漏洞的问题,同样会对游戏运营造成不良影响。
技术实现思路
为了解决不能直接扫描源代码,以及技术代码和场景语义分离的问题,得到在无源码的情况下分析,以及关联代码和场景的技术效果,本专利技术提供了一种代码检测方法、设备及介质。一方面,本专利技术提供了一种代码检测方法,所述方法包括:获取源码文件编译的数据文件;通过反编译数据文件,获取伪代码文件,所述伪代码文件为和源码文件逻辑相匹配的文件;获取所述伪代码文件中代码变量的语义信息,所述语义信息为用于表征代码变量执行的操作;基于所述语义信息对所述代码变量进行检测,获取所述伪代码文件中的错误代码;确定所述伪代码文件中代码变量之间的逻辑关系;根据所述语义信息和所述逻辑关系,得到所述代码变量组成的场景逻辑;基于所述场景逻辑对所述代码变量进行检测,获取所述伪代码文件中的错误代码。另一方面提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行一种代码检测方法。另一方面提供了一种介质,所述介质包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现一种代码检测方法。本专利技术提供的一种代码检测方法、设备及介质,所述方法能够通过语义信息进行检测,或者通过场景逻辑进行检测。其中,通过语义信息进行检测的方法可以通过词库或者翻译获取代码变量的语义信息,所述语义信息能够表征代码执行的操作,根据通用测试用例,寻找对应的代码执行操作进行代码检测。通过场景逻辑检测的方法可以根据逻辑关系模型和语义信息,获取代码变量组成的场景逻辑,所述语义信息可以对所述场景逻辑进行校验,排除错误的逻辑关系,以及对场景逻辑的语义进行明确。在伪代码文件中进行逐层筛选场景逻辑,可以检查伪代码文件中场景逻辑条件缺失的部分。所述方法将应用场景和代码变量进行关联,在具体的应用场景中进行错误代码的检测,并通过语义信息校验并明确代码变量之间的逻辑关系,提高场景逻辑筛选的准确度,同时提高了代码检测的准确度。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种代码检测方法的应用场景示意图;图2为本专利技术实施例提供的一种代码检测方法的流程图;图3为本专利技术实施例提供的一种代码检测方法中获取所述伪代码文件中代码变量的语义信息的方法的流程图;图4为本专利技术实施例提供的一种代码检测方法中基于所述语义信息进行错误代码检测的方法的流程图;图5为本专利技术实施例提供的一种代码检测方法中确定伪代码文件中代码变量之间的逻辑关系之后,进行错误的逻辑关系的排查方法;图6为本专利技术实施例提供的一种代码检测方法中获取代码变量组成的场景逻辑的方法的流程图;图7为本专利技术实施例提供的一种代码检测方法中基于所述场景逻辑检测伪代码文件中的错误代码的方法;图8为本专利技术实施例提供的一种代码检测装置的结构示意图;图9为本专利技术实施例提供的一种用于实现本专利技术实施例所提供的方法的设备的硬件结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述。显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在本专利技术的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。而且,术语“第一”、“第二”等适用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。首先对本专利技术实施例中所涉及的相关术语做以下解释:Python:Python是一种计算机程序设计语言,是一种面向对象的动态类型语言。C++:是C语言的继承,既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。驼峰命名法:是电脑程式编写时的一套命名规则,是指混合使用大小写字母来构成变量和函数的名字,程序员们为了自己的代码能更容易的在同行之间交流,所以多采取统一的可读性比较好的命名方式。Windows:Windows操作系统是最常见的计算机操作系统,是微软公司开发的操作软件。Linux:是一套免费使用和自由传播的类Unix操作系统,UNIX操作系统是一个多用户、多任务的分时操作系统,支持多种处理器架构。Linux是一个基于可移植操作系统接口和Unix的多用户、多任务、支持多线程和多中央处理器的操作系统。请参见图1,其显示了本专利技术实施例提供的一种代码检测方法的应用场景示意图,所述应用场景包括用户终端19和服务器120。其中所述服务器通过部署在服务器上的反编译程序,对用户终端中运行的待检测项目进行反编译,获得待检测项目的伪代码文件。服务器通过词库或者翻译获取伪代码文件中代码变量的语义信息。基于所述语义信息,检测执行器扫描所述伪代码文件,检测伪代码文件中的错误代码。获取伪代码文件中代码变量之间的逻辑关系,根据所述语义信息和逻辑关系,得到所述代码变量组成的场景逻辑。基于所述场景逻辑,检测执行器扫描所述伪代码文件,检测伪代码文件中的错误代码。在本专利技术实施例中本文档来自技高网...

【技术保护点】
1.一种代码检测方法,其特征在于,所述方法包括:/n获取源码文件编译的数据文件;/n通过反编译数据文件,获取伪代码文件,所述伪代码文件为和源码文件逻辑相匹配的文件;/n获取所述伪代码文件中代码变量的语义信息,所述语义信息为用于表征代码变量执行的操作;/n基于所述语义信息对所述代码变量进行检测,获取所述伪代码文件中的错误代码;/n确定所述伪代码文件中代码变量之间的逻辑关系;/n根据所述语义信息和所述逻辑关系,得到所述代码变量组成的场景逻辑;/n基于所述场景逻辑对所述代码变量进行检测,获取所述伪代码文件中的错误代码。/n

【技术特征摘要】
1.一种代码检测方法,其特征在于,所述方法包括:
获取源码文件编译的数据文件;
通过反编译数据文件,获取伪代码文件,所述伪代码文件为和源码文件逻辑相匹配的文件;
获取所述伪代码文件中代码变量的语义信息,所述语义信息为用于表征代码变量执行的操作;
基于所述语义信息对所述代码变量进行检测,获取所述伪代码文件中的错误代码;
确定所述伪代码文件中代码变量之间的逻辑关系;
根据所述语义信息和所述逻辑关系,得到所述代码变量组成的场景逻辑;
基于所述场景逻辑对所述代码变量进行检测,获取所述伪代码文件中的错误代码。


2.根据权利要求1所述的一种代码检测方法,其特征在于,所述获取伪代码文件中代码变量的语义信息包括:
查找预设的词库信息是否存在所述伪代码文件中的代码变量;
若查找的结果为是时,则根据所述查找结果,获取所述代码变量的语义信息。


3.根据权利要求2所述的一种代码检测方法,其特征在于,所述获取所述伪代码文件中代码变量的语义信息还包括:
若查找的结果为否时,则根据预设的代码命名方法,拆分所述代码变量;
通过翻译所述拆分后的代码变量,获取所述代码变量的语义信息。


4.根据权利要求1所述的一种代码检测方法,其特征在于,所述基于所述语义信息对所述代码变量进行检测,获取所述伪代码文件中的错误代码包括:
根据所述代码变量的语义信息,确定代码变量执行的操作;
确定通用测试用例中执行的操作;
根据所述通用测试用例中执行的操作,检测是否存在对应的代码变量执行的操作;
若否,则确定所述代码变量为伪代码文件中的错误代码。


5.根据权利要求1所述的一种代码检测方法,其特征在于,所述确定所述伪代码文件中代码变量之间的逻辑关系包括:
基于预设的逻辑关系模...

【专利技术属性】
技术研发人员:黄斌袁明凯王烨坤罗章龙严明
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1