[发明专利]防止软件逆向工程、未经授权修改以及运行时数据截取的方法有效
申请号: | 200680029302.5 | 申请日: | 2006-03-30 |
公开(公告)号: | CN101300584A | 公开(公告)日: | 2008-11-05 |
发明(设计)人: | K·艾斯波夫;B·艾斯波夫 | 申请(专利权)人: | 安全尺度有限公司 |
主分类号: | G06F21/22 | 分类号: | G06F21/22 |
代理公司: | 上海专利商标事务所有限公司 | 代理人: | 陈斌 |
地址: | 以色*** | 国省代码: | 以色列;IL |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 防止 软件 逆向 工程 未经 授权 修改 以及 运行 数据 截取 方法 | ||
发明领域
本发明涉及计算机软件保护领域。更为具体地,本发明涉及保护计算机软件免遭逆向工程、未经授权的修改以及运行时数据截取。
发明背景
近年来已经作出了许多努力来保护原始计算机软件不被复制和大量散布。现今所用的方法之一涉及要求在安装或运行时期间由用户手动输入许可证或密钥序列。防止软件的重复使用的另一个流行的方法涉及安装后对软件的激活。激活过程要求软件读取计算机中的硬件元件的ID序列号,例如处理器的序列号或图形卡的序列号。一旦硬件ID序列号被读取,它们就可与软件ID号一起通过因特网发送给厂商。厂商存储ID号,并通过因特网将许可证代码发送给程序。可以把软件编程为没有来自厂商的经验证的许可证代码就停止正常的功能。在此情况下,如果软件被非法地复制并安装到一不同计算机上,由于软件许可证已经与首次安装的硬件相关联,且许可证代码仅可被发送到具有与厂商所存储的相同硬件配置文件的计算机,因此,软件不能被激活。然而,这些方法不能防止未经授权的一方对软件代码进行逆向工程,修改软件代码来除去这些软件保护工具,以及大量散布修改后的软件。
现今有许多工具用于软件逆向工程,像hexadecimal dumper,它以十六进制格式打印或显示软件代码的二进制数。通过了解代表这些指令的位模式以及指令长度,想要对软件进行逆向工程的人就能够识别代码的某些部分来看它们如何工作,然后对它们进行修改。用于逆向工程和代码修改的另一种常用工具是反汇编程序。反汇编程序读取二进制代码,然后以文本格式显示每个可执行指令。同样,由于反汇编程序不能告知可执行指令和代码所使用的数据之间的差异,可使用调试器。调试器允许反汇编程序避免对代码的数据部分进行反汇编。例如,如果反汇编程序读取到命令“ADD_INT8”,表示:“加接下去的 8位所代表的数”,调试器将该接下去的8位作为命令“ADD_INT8”的数据部分来处理,下一组位被按照新的命令来处理。然而,这些工具依赖于以下公知常识:指令代码是如何被构建的、信息位于存储器中的何处、哪些寄存器被使用、如何使用堆栈(用于存储需要被处理的请求的数据缓冲器,采用下推表的形式)。
当涉及基于解释器的编程语言时,与基于编译器的编程语言行程对比,逆向工程以及由未经授权用户进行的修改的问题更为明显。基于编译器的编程语言的描述可见图1,图1一般地示出了诸如C或Pascal之类的基于编译器的编程语言的现有技术软件处理。当编程者使用编辑器等以高级语言编写程序时,他的代码指令10或源代码不能被计算机硬件直接读取。因此,源代码10必须经过称为编译器11进行的编译的翻译处理。编译器11将源代码10编译成计算机硬件能够读取并执行的专门的机器代码(MC)12。由于MC 12被专门编译到特定平台,因此,它不能从一个平台转移到另一个平台。在基于编译器的编程语言中,对每个平台独立地编译源代码10,为每个平台产生不同的专门MC 12。不同平台的例子可以是具有WindowsXP和MacOS X的基于Intel 的PC。
基于解释器的编程语言的描述可见图2a,图2a是流程图,一般地描述了对诸如JAVA之类的基于解释器的编程语言的现有技术软件处理。类似于基于编译器的编程语言,基于解释器的语言是使用编辑器等以高级语言编写的,下文中称为源语句20。然而,根据该方法,编译器21将高级源语句20翻译成字节代码(BC)22,它是不限于特定平台的一般化的MC。然而,为了执行BC 22,需要专门的解释器23来将BC 22翻译成专门的MC 24。专门的解释器23通常与操作系统一起被安装。该方法的一个主要优点是可以对不同平台分发BC 22。一旦在特定平台上执行BC 22,专门的解释器23一次仅翻译一条BC 22指令,为计算机硬件产生专门的MC 24指令来执行。然而,由于解释器的处理方法是公知的,因此,相当容易读取、理解和修改作为解释器23的指令集的BC 22。黑客可能购买到以BC编写的代码的合法版本,破译其指令并擦除或修改BC的某些原始指令。一旦BC被修改,它就可能被大量复制和转售。
黑客使用的另一种方法在本领域中称为“运行时数据截取”。通过在解释 器对合法程序的执行期间截取并读取数据,黑客能够在执行非法程序时模拟该过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安全尺度有限公司,未经安全尺度有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680029302.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:缝纫机绳带压脚板
- 下一篇:制造插塞连接装置的方法和插塞连接装置