分离地执行软件的方法、装置和计算机可读记录介质制造方法及图纸

技术编号:7165440 阅读:230 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及分离地执行软件的方法、装置、以及计算机可读记录介质。本发明专利技术提供了一种可以分离地执行软件的方法,该方法包括以下步骤:通过静态二进制分析或运行时评测(即,动态分析)分析控制流、数据流、和模块结构,以从特定软件中区分出重要模块;从软件的主体中分离出该模块;将该模块储存在具有安全执行环境的智能卡中;将其中所述模块已由接口代码取代的经过修改的软件的主体存储在用户终端中;并在使用软件时共同处理用户终端和智能卡,从而只在智能卡已与用户终端耦接时才执行软件。本发明专利技术还提供了一种装置和一种计算机可读记录介质。本发明专利技术有效地减轻了软件开发公司有关于引入复制保护工具的负担,以及有效地降低了由于必须拥有版权保护工具所导致的用户环境的额外改变所带来错误的可能性,还以简单而清晰的方式使用客户机-服务器系统的共同处理来保护软件的版权。

【技术实现步骤摘要】
【国外来华专利技术】
本公开涉及软件共享执行的方法、系统和计算机可读记录介质。更具体地,本公开涉及这样的软件共享执行的方法、系统和计算机可读介质,其包括通过静态二进制分析和运行时评测(即,动态分析)来对软件控制流、数据流、和模块结构进行分析以标识特定软件的主要模块,将所述模块从软件主体分离,以将其储存在智能卡的安全环境中,并且在用户终端中存储其中删除了已被标识的模块并用接口代码取代已被标识的模块的主体,由此,在用户侧利用同该用户终端相接合的智能卡共同处理软件,从而排他性地允许软件的执行。
技术介绍
软件一般是直接以包括⑶-ROM和DVD-ROM的介质离线销售,或消费者通过软件制造商的网络渠道付费下载。为了使软件的购买者/用户安装该产品并使用它,需要在个人终端输入一个被提供的软件认证CD密钥,借此软件制造商合法授权使用该产品。然而,由于⑶密钥以一般文本的形式裸露,因此它们不由自主地随着⑶-ROM内容,通过不受约束的服务一次又一次复制给了非法的第三方。无需费心寻找CD密钥,他们能够采用额外的非法CD密钥生成程序或破解方法进入CD密钥认证程序本身来最终破解合法复制认证过程,甚至通过P2P网站无法控制地在人群中散布,从而对许多保护软件版权的努力造成了致命打击。有一种防范措施,在⑶-ROM或DVD-ROM特定轨道上提供认证信息,该认证信息用来专门地允许所存储程序的操作,其在用户终端中有效地引入了合法介质的物理存在,但已找到了一种破解方法能从软件主体内删除有关认证的部分,有力地打击了这种保护。对此,提供了一种附装到打印机端口或USB端口的额外的硬件设备,使得检查其存在性或安排该设备来存储加密/解密密钥值和算法,直至加密代码在软件执行中被解码。然而,在执行的软件加载到终端存储器中之前即被解码的结构局限,使得经常可以绕过保护机制将软件破解,并且提供了一个开放的机会,即使是非专业的一般公众也可使用可获得的自动破解工具来实际上做出对复制保护技术的侵害,软件愈受欢迎,这种侵害愈加严重。此外,虚拟机被用来试图阻挠逆向工程尝试和保护软件认证密钥的识别逻辑,但历史表明了自动破解工具实际能进行破解并且已得到散播。
技术实现思路
技术问题本公开旨在通过提供用于软件共享执行的方法、系统和计算机可读介质来防止非法复制软件,该用于软件共享执行的方法、系统和计算机可读介质仅当智能卡同用户终端的接合时才允许运行软件。技术方案为了实现该目的,本公开提供了一种用于软件共享执行的系统,该系统包括分析器,其识别所述软件的控制流、数据流、和模块结构中的一项;评测器(profiler),其为所述软件的各个模块标记所述软件的执行状态和属性信息;评估器,其基于所述属性信息和用户反馈为经评测的功能模块评分;提取器,其从所述软件的主体中分离出在所述评估器中评分最高的模块;以及接口,其插入输入/输出接口代码以将从所述软件的主体中分离出的模块与用户终端二进制代码连接起来。本公开的另一实施方式提供了一种用于软件共享执行的方法,该方法包括以下步骤识别步骤,识别所述软件的控制流、数据流、和模块结构中的一项;标记步骤,为所述软件的各个模块标记所述软件的执行状态和属性信息;评分步骤,基于所述属性信息和用户反馈为经评测的功能模块评分;分离步骤,从所述软件的主体中分离出在所述评分步骤中评分最高的模块;以及插入步骤,插入输入/输出接口代码以将从所述软件的主体中分离出的模块与用户终端二进制代码连接起来。本公开的又一实施方式提供了一种用于软件共享执行的计算机可读记录介质,该计算机可读记录介质编码有在计算机上实现了上述软件共享执行的方法的各个步骤的计算机程序。有益效果根据上述的本公开,与现有的软件防复制技术形成了鲜明的对比,其代码是被物理上更安全的智能卡格式所保护的,排除了被逆向工程破解成未经授权的软件的可能性。 此外,本公开实现了在智能卡和用户终端之间的客户-服务器类型的共同处理方案中的防复制,因此避免了必须依赖受制于可能具有不确定的效用且导致了复杂性的系统架构或某些编码/解码方法的反调试技术,由此向软件产业提供了一种更简便易行的抗破解技术。 而且,本公开解决了与出于用加密狗(dongle)或光学介质来保护数据通信和检测逆向工程工具等目的而安装的额外功能相关的故障。附图说明图1是根据本公开的一个实施方式的用于软件共享执行的系统的示意性框图;和图2是示出根据本公开一个实施方式的用于软件共享执行的方法的流程图。具体实施例方式下文中将参照附图描述本公开的示例性实施方式。在下面的描述中,相同的要素将由相同的附图标记表示,虽然它们在不同的附图中出现。此外,在以下对本公开的描述中,当这里所引入的关于已知的功能和构造的详细描述可能使本公开的主题相当不明确的时候,它们会被省略。此外,在描述本公开的组件时,可能会使用一些诸如第一、第二、A、B、(a)、和(b) 之类的术语。这些仅是为了将组件彼此区分开,而不是暗示或暗含组件的实质、顺序或序列。如果一个组件被描述为“连接”、“耦接”、或“链接”到另一个组件,它可能意味着该组件不仅直接地“连接”、“耦接”、或“链接”,还可以间接地经由第三个组件“连接”、“耦接”、或 “链接”。现参照图1,其示出了根据本公开的实施方式的用于软件共享执行的系统100的示意性框图。软件共享执行系统100可包括分析器110、评测器120、评估器130、提取器140、 接口 150、转换器160和验证器170。在此实施方式中,分析器110、评测器120、评估器130、提取器140、接口 150、转换器160、和验证器170被具体描述为构成软件共享执行系统100,虽然其组件或组成可根据不同的应用而改变和改进。分析器110利用通过语义分析或具有在反汇编的目标代码中或其源文件状态中建立的二进制文件的解释器进行的抽象操作(近似于输入数据和控制流的执行)(简言之, 通过语义分析)、或通过在注入和实际执行用于跟踪处于其源状态或为二进制代码的对象软件的功能模块的跟踪代码的过程中建立日志(简言之,通过动态分析),来调查对象软件产品的控制流、数据流、和模块结构。为了监视软件运行或通过预测来对软件进行分析,分析器110使用通过动态代码注入或源的变化、运行时调试器、虚拟机、和抽象执行解释器实现的至少一个仪器来预测执行状态。同时,本公开的分析器110可在不背离本公开的本质特征的情况下通过仪器实现。该仪器可通过执行检索软件的二进制代码、然后注入用于跟踪功能模块的跟踪代码的功能来实现。评测器120用于为软件的各个模块生成软件的执行状态和属性信息标签。评测器 120可在不背离本公开的本质特征的情况下通过执行生成跟踪日志信息的功能来实现,其中通过运行软件并在软件的各个过程中为每个日志创建一个标签而生成跟踪日志信息。评估器130基于属性信息和用户反馈执行对经评测的功能模块的评分。评估器 130执行根据输入/输出动态属性信息、达到特定的进展状态所必需的元素是否存在的属性信息、堆栈使用、存储器引用次数属性信息、架构特定指令是否被使用的属性信息、使用频率属性信息、使用时间点属性信息、执行负荷属性信息、控制流属性信息、模块中的独立变量的数量的属性信息、和在共享执行中的执行延迟时间的属性信息中的至少一项来计算评分的功能。评估器130可在本文档来自技高网
...

【技术保护点】
1.一种用于软件共享执行的系统,该系统包括:分析器,其识别所述软件的控制流、数据流、和模块结构中的一项;评测器,其为所述软件的各个模块标记所述软件的执行状态和属性信息;评估器,其基于所述属性信息和用户反馈为经评测的功能模块评分;提取器,其从所述软件的主体中分离出在所述评估器中评分最高的模块;以及接口,其插入输入/输出接口代码以将从所述软件的主体中分离出的模块与用户终端二进制代码连接起来。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:权五絪
申请(专利权)人:SK电信有限公司
类型:发明
国别省市:KR

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

1