一种可执行程序的保护方法及装置制造方法及图纸

技术编号:13306718 阅读:97 留言:0更新日期:2016-07-10 01:59
本发明专利技术公开了一种可执行程序的保护方法及装置,以解决现有技术的可执行程序的保护方法中,在可执行程序的运行阶段没有有效的保护措施,无法确定将要运行的可执行程序是否被篡改过,存在较大的安全隐患的问题。所述可执行程序的保护方法,包括:调用操作系统内核解析已启动的可执行程序,并将得到的程序数据加载到内存;若操作系统内核检测到可执行程序的程序数据中存在待检RSA密文,则获取待检RSA密文,并根据待检RSA密文生成第一SHA1摘要信息;调用操作系统内核获取密钥数据,根据密钥数据生成第二SHA1摘要信息,若操作系统内核确定第一SHA1摘要信息和第二SHA1摘要信息相同,则调用操作系统内核继续执行可执行程序。

【技术实现步骤摘要】

本专利技术涉及可执行程序保护
,尤其涉及一种可执行程序的保护方法及装置
技术介绍
一个可执行程序的生命周期大致分三个阶段:第一阶段为从可执行程序形成到成为安装设备端软件包的阶段;第二阶段为可执行程序在设备端安装完成后,以程序文件格式存储在设备端上的程序文件存储阶段;第三个阶段,为可执行程序在设备端的运行阶段。现在技术中,通常在第一阶段和/或第二阶段对可执行程序进行保护:例如,在第一阶段的生成可执行程序的过程,对可执行程序的全部代码采用RSA(RonRivest、AdiShamirh、LenAdleman,RSA)非对称加密算法生成公钥和私钥,可执行程序在后续的安装过程中将利用公钥进行解密以验证该可执行程序是否被篡改过,从而实现对可执行程序的保护;又例如,在第二阶段的升级或安装可执行程序过程后,将安装后的可执行程序保存于安全的硬件设备中,从而防止安装后的可执行程序被篡改,从而实现对可执行程序的保护。当然上述两种方法可以结合在一起实施。上述的现有技术的可执行程序的保护方法存在如下问题:在生成可执行程序时对该可执行程序的全部代码进行RSA加密后保存或将安装后的可执行程序保存于安全的硬件设备中,都无法确保加密后的可执行程序在存储后不被篡改。显然,现有技术的可执行程序的保护方法在运行阶段没有有效的保护措施,无法确定该运行的可执行程序是否被篡改过,而被篡改过的可执行程序运行时可以会出现无法正常运行或者非法运行使用户遭受损失等情况。因此现有技术的可执行程序的保护方法在对可执行程序进行保护时存在较大的安全隐患。
技术实现思路
本专利技术的目的是提供一种可执行程序的保护方法及装置,以解决现有技术的可执行程序的保护方法中,在可执行程序的运行阶段没有有效的保护措施,无法确定将要运行的可执行程序是否被篡改过,存在较大的安全隐患的问题。本专利技术的目的是通过以下技术方案实现的:本专利技术实施例提供一种可执行程序的保护方法,包括:调用操作系统内核解析已启动的可执行程序,并将解析所述可执行程序得到的程序数据加载到内存,所述程序数据包括用于保存待检RSA密文的密文数据段;若所述操作系统内核检测到所述密文数据段存在所述待检RSA密文,则获取所述待检RSA密文,并根据所述待检RSA密文生成第一SHA1摘要信息;调用所述操作系统内核获取不可擦写存储硬件中或预先保存于内核数据中的与所述可执行程序对应的密钥数据,根据包括有所述密钥数据的所述可执行程序的新程序数据生成第二SHA1摘要信息,其中,所述密钥数据为生成所述可执行程序所对应的原始RSA密文的部分数据;若所述操作系统内核确定所述第一SHA1摘要信息和所述第二SHA1摘要信息相同,则判定所述待检RSA密文与所述原始RSA密文的内容一致,继续执行所述可执行程序。本实施例中,在可执行程序的运行阶段,通过根据程序数据中保存的有可能被修改过的密文形成第一SHA1摘要信息,以及用具有较高安全性的密钥数据重新生成标准的第二SHA1摘要信息,通过二者的比对来确认可执行程序是否被修改过。由于对可执行程序在运行阶段进行校验保护,使只有没有被篡改过的可执行程序才可以继续运行,进而可以确保将要运行的可执行程序没有被篡改过,避免了运行可执行程序时存在的安全隐患。具体的,若所述操作系统内核检测所述密文数据段不存在所述待检RSA密文,则停止执行所述可执行程序;或者,所述操作系统内核确定所述第一SHA1摘要信息和所述第二SHA1摘要信息不相同,则判定所述待检RSA密文与所述原始RSA密文的内容不一致,停止执行所述可执行程序。优选的,调用所述操作系统内核将解析所述可执行程序得到的所述程序数据加载到内存后,还包括:调用所述操作系统内核接收所述可执行程序发送的检测所述程序数据段是否存所述待检RSA密文的检测请求。优选的,所述操作系统内核接收的所述检测请求为所述可执行程序通过netlink消息发送的。本实施例中,可执行程序通过使用netlink这种通信方式作为可执行程序与内核通信机制,避免使用设备节点和文件系统之类的显式文件通信,可以进一步提高可执行程序的安全性。优选的,根据所述待检RSA密文生成所述第一SHA1摘要信息,包括:调用所述操作系统内核获取不可擦写存储硬件中或预先保存于内核数据中的与所述可执行程序对应的公钥;调用所述操作系统内核根据获取到的所述公钥对所述待检RSA密文解密,生成所述第一SHA1摘要信息。本实施例中,在不可擦写存储硬件中或预先保存于内核数据中获取的公钥具有更高的安全性。优选的,所述根据包括有所述密钥数据的所述可执行程序的新程序数据生成所述第二SHA1摘要信息之前,还包括:调用所述操作系统内核用获取到的所述密钥数据覆盖内存中所述程序数据的所述密文数据段保存的所述待检RSA密文,得到所述新程序数据。本实施例中,用从内核数据中获取的密钥数据覆盖程序数据中的密文数据段中的待检RSA密文可以得到新程序数据,通过对新生成的新程序数据进行计算形成第二SHA1摘要信息,可以避免对可执行程序校验的信息全部保存在程序数据中,使经过不正当修改的可执行程序无法在设备端运行,进一步提高可执行程序的安全性。本专利技术实施例有益效果如下:在可执行程序的运行阶段,通过根据程序数据中保存的有可能被修改过的密文形成第一SHA1摘要信息,以及用具有较高安全性的密钥数据重新生成标准的第二SHA1摘要信息,通过二者的比对来确认可执行程序是否被修改过。由于对可执行程序在运行阶段进行校验保护,使只有没有被篡改过的可执行程序才可以继续运行,进而可以确保将要运行的可执行程序没有被篡改过,避免了运行可执行程序时存在的安全隐患。本专利技术实施例提供一种可执行程序的保护方法,编译生成所述可执行程序的过程中,包括:生成对应所述可执行程序的用于解密的公钥和用于加密的私钥;在所述可执行程序的用于保存RSA密文的密文数据段插入密钥数据;根据包括所述密钥数据的所述可执行程序生成原始SHA1摘要信息;利用所述私钥对所述原始SHA1摘要信息进行加密生成所述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

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

1