一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

保卫软件例程的制作方法

2022-06-01 19:28:19 来源:中国专利 TAG:

技术特征:
1.一种保卫在执行环境中执行的软件实例中实现的软件例程的方法,所述方法包括:通过存储对所述软件例程的引用来利用所述引用初始化软件实例的代码块,使得所存储的引用对于所述代码块外部的代码是不可访问的;以及返回对所述代码块的引用,对所述代码块的引用由所述代码块外部的软件实例使用以调取所述软件例程;其中所述代码块被配置成:(a)使用所存储的引用调取所述软件例程,以及(b)在所述代码块对所述软件例程进行预定次数的调取之后,修改所存储的引用以便防止所述代码块进一步调取所述软件例程。2.一种在执行环境中执行的软件实例中执行软件例程的方法,所述方法包括:执行软件实例的代码块,所述执行所述代码块包括所述代码块进行如下操作:使用对所述软件例程的引用来调取所述软件例程,对所述软件例程的引用被存储为所述代码块的初始化的一部分,使得所存储的引用对于所述代码块外部的代码是不可访问的;以及在确定所述软件例程已经被所述代码块调取了预定次数时,修改所存储的引用,以便防止所述代码块进一步调取所述软件例程。3.根据任一项前述权利要求所述的方法,其中所述执行环境防止所述代码块外部的代码访问所存储的引用。4.根据任一项前述权利要求所述的方法,其中存储所述引用包括将所述软件例程的存储器地址存储在指针中,并且修改步骤包括修改存储在指针中的存储器地址。5.根据权利要求1-3中任一项所述的方法,其中存储所述引用包括将所述软件例程作为功能对象存储在功能对象变量中,并且修改步骤包括覆写存储在功能对象变量中的功能对象。6.根据任一项前述权利要求所述的方法,其中通过执行另外的代码块来存储对所述软件例程的引用,所述另外的代码块一旦被执行,就不能够由所述另外的代码块外部的代码来访问,并且其中所述代码块由所述另外的代码块来定义。7.一种保卫在执行环境中执行的软件实例中实现的软件例程的方法,所述方法包括:通过存储损坏数据来初始化所述软件实例的代码块,使得所存储的损坏数据对于所述代码块外部的代码是不可访问的;以及返回对所述代码块的引用,对所述代码块的引用由所述代码块外部的软件实例使用以调取所述软件例程,其中所述代码块被配置成:(i)调取所述软件例程,所述调取包括应用所存储的损坏数据来修改软件例程数据,以及(ii)基于对所述软件例程的调取来更新所存储的损坏数据,其中软件实例被配置成:接收对应于所存储的损坏数据的修复数据,以及通过将修复数据应用于软件例程数据来获得针对所述软件例程的结果,从而补偿所述修改。
8.根据权利要求7所述的方法,其中初始化步骤进一步包括:存储对所述软件例程的引用,使得所存储的引用对于所述代码块外部的代码是不可访问的,以及其中所述代码块被配置成使用所存储的引用来调取所述软件例程。9.一种在执行环境中执行的软件实例中执行软件例程的方法,所述方法包括:执行软件实例的代码块,所述执行软件实例的所述代码块包括所述代码块进行如下操作:(a)调取所述软件例程,所述调取包括应用所存储的损坏数据来修改软件例程数据,其中所述损坏数据被存储为所述代码块的初始化的一部分,使得所存储的损坏数据对于所述代码块外部的代码是不可访问的,以及(b)基于对所述软件例程的调取来更新所存储的损坏数据,接收对应于所存储的损坏数据的修复数据;以及通过将修复数据应用于软件例程数据来获得针对所述软件例程的结果,从而补偿所述修改。10.根据权利要求9所述的方法,其中调取软件例程的步骤使用对所述软件例程的引用,其中所述引用被存储为所述代码块的初始化的一部分,使得所存储的引用对于所述代码块外部的代码是不可访问的。11.根据权利要求7-10中任一项所述的方法,其中软件例程数据包括由所述软件例程使用的数据和/或由所述软件例程生成的数据。12.根据权利要求7-11中任一项所述的方法,其中应用所存储的损坏数据来修改所述软件例程的数据包括以下各项中的任何一个或多个:(a)将所存储的损坏数据应用于所述软件例程的一个或多个输入;(b)将所存储的损坏数据应用于所述软件例程的一个或多个输出;以及(c)作为所述软件例程的一部分,将所存储的损坏数据应用于所述软件例程的中间数据。13.根据权利要求7-12中任一项所述的方法,其中获得针对所述软件例程的结果的步骤是所述执行代码块的一部分。14.根据权利要求7-13中任一项所述的方法,其中将修复数据应用于所述软件例程的数据包括以下各项中的任何一个或多个:(a)将修复数据应用于所述软件例程的一个或多个输入;(b)将修复数据应用于所述软件例程的一个或多个输出;以及(c)作为所述软件例程的一部分,将修复数据应用于所述软件例程的中间数据。15.根据权利要求7-14中任一项所述的方法,其中执行环境防止所述代码块外部的代码访问所存储的损坏数据。16.根据权利要求7-15中任一项所述的方法,其中通过执行另外的代码块来存储所述损坏数据,所述另外的代码块一旦被执行,就不能够由所述另外的代码块外部的代码来访问,并且其中所述代码块由所述另外的代码块来定义。17.根据权利要求6或16所述的方法,其中所述另外的代码块是匿名函数。18.根据权利要求6、或者当权利要求17从属于权利要求6时根据权利要求17所述的方
法,其中所述所存储的引用形成所述另外的代码块的闭包的一部分。19.根据权利要求16、或者当权利要求17从属于权利要求16时根据权利要求17所述的方法,其中所述所存储的损坏数据形成所述另外的代码块的闭包的一部分。20.根据权利要求19所述的方法,其中执行环境实现边界作为所述闭包的一部分,从而防止所述另外的代码块外部的代码询问所述闭包。21.根据任一项前述权利要求所述的方法,其中执行环境包括以下各项中的任一个:(a)javascript虚拟机,并且所述软件至少部分地以javascript实现;(b)java虚拟机,并且所述软件至少部分地以java实现;(c)lisp解释器,并且所述软件至少部分地以lisp实现;以及(d)python解释器,并且所述软件至少部分地以python实现。22.一种保卫软件的方法,所述方法包括:接收包括至少一个软件例程的软件;修改所述软件,使得当在运行时环境中作为软件实例执行时,所述软件实例通过执行根据前述权利要求中任一项所述的方法来保卫所述至少一个软件例程。23.一种装置,其被布置成执行根据前述权利要求中任一项所述的方法。24.一种计算机程序,其在由处理器执行时使得所述处理器执行根据权利要求1至22中任一项所述的方法。25.一种计算机可读介质,其存储根据权利要求24所述的计算机程序。

技术总结
一种保卫在执行环境中执行的软件实例中实现的软件例程的方法,所述方法包括:通过存储对所述软件例程的引用来利用所述引用初始化软件实例的代码块,使得所存储的引用对于所述代码块外部的代码是不可访问的;以及返回对所述代码块的引用,对所述代码块的引用由所述代码块外部的软件实例使用以调取所述软件例程;其中所述代码块被配置成:(a)使用所存储的引用来调取所述软件例程;以及(b)在所述代码块对所述软件例程进行预定次数的调取之后,修改所存储的引用以便防止所述代码块进一步调取所述软件例程。取所述软件例程。取所述软件例程。


技术研发人员:Y
受保护的技术使用者:爱迪德技术有限公司
技术研发日:2020.08.19
技术公布日:2022/5/31
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献