保护软件安全的方法及装置制造方法及图纸

技术编号:5342239 阅读:238 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种保护软件安全的方法及装置,所述方法包括:对输入的源文件进行编译生成中间文件;对所述中间文件进行预处理得到所述中间文件的程序信息,以及生成混淆策略;根据所述混淆策略对所述中间文件进行混淆处理;当所述混淆处理的结果达到预设的混淆评估指标时,对混淆处理后的中间文件进行连接处理,并输出连接处理后的目标文件。本申请实施例通过代码混淆技术进行反跟踪,以海量的无用信息来混淆真实信息,增加了跟踪者的跟踪工作量和复杂度,从而达到无法分析出所要保护软件的代码原理的目的,提高了软件的安全性。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种保护软件安全的方法及装置
技术介绍
黑客和木马病毒编写者通过跟踪调试软件,会对软件的安全造成威胁。以证 券交易软件为例,通过对证券软件进行跟踪调试,可能分析出关键的数据加密流程和软 件保护流程,从而制作出专门针对这些加密流程和保密流程的升级版恶意代码程序,盗 取用户口令,并非法截获用户的交易信息,从而给证券交易软件的安全性带来极大威 胁。因此需要通过反跟踪技术保护软件的安全,现有常见的反跟踪技术标志寄存器反单 步调试(Anti-Single St印)、修改中断入口 (Modify Interrupt Entry)、反断点跟踪 (Anti-Breakpoint)、调试器检测(Debug Detection)等。专利技术人在对现有技术的研究过程中发现,现有常用的反跟踪技术需要修改运行软 件的操作系统的底层机制,因为调试过程是操作系统结合硬件中断实现的一套内部机制, 为了能对程序进行有效的调试,现有的反跟踪技术需要干扰操作系统的机制。以反断点跟 踪技术为例,当有断点发生时,原来应该进入调试器的流程,被干扰后就进入了挂接后函 数,因此干扰了正常的操作系统机制,必须对操作系统的底层机制进行修改。由此可知,现 有的反跟踪技术的软件兼容性差,过于依赖软硬件环境,特别应用在证券交易软件时,难以 满足其安全需要。
技术实现思路
本专利技术实施例的目的在于提供一种保护软件安全的方法及装置,以解决现有反跟 踪技术兼容性差且依赖软硬件环境,导致难以保护软件安全性的问题。为解决上述技术问题,本专利技术实施例提供如下技术方案一种保护软件安全的方法,包括对输入的源文件进行编译生成中间文件;对所述中间文件进行预处理得到所述中间文件的程序信息,以及生成混淆策略;根据所述混淆策略对所述中间文件进行混淆处理;当所述混淆处理的结果达到预设的混淆评估指标时,对混淆处理后的中间文件进 行连接处理,并输出连接处理后的目标文件。所述中间文件包括符号表、控制流程和汇编指令。所述对中间文件进行预处理包括对所述中间文件进行流程分析、数据流分析和 数据依存度分析。还包括保存预先设置的混淆参数,所述混淆参数包括混淆强度和混淆弹性。所述生成混淆策略包括根据需要获取不同的混淆强度和混淆弹性;将获取的混淆强度和混淆弹性进行组合得到所述混淆策略。所述根据所述混淆策略对所述中间文件进行混淆处理包括根据所述混淆策略对所述中间文件进行遍历;在所述中间文件中插入无用代码,插入无用代码后的所述中间文件的执行效果与 所述源文件一致。还包括预先对混淆处理的性能进行评估获得评估指标,所述评估指标包括混淆处理的强 度、混淆处理的弹性和混淆处理的开销。一种保护软件安全性的装置,包括编译单元,用于对输入的源文件进行编译生成中间文件;预处理单元,用于对所述中间文件进行预处理得到所述中间文件的程序信息;生成单元,用于生成混淆策略;混淆单元,用于根据所述混淆策略对所述中间文件进行混淆处理;连接单元,用于当所述混淆处理的结果达到预设的混淆评估指标时,对混淆处理 后的中间文件进行连接处理;输出单元,用于输出连接处理后的目标文件。还包括保存单元,用于保存预先设置的混淆参数,所述混淆参数包括混淆强度和混淆弹 性。所述生成单元包括混淆参数获取单元,用于根据需要获取不同的混淆强度和混淆弹性;混淆参数组合单元,用于将获取的混淆强度和混淆弹性进行组合得到所述混淆策 略。所述混淆单元包括文件遍历单元,用于根据所述混淆策略对所述中间文件进行遍历;代码插入单元,用于在所述中间文件中插入无用代码,插入无用代码后的所述中 间文件的执行效果与所述源文件一致。还包括预估单元,用于预先对混淆处理的性能进行评估获得评估指标,所述评估指标包 括混淆处理的强度、混淆处理的弹性和混淆处理的开销。由以上本专利技术实施例提供的技术方案可见,本申请实施例中对输入的源文件进行 编译生成中间文件,对中间文件进行预处理得到中间文件的程序信息,以及生成混淆策略, 根据混淆策略中间文件进行混淆处理,当混淆处理的结果达到预设的混淆评估指标时,对 混淆处理后的中间文件进行连接处理,并输出连接处理后的目标文件。本申请实施例通过 代码混淆技术进行反跟踪,以海量的无用信息来混淆真实信息,增加了跟踪者的跟踪工作 量和复杂度,从而达到无法分析出所要保护软件的代码原理的目的,提高了软件的安全性。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而 言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请保护软件安全的方法的第一实施例流程;图2为本申请保护软件安全的方法的第二实施例流程;图3为本申请保护软件安全的装置的第一实施例框图;图4为本申请保护软件安全的装置的第二实施例框图。具体实施例方式在如下本专利技术的多个实施例中,有些实施例提供了一种保护软件安全的方法,有 些实施例提供了一种保护软件安全的装置。为了使本
的人员更好地理解本专利技术实施例中的技术方案,并使本专利技术实 施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术实施例中技术方 案作进一步详细的说明。本申请实施例在对软件进行保护时,采用了代码混淆技术,该技术以海量的无用 信息来混淆真实信息,从而使软件跟踪者无法分析出软件源代码,从而保证软件安全性。参见图1,为本申请保护软件安全的方法的第一实施例流程图步骤101 对输入的源文件进行编译生成中间文件。其中,中间文件包括符号表、控制流程和汇编指令。步骤102 对中间文件进行预处理得到中间文件的程序信息,以及生成混淆策略。其中,对中间文件进行预处理包括对所述中间文件进行流程分析、数据流分析和 数据依存度分析。其中,混淆策略可以根据预先设置的混淆参数生成,混淆参数可以包括混淆强度 和混淆弹性。具体的,根据需要获取不同的混淆强度和混淆弹性,将获取的混淆强度和混淆 弹性进行组合得到所述混淆策略。步骤103 根据混淆策略对所述中间文件进行混淆处理。根据所述混淆策略对所述中间文件进行遍历,在所述中间文件中插入无用代码, 插入无用代码后的所述中间文件的执行效果与所述源文件一致。步骤104 当混淆处理的结果达到预设的混淆评估指标时,对混淆处理后的中间 文件进行连接处理。步骤105 输出连接处理后的目标文件。本申请实施例在保护软件安全时,主要是对软件的关键代码进行混淆。关键代码 在没有混淆前,跟踪者的跟踪工作量和复杂度都不高,因此可以在较短的时间内分析出软 件的关键流程和加密算法;但在经过本申请实施例的代码混淆以后,因为在源代码中增加 了海量的混淆信息,因此跟踪者难以从中获取真正的代码信息,从而无法分析出关键流程。 但是CPU处理器对于混淆后的软件代码却依旧可以正确执行,只是在执行效率上产生微小 的性能损耗。参见图2,为本申请保护软件安全的方法的第二实施例流程图步骤201 预先对混淆处理的性能进行评估获得评估指标,评估指标包括混淆处 理的强度、混淆处理的弹性和混淆处理的开销。对代码进行混淆的技术是一种特殊的编译技术,它将源程序P转换成目标程序 0(p)。O(P)与P相比具有相同的外部行为,但是代码的安全本文档来自技高网
...

【技术保护点】
一种保护软件安全的方法,其特征在于,包括:对输入的源文件进行编译生成中间文件;对所述中间文件进行预处理得到所述中间文件的程序信息,以及生成混淆策略;根据所述混淆策略对所述中间文件进行混淆处理;当所述混淆处理的结果达到预设的混淆评估指标时,对混淆处理后的中间文件进行连接处理,并输出连接处理后的目标文件。

【技术特征摘要】

【专利技术属性】
技术研发人员:易峥张宇博于浩淼王进
申请(专利权)人:浙江核新同花顺网络信息股份有限公司
类型:发明
国别省市:86[中国|杭州]

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

1