【技术实现步骤摘要】
本专利技术涉及可执行程序保护
,尤其涉及一种可执行程序的保护方法及装置。
技术介绍
一个可执行程序的生命周期大致分三个阶段:第一阶段为从可执行程序形成到成为安装设备端软件包的阶段;第二阶段为可执行程序在设备端安装完成后,以程序文件格式存储在设备端上的程序文件存储阶段;第三个阶段,为可执行程序在设备端的运行阶段。现在技术中,通常在第一阶段和/或第二阶段对可执行程序进行保护:例如,在第一阶段的生成可执行程序的过程,对可执行程序的全部代码采用RSA(RonRivest、AdiShamirh、LenAdleman,RSA)非对称加密算法生成公钥和私钥,可执行程序在后续的安装过程中将利用公钥进行解密以验证该可执行程序是否被篡改过,从而实现对可执行程序的保护;又例如,在第二阶段的升级或安装可执行程序过程后,将安装后的可执行程序保存于安全的硬件设备中,从而防止安装后的可执行程序被篡改,从而实现对可执行程序的保护。当然上述两种方法可以结合在一起实施。上述的现有技术的可执行程序的保护方法存在如下问题:在生成可执行程序时对该可执行程序的全部代码进行RSA加密后保存或将安装后的可执行程序保存于安全的硬件设备中,都无法确保加密后的可执行程序在存储后不被篡改。显然,现有技术的可执行程序的保护方法在运行阶段没有有效的保护措施,无法确定该运行的可执行程序是否被篡改过,而被篡改过的可执行程序运行时可以会出现无法正常 ...
【技术保护点】
一种可执行程序的保护方法,其特征在于,包括:调用操作系统内核解析已启动的可执行程序,并将解析所述可执行程序得到的程序数据加载到内存,所述程序数据包括用于保存待检RSA密文的密文数据段;若所述操作系统内核检测到所述密文数据段存在所述待检RSA密文,则获取所述待检RSA密文,并根据所述待检RSA密文生成第一SHA1摘要信息;调用所述操作系统内核获取不可擦写存储硬件中或预先保存于内核数据中的与所述可执行程序对应的密钥数据,根据包括有所述密钥数据的所述可执行程序的新程序数据生成第二SHA1摘要信息,其中,所述密钥数据为生成所述可执行程序所对应的原始RSA密文的部分数据;若所述操作系统内核确定所述第一SHA1摘要信息和所述第二SHA1摘要信息相同,则判定所述待检RSA密文与所述原始RSA密文的内容一致,继续执行所述可执行程序。
【技术特征摘要】 【专利技术属性】
1.一种可执行程序的保护方法,其特征在于,包括:
调用操作系统内核解析已启动的可执行程序,并将解析所述可执行程序得
到的程序数据加载到内存,所述程序数据包括用于保存待检RSA密文的密文
数据段;
若所述操作系统内核检测到所述密文数据段存在所述待检RSA密文,则
获取所述待检RSA密文,并根据所述待检RSA密文生成第一SHA1摘要信息;
调用所述操作系统内核获取不可擦写存储硬件中或预先保存于内核数据
中的与所述可执行程序对应的密钥数据,根据包括有所述密钥数据的所述可执
行程序的新程序数据生成第二SHA1摘要信息,其中,所述密钥数据为生成所
述可执行程序所对应的原始RSA密文的部分数据;
若所述操作系统内核确定所述第一SHA1摘要信息和所述第二SHA1摘要
信息相同,则判定所述待检RSA密文与所述原始RSA密文的内容一致,继续
执行所述可执行程序。
2.如权利要求1所述保护方法,其特征在于,还包括:
若所述操作系统内核检测所述密文数据段不存在所述待检RSA密文,则
停止执行所述可执行程序;或者,所述操作系统内核确定所述第一SHA1摘要
信息和所述第二SHA1摘要信息不相同,则判定所述待检RSA密文与所述原
始RSA密文的内容不一致,停止执行所述可执行程序。
3.如权利要求1所述保护方法,其特征在于,调用所述操作系统内核将
解析所述可执行程序得到的所述程序数据加载到内存后,还包括:
调用所述操作系统内核接收所述可执行程序发送的检测所述程序数据段
是否存在所述待检RSA密文的检测请求。
4.如权利要求3所述保护方法,其特征在于,所述操作系统内核接收的
所述检测请求为所述可执行程序通过netlink消息发送的。
5.如权利要求1所述保护方法,其特征在于,根据所述待检RSA密文生
\t成所述第一SHA1摘要信息,包括:
调用所述操作系统内核获取不可擦写存储硬件中或预先保存于内核数据
中的与所述可执行程序对应的公钥;
调用所述操作系统内核根据获取到的所述公钥对所述待检RSA密文解密,
生成所述第一SHA1摘要信息。
6.如权利要求1所述保护方法,其特征在于,所述根据包括有所述密钥
数据的所述可执行程序的新程序数据生成所述第二SHA1摘要信息之前,还包
括:
调用所述操作系统内核用获取到的所述密钥数据覆盖内存中所述程序数
据的所述密文数据段保存的所述待检RSA密文,得到所述新程序数据。
7.一种可执行程序的保护方法,其特征在于,编译生成所述可执行程序
的过程中,包括:
生成对应所述可执行程序的用于解密的公钥和用于加密的私钥;
在所述可执行程序的程序数据中插入用于保存RSA密文的密文数据段,
并在所述密文数据段中填充密钥数据;
根据包括所述密钥数据的所述可执行程序生成原始SHA1摘要信息;
利用所述私钥对所述原始SHA1摘要信息进行加密生成所述RSA密文,
并使所述RSA密文覆盖所述密文数据段的所述密钥数据。
8.如权利要求7所述保护方法,其特征在于,还包括:
将所述密钥数据保存到不可擦写存储硬件中或内核数据中;以及,
在生成对应所述可执行程序的所述公钥和所述私钥之后,将所述公钥保存
到不可擦写存储硬件中或内核数据中,所述私钥保存到私有服务器中。
9.一种可执行程序的保护装置,其特征在于,包括:
解析单元,用于调用所述操作系统内核解析已启动的可执行程序,并将解
技术研发人员:周健,
申请(专利权)人:浙江大华技术股份有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。