软件保护方法技术

技术编号:3985707 阅读:238 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种软件保护方法,包括:分析软件或获取软件代码;对所述分析得到的软件指令或获取的软件代码进行处理;重新编排所述处理后的软件指令或重新编译所述处理后的软件代码,生成新的软件;根据对所述软件指令或软件代码的处理结果继续或终止软件运行。通过实施上述软件保护方案,保护了软件的安全性。

【技术实现步骤摘要】

本专利技术涉及计算机领域,特别涉及一种。
技术介绍
随着计算机技术的不断发展,面向各行业需求的软件不断涌现。但无论哪种优秀 的软件,一旦被他人窃取或被非法复制,受到的经济损失是无法估计的,不但严重打击了软 件开发人员的积极性,也助长了盗版者的气焰。
技术实现思路
为了克服上述缺陷,本专利技术提供了一种,具体技术方案包括分析软件,对分析得到的软件指令段进行处理,生成处理后的软件指令段;重新编 排所述处理后的软件指令段,生成并运行新软件;所述新软件根据处理后的软件指令段的 运行结果继续或终止运行;或获取软件代码,对获取的软件代码进行处理,生成处理后的软件代码;重新编译 所述处理后的软件代码,生成并运行新软件;所述新软件根据所述处理后的软件代码的运 行结果继续或终止运行。有益效果本专利技术通过在软件中插入安全代码、或者替换软件中的部分代码,或者对软件的 部分代码进行加密,或者对软件的部分函数名称混淆处理,或者将软件中的部分代码转移 到外部执行,或者对软件代码预先运行后将结果保存到外部,保护了软件的安全性。附图说明图1为本专利技术实施侈1提供的的流程图2为本专利技术实施侈1提供的运行被保护软件的流程图3为本专利技术实施侈2提供的的流程图4为本专利技术实施侈2提供的运行被保护软件的流程图5为本专利技术实施侈3提供的的流程图6为本专利技术实施侈3提供的运行被保护软件的流程图7为本专利技术实施侈4提供的的流程图8为本专利技术实施侈5提供的的流程图9为本专利技术实施侈5提供的运行被保护软件的流程图10为本专利技术实施列6提供的的流程图11为本专利技术实施列6提供的运行被保护软件的流程图。图12为本专利技术实施例1提供的软件插入指令的指示图。具体实施例方式下面结合附图对本专利技术具体实施方式做一个清楚、完整的说明,该说明只是为了 方便本领域技术人员理解本专利技术的技术方案,并不作为对本专利技术的限定。实施例1参见图1,本专利技术提供了一种,包括下列步骤步骤101 准备新指令或新代码;新指令或新代码为要插入软件的多条信息安全指令或代码,其中指令由底层汇编 语言编写;代码由上层编程语言编写。该指令或代码包括三种形式第一种形式访问信息安全装置的指令或代码,向信息安全装置写入装载软件的 硬件设备的信息,指示信息安全装置判断该硬件设备信息的指令或代码,指示信息安全装 置返回判断结果的指令或代码;信息安全装置内预先绑定有装载软件的硬件设备的信息,因此信息安全装置在收 到写入的信息后,会进行一致性判断,并将判断结果返回给软件。第二种形式访问信息安全装置的指令或代码,向信息安全装置输入登陆信息和 密码,指示信息安全装置判断该登陆信息和密码是否正确的指令或代码,指示信息安全装 置返回判断结果的指令或代码;信息安全装置内预先存储有登陆信息和密码,因此在收到输入的登陆信息和密码 后,信息安全装置将进行一致性判断,并将判断结果返回给软件。第三种形式访问信息安全装置的指令或代码,向信息安全装置写入事先与其绑定 过的信息安全装置的硬件特性信息(如信息安全装置的硬件标识),指示信息安全装置判断 该硬件特性信息是否符合的指令或代码,指示信息安全装置返回判断结果的指令或代码。软件内事先写有信息安全装置的硬件特性信息,信息安全装置接收到软件向其写 入的上述信息后,将进行一致性判断,并将判断结果返回给软件。步骤102 加载并分析原软件或者打开软件原代码;对于步骤101中准备好的指令需要先加载并分析软件。分析过程为应用软件一 般由若干体构成,如数据体、堆栈体、指令体,资源体等等。分析过程如下一个PE文件都是由一个DOS文件头开始的,通过分析该DOS头可以得到PE文件 头,分析该PE文件头可以得到文件的全部描述信息,这些描述信息中包含有指令体的起始 地址。由此,定位到指令体。在指令体的描述信息中定义了全部指令的偏移地址和指令体 大小,指令体中有多个指令段,指令段由多条指令构成,通过分析指令体里的指令段及指令 就可以取出所有的函数指令,取到所有函数的起始地址。分析软件的目的就是为了获取指 令体及指令体内各个功能模块(功能函数)的地址。对于其它软件的分析过程同上,不再 赘述。对于步骤101中准备好的代码段,打开软件原代码的过程具体为需要先用工具 打开原软件代码,得到用高级语言编写的原代码。步骤103 在原软件中插入新的指令或代码,将使软件在运行过程中必须经过新 的指令或代码;指令在应用软件的任意两个指令段之间或者任意一个指令段内添加新的指令,5也包括在指令段的任意两个功能模块间或者任意一个功能模块内添加新的指令,使软件运 行过程中必须经过新指令。代码在原软件代码中插入准备好的代码。步骤104 对插入了新指令的软件重新编排修改,得到新的软件;或者对插入了新 代码的软件重新编译,生成新的软件,保存新软件。对插入了新指令的软件重新编排修改的 过程具体为根据新插入指令的地址和长度,修改原软件中插入点地址及该地址后的所有段 或功能模块的地址,使得软件在内部相互调用时能够根据正确的地址运行,不会产生混乱。举例应用软件A包括指令段A1和A2两部分,选择在A1和A2之间添加指令A3。 首先,根据A1指令段的起始地址和长度计算出A1的结束地址,在紧接着该地址的下一个地 址插入A3指令,有了 A3的起始地址和长度,计算得到A3的结束地址,在紧接A3结束地址 的下一个地址补入原A2指令段。相应地,需要修改原软件中A软件的长度,补入A3指令的 记录(偏移地址和长度),以及修改A2指令段的偏移地址和长度。参见图2,为本专利技术实施例1提供的运行被保护软件的流程图。步骤105 重新运行新生成的应用软件。步骤106 运行到新的指令或代码时,软件将自动访问信息安全装置,如果访问成 功,则执行步骤107 ;否则,如果访问不成功,则执行步骤108 本实施例中,信息安全装置为独立于装载软件的设备的外设,具有存储、运算和加 解密功能。软件运行到新指令时,访问信息安全装置。软件自动访问信息安全装置具体为 软件调用装载它的设备去访问信息安全装置,向信息安全装置写入登陆信息和密码,或自 身特征信息,或步骤101中写入的硬件特性信息等,由信息安全装置进行比对,如果比对成 功,则软件访问信息安全装置成功,执行步骤107 ;否则,访问失败,执行步骤108。其中,软 件向信息安全装置写入装载软件的硬件设备的信息具体为信息安全装置内部预先装有某 特征软件访问信息安全装置的时钟信息,该时钟信息可以为限定特征软件访问信息安全装 置的时间信息,如只能访问固定时间长度或者只能在规定时间段内访问,一旦软件访问信 息安全装置超出该时间长度或没有在规定的时间段内访问,则访问失败,执行步骤108 ;否 则,访问成功,执行步骤107;其中,软件向信息安全装置输入登陆信息和密码,如果信息安全装置确认信息正 确,则软件访问信息安全装置成功,执行步骤107 ;其中,软件向信息安全装置写入硬件特征信息具体为软件向信息安全装置写入 事先与其绑定过的信息安全装置的硬件特性信息(见步骤101),如果信息安全装置比对内 置的信息和收到的信息一致,则访问成功,执行步骤107 ;否则,访问失败,执行步骤108。步骤107 应用软件接收到信息安全装置返回的成功信息,继续执行软件,直到整 个软件运行完成。步骤108 应用软件本文档来自技高网...

【技术保护点】
软件保护方法,包括下列步骤:分析软件,对分析得到的软件指令段进行处理,生成处理后的软件指令段;重新编排所述处理后的软件指令段,生成并运行新软件;所述新软件根据处理后的软件指令段的运行结果继续或终止运行;或获取软件代码,对获取的软件代码进行处理,生成处理后的软件代码;重新编译所述处理后的软件代码,生成并运行新软件;所述新软件根据所述处理后的软件代码的运行结果继续或终止运行。

【技术特征摘要】

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:北京飞天诚信科技有限公司
类型:发明
国别省市:11[中国|北京]

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

1