首页> 外国专利> Use of pseudocode to protect software from unauthorized use

Use of pseudocode to protect software from unauthorized use

机译:使用伪代码来保护软件免受未经授权的使用

摘要

Three methods are disclosed for protecting software applications from unauthorized distribution and use (piracy). The first method involves using values generated by a conventional ESD (Electronic Security Device) to encrypt and/or decrypt user data (such as a file) that is generated and used by the application. In a preferred embodiment, the user data is encrypted (such as during a write to memory) using values returned by the ESD, and the user data is later decrypted using like values returned by a software-implemented ESD simulator. The second and third methods involve the use of special development tools that make the task of analyzing the application's copy protection code (such as the code used to encrypt and/or decrypt user data) significantly more difficult. Specifically, the second method involves using pseudocode to implement some or all of the application's copy protection functions. The pseudocode for a given function is generated (preferably in encrypted form) from actual code using a special development tool, and is then imbedded within the application together with a corresponding pseudocode interpreter. The interpreter fetches, decrypts and executes the pseudocode when the function is called. Because no disassemblers or other development tools exist for analyzing the pseudocode, the task of analyzing the copy protection functions becomes significantly more complex. The third method involves the use of a special obfuscation tool to convert the code for selected copy-protection functions into unnecessarily long, inefficient sequences of machine code. In one implementation of the obfuscation tool, the developer can control the quantity of code that is generated by specifying one or more control parameters. The three methods can also be used to protect software license management systems from security attacks.
机译:公开了三种保护软件应用程序免受未经授权的分发和使用(盗版)的方法。第一种方法涉及使用由常规ESD(电子安全设备)生成的值来加密和/或解密由应用程序生成和使用的用户数据(例如文件)。在优选实施例中,使用由ESD返回的值来加密用户数据(例如在写入存储器期间),并且随后使用由软件实现的ESD模拟器返回的类似值来解密用户数据。第二种方法和第三种方法涉及使用特殊的开发工具,这使得分析应用程序的复制保护代码(例如用于加密和/或解密用户数据的代码)的任务变得更加困难。具体来说,第二种方法涉及使用伪代码来实现部分或全部应用程序的复制保护功能。使用特殊的开发工具从实际代码生成(最好以加密形式)给定功能的伪代码,然后将其与相应的伪代码解释器一起嵌入到应用程序中。调用函数时,解释器将获取,解密并执行伪代码。因为不存在用于分析伪代码的反汇编程序或其他开发工具,所以分析复制保护功能的任务变得非常复杂。第三种方法涉及使用特殊的混淆工具,将用于选定的复制保护功能的代码转换为不必要的冗长且效率低下的机器代码序列。在混淆工具的一种实现中,开发人员可以控制通过指定一个或多个控制参数生成的代码量。这三种方法也可以用于保护软件许可证管理系统免受安全攻击。

著录项

  • 公开/公告号US6334189B1

    专利类型

  • 公开/公告日2001-12-25

    原文格式PDF

  • 申请/专利权人 JAMAMA LLC;

    申请/专利号US19980196056

  • 申请日1998-11-20

  • 分类号G06F12/40;

  • 国家 US

  • 入库时间 2022-08-22 00:47:39

相似文献

  • 专利
  • 外文文献
  • 中文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号