[发明专利]一种代码检测方法、设备及介质有效
申请号: | 201910769427.0 | 申请日: | 2019-08-20 |
公开(公告)号: | CN110659204B | 公开(公告)日: | 2021-04-20 |
发明(设计)人: | 黄斌;袁明凯;王烨坤;罗章龙;严明 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;贾允 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 检测 方法 设备 介质 | ||
本发明公开了一种代码检测方法、设备及介质,所述代码检测的方法能够通过语义信息进行检测,或者通过场景逻辑进行检测。其中,通过语义信息进行检测的方法可以通过词库或者翻译获取代码变量的语义信息,所述语义信息能够表征代码执行的操作,根据通用测试用例,寻找对应的代码执行操作进行代码检测。通过场景逻辑检测的方法包括结合逻辑关系模型和语义信息,明确场景逻辑的语义,进行逐层筛选场景逻辑,检查伪代码文件中条件缺失的部分。所述方法将应用场景和代码变量进行关联,在具体的应用场景中进行错误代码的检测,并通过语义信息校验并明确代码变量之间的逻辑关系,提高场景逻辑筛选的准确度,同时提高了代码检测的准确度。
技术领域
本发明涉及代码调试领域,尤其涉及一种代码检测方法、设备及介质。
背景技术
对于软件项目,尤其是游戏项目而言,存在一部分为代理项目的游戏,而对于绝大部分代理项目,源代码是高度机密信息,因此对这类项目直接进行源代码层级的扫描方案经常是不可行。代理项目游戏中如果存在错误代码,进行检测和修正可能会不够及时准确,容易引起玩家的不满情绪,会对游戏运营造成不良影响。
此外,在进行代码检测时,通常只是在代码层面上进行检测,检查代码的功能是否完善,但是与具体的应用场景是分离的,不能确定代码是否能够完成具体的应用场景。有的场景下,如果缺少某一判断条件,可能会导致玩家越权执行操作或者游戏角色的伤害计算不对等等情况,但是可能在代码层面,缺少该判断条件并不会出现明显的问题。因此会出现在运行代码时没有检测到错误的代码,但是更新游戏后,玩家在具体游戏场景里进行操作时会出现漏洞的问题,同样会对游戏运营造成不良影响。
发明内容
为了解决不能直接扫描源代码,以及技术代码和场景语义分离的问题,得到在无源码的情况下分析,以及关联代码和场景的技术效果,本发明提供了一种代码检测方法、设备及介质。
一方面,本发明提供了一种代码检测方法,所述方法包括:
获取源码文件编译的数据文件;
通过反编译数据文件,获取伪代码文件,所述伪代码文件为和源码文件逻辑相匹配的文件;
获取所述伪代码文件中代码变量的语义信息,所述语义信息为用于表征代码变量执行的操作;
基于所述语义信息对所述代码变量进行检测,获取所述伪代码文件中的错误代码;
确定所述伪代码文件中代码变量之间的逻辑关系;
根据所述语义信息和所述逻辑关系,得到所述代码变量组成的场景逻辑;
基于所述场景逻辑对所述代码变量进行检测,获取所述伪代码文件中的错误代码。
另一方面提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行一种代码检测方法。
另一方面提供了一种介质,所述介质包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现一种代码检测方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910769427.0/2.html,转载请声明来源钻瓜专利网。