[发明专利]防止Flash应用程序中函数非法调用的方法及装置在审
申请号: | 201710423105.1 | 申请日: | 2017-06-07 |
公开(公告)号: | CN107358071A | 公开(公告)日: | 2017-11-17 |
发明(设计)人: | 周志刚;张文明;陈少杰 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F21/12 |
代理公司: | 北京众达德权知识产权代理有限公司11570 | 代理人: | 刘杰 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 防止 flash 应用程序 函数 非法 调用 方法 装置 | ||
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种防止Flash应用程序中函数非法调用的方法及装置。
背景技术
目前,Flash被广泛的用于网页设计、网页动画制作及网页视频播放等技术领域。大多数的视频网站包括直播网站都采用Flash作为其视频播放器,并且大多数的网页游戏也会使用Flash来开发。
Flash是使用ActionScript脚本语言来开发的,由于其脚本语言的特性,导致其非常容易被反编译,从而可以从最终发布的SWF文件中反编译查看其源码,并寻找其各个功能接口及接口的使用方法。其中SWF文件是Flash的执行文件。同时,由于Flash具有反射机制的原理,从而可以从最终发布的SWF文件中获取到SWF文件的所有函数接口,通过反射机制则可以调用其函数接口功能,第三方程序则可以直接使用该SWF的功能。例如,Flash中会使用资源文件,而通常资源文件是使用加密后在网络中传输,而当Flash使用资源文件时,则会先对资源文件进行解密,解密后才能正常使用。那么在Flash的SWF文件中则会编写相应的资源文件解密接口。而HACK则可以先直接获取SWF文件,然后通过反编译来查看SWF文件的解密接口,然后通过反射机制直接调用该接口来实现对资源文件的解密,从而可以获取到原始的资源文件。
因此,如何提供一种能够保护Flash应用程序的接口函数,防止其被其它第三方程序非法调用的方法具有重要意义。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的防止Flash应用程序中函数非法调用的方法及装置。
本发明的一个方面,提供了一种防止Flash应用程序中函数非法调用的方法,包括:
获取Flash应用程序中被调用的目标函数的当前调用堆栈信息;
判定所述当前调用堆栈信息是否为所述目标函数对应的合法调用堆栈信息,所述合法调用堆栈信息为所述目标函数被所述Flash应用程序自身调用时的调用堆栈信息;
若所述当前调用堆栈信息为所述目标函数对应的合法调用堆栈信息,则确定所述目标函数被合法调用,并正常执行所述目标函数。
其中,若所述当前调用堆栈信息不是所述目标函数对应的合法调用堆栈信息,还包括:
确定所述目标函数被非法调用,并终止所述目标函数的执行。
其中,所述判定所述当前调用堆栈信息是否为所述目标函数对应的合法调用堆栈信息,包括:
根据预设的映射关系查找所述目标函数对应的合法调用堆栈信息列表,所述映射关系中包括目标函数与对应的合法调用堆栈信息列表之间的对应关系;
判定所述合法调用堆栈信息列表中是否包括所述当前调用堆栈信息;
若所述合法调用堆栈信息列表中包括所述当前调用堆栈信息,则确定所述当前调用堆栈信息为所述目标函数对应的合法调用堆栈信息。
其中,在所述获取Flash应用程序中被调用的目标函数的当前调用堆栈信息之前,还包括:
判断所述目标函数是否属于预先指定的核心函数;
若所述目标函数属于预先指定的核心函数,则执行所述获取Flash应用程序中被调用的目标函数的当前调用堆栈信息的步骤。
其中,所述预先指定的核心函数包括资源解密函数、数据加解密函数和用户指定的函数。
其中,所述获取Flash应用程序中被调用的目标函数的当前调用堆栈信息,包括:
调用预先添加在所述目标函数指定位置的Flash功能函数获取所述当前调用堆栈信息,所述Flash功能函数为预先编写的用于获取函数调用堆栈信息的函数。
其中,在所述终止所述目标函数的执行之后,还包括:
生成非法调用提示信息,将所述非法调用提示信息上报服务器。
本发明的另一个方面,提供了一种防止Flash应用程序中函数非法调用的装置,包括:
获取模块,用于获取Flash应用程序中被调用的目标函数的当前调用堆栈信息;
判定模块,用于判定所述当前调用堆栈信息是否为所述目标函数对应的合法调用堆栈信息,所述合法调用堆栈信息为所述目标函数被所述Flash应用程序自身调用时的调用堆栈信息;
执行模块,用于当所述判定模块的判定结果为当前调用堆栈信息为所述目标函数对应的合法调用堆栈信息时,确定所述目标函数被合法调用,并正常执行所述目标函数。
此外,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710423105.1/2.html,转载请声明来源钻瓜专利网。