一种软件保护方法和装置制造方法及图纸

技术编号:16547145 阅读:39 留言:0更新日期:2017-11-11 11:54
本发明专利技术公开了一种软件保护方法,其中,在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:在中间代码中确定待保护代码段,确定待保护代码段内的至少一个操作数和对至少一个操作数进行操作的至少一个操作指令;为至少一个操作数分配专用存储空间,并将至少一个操作指令修改为对专用存储空间进行存取的指令;对包括经修改的至少一个操作指令的待保护代码段进行加密处理。本发明专利技术同时提供了一种软件保护装置。通过本发明专利技术的软件保护方法和装置,实现了跨平台的软件保护。

A software protection method and device

The invention discloses a software protection method, which, in the process of the software source code is compiled into object code, the following processing of the intermediate code generated during compilation: in the middle of the code to determine the protection code, code to determine protection period of at least one of the operands and to operate at least one operand of at least one of the operating instructions; for at least one of the operands for allocation of storage space, and at least one operation instruction modified for access to private storage space to protect the directive; code includes at least one operation instruction of the modified encryption. The invention also provides a software protection device. Through the software protection method and device, the cross platform software protection is realized.

【技术实现步骤摘要】
一种软件保护方法和装置
本专利技术涉及计算机软件领域,特别涉及一种软件保护方法和装置。
技术介绍
目前,对软件进行加密保护的技术已经广泛使用,其中,通常使用的方式例如包括将软件中的受保护代码段移植到软件外部、该受保护代码段进行加密处理、为软件颁发数字许可并基于数字许可的有效性来监控软件的使用等。其中,在对受保护代码段进行加密处理时,不同的软件编译平台下生成的软件各自的文件格式不同、指令格式和含义各异,同一加密过程无法适用于所有平台下的软件。
技术实现思路
有鉴于此,本专利技术实施例提供了一种软件保护方法和装置,其目的之一是为不同平台下的软件提供一个统一的跨平台软件保护方案。为此,本专利技术实施例提供的软件保护方法包括,在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:在所述中间代码中确定待保护代码段,确定所述待保护代码段内的至少一个操作数和对所述至少一个操作数进行操作的至少一个操作指令;为所述至少一个操作数分配专用存储空间,并将所述至少一个操作指令修改为从所述专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入所述专用存储空间;对包括经修改的所本文档来自技高网...
一种软件保护方法和装置

【技术保护点】
一种软件保护方法,其中,在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:在所述中间代码中确定待保护代码段,确定所述待保护代码段内的至少一个操作数和对所述至少一个操作数进行操作的至少一个操作指令;为所述至少一个操作数分配专用存储空间,并将所述至少一个操作指令修改为从所述专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入所述专用存储空间;对包括经修改的所述至少一个操作指令的所述待保护代码段进行加密处理。

【技术特征摘要】
1.一种软件保护方法,其中,在将软件的源代码编译为目标代码的过程中,对编译期间生成的中间代码进行如下处理:在所述中间代码中确定待保护代码段,确定所述待保护代码段内的至少一个操作数和对所述至少一个操作数进行操作的至少一个操作指令;为所述至少一个操作数分配专用存储空间,并将所述至少一个操作指令修改为从所述专用存储空间读取源操作数并将对源操作数进行操作后得到的结果操作数存入所述专用存储空间;对包括经修改的所述至少一个操作指令的所述待保护代码段进行加密处理。2.如权利要求1所述的方法,其中,所述操作数包括在所述待保护代码段内部产生并由外部引用的至少一个第一操作数,所述方法还包括:将所述中间代码中引用所述第一操作数的操作指令修改为从所述专用存储空间读取所述第一操作数。3.如权利要求1所述的方法,其中,所述操作数包括由所述待保护代码段从外部引用的至少一个第二操作数,所述方法还包括:在所述待保护代码段内增加将所述至少一个操作数从原存储位置写入所述专用存储空间的指令。4.如权利要求1所述的方法,其中,为所述至少一个操作数分配专用存储空间包括:在所述待保护代码段内增加为所述至少一个操作数分配所述专用存储空间的指令。5.如权利要求1至4中任一项所述的方法,其中,所述加密处理包括指令混淆、指令虚拟化、数值随机化、数值加密中的一种或多种。6.一种软件保护装置,...

【专利技术属性】
技术研发人员:孙吉平李伟伟
申请(专利权)人:北京深思数盾科技股份有限公司
类型:发明
国别省市:北京,11

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

1