[发明专利]用于通过将计算机程序的控制流表示为数据来混淆计算机程序的系统、方法和存储介质在审
申请号: | 202080011547.5 | 申请日: | 2020-01-14 |
公开(公告)号: | CN113366474A | 公开(公告)日: | 2021-09-07 |
发明(设计)人: | R·杜兰德;A·霍伊特 | 申请(专利权)人: | 爱迪德技术有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 董婕;陈岚 |
地址: | 荷兰霍*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 通过 计算机 程序 控制 表示 数据 混淆 系统 方法 存储 介质 | ||
公开了用于通过将计算机程序的控制流表示为不是源代码的数据来混淆计算机程序的系统、方法和存储介质。示例性实施方式可以:接收计算机程序的源代码;解析源代码;提取源代码的控制流;使用数学建模语言将控制流的至少一部分表示为控制流模型;将控制流模型存储为表示程序的控制流并且是不可执行代码的控制流数据;以及从源代码中移除控制流的至少一部分,以由此混淆源代码的控制流并且致使源代码更能抵抗篡改。
技术领域
本公开涉及用于通过将计算机程序的控制流表示为不是可执行代码的数据来混淆计算机程序的系统、方法和存储介质。
背景技术
计算机软件通常以高级语言编写,所述高级语言必须编译成低级目标代码以便在计算机或其他处理器上执行。高级计算机语言使用与简明语言紧密相似的命令用词,因此其可以被开发人员容易地理解。目标代码通常是指机器可执行代码,其是软件编译器的输出,其将源代码从人类可读的代码转化为机器可执行代码。
软件程序的低级结构通常根据其数据流和控制流来描述。数据流是对变量连同对变量执行的操作的描述。控制流是在执行期间控制如何在程序中从块跳到块的描述。例如,If-Then-Else语句包括要对输入和控制流执行的两个操作,其基于条件变量将执行引导到一个操作或另一个操作。
篡改是指以违背原作者意愿的方式改变计算机软件。常规上,计算机软件程序已经具有编码在其中的限制,诸如需要密码访问、防止复制或仅允许软件执行预定次数或达某持续时间。然而,因为用户经常可以访问软件代码,所以已经找到了识别管理这些限制的代码的方法。一旦已经识别出这种编码,经验丰富的用户就能够通过修改软件代码来克服这些程序限制。此外,难以防止用户使用诸如调试器之类的工具来在计算机软件执行时监控该计算机软件。这允许用户获得完整的数据流和控制流。
已经进行了许多尝试来通过“混淆”代码防止攻击,例如使软件代码的组织更加混乱,并因此更难以理解和修改。软件是商业上可得的,以便以诸如以下方式“混淆”代码中的源:
•利用随机字符串全局替换变量名。例如,变量名“SecurityCode(安全代码)”的每次出现可以利用字符串“1xcd385mxc”来替换,使得攻击者更难以识别他正在寻找的变量;
•删除评论和其他文档;以及
•移除源级结构缩进,诸如循环体的缩进,以使循环更难以阅读。
此外,已知混淆计算机程序的控制流。例如,美国专利No. 5,748,741描述了一种通过人为构建“复杂墙”来混淆计算机软件的方法。该“复杂墙”优选地是“级联(cascade)”结构,其中每个输出取决于所有输入。原始程序通过与此级联合并、通过将两者交织在一起而受到保护。意图是使攻击者很难再次将原始程序与复杂墙分开,其是对原始程序进行更改所必要的。这种方法具有限制,诸如大的代码扩展。程序的控制流是用于理解程序正在做什么的最重要和容易获得的资产(asset)之一。
虽然常规的混淆技术可能试图隐藏程序的控制流,但控制流语句仍然存在于源代码中,其中其可以是未覆盖的。此外,程序的控制流是一种固定资产,其在程序已经部署后无法改变。因此,用于混淆控制流的已知机制并不总是有效的。
如上所述,期望防止用户对计算机程序进行小的、有目的的改变,诸如覆盖演示软件中的复制保护和超时。还必要的是保护计算机软件免受逆向工程的影响,该逆向工程可以用于识别软件算法或模型内包含的有价值的知识产权。例如,在硬件设计中,专用集成电路(ASIC)单元库的供应商通常提供与硬件对应的精确软件模型,使得用户可以执行准确的系统仿真。因为这样的公开通常提供足够的细节来揭示实际的单元设计,所以期望保护软件模型的内容。
因此,存在对于一种方法和系统的需要,该方法和系统通过从可执行代码中移除控制流而不引入不切实际的开销,使计算机软件更能抵抗篡改和逆向工程。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于爱迪德技术有限公司,未经爱迪德技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202080011547.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:热固性树脂组合物、树脂片、层压体和印刷线路板
- 下一篇:用于压铸机的液压装置