CN103530555A - 防止程序执行恶意操作的方法和装置 - Google Patents

防止程序执行恶意操作的方法和装置 Download PDF

Info

Publication number
CN103530555A
CN103530555A CN201310536128.5A CN201310536128A CN103530555A CN 103530555 A CN103530555 A CN 103530555A CN 201310536128 A CN201310536128 A CN 201310536128A CN 103530555 A CN103530555 A CN 103530555A
Authority
CN
China
Prior art keywords
program
check code
target
verification
target program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310536128.5A
Other languages
English (en)
Other versions
CN103530555B (zh
Inventor
杨耀敏
周雄峰
朱理
高良伟
钟乐员
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Desktop Cloud Network Technology Co., Ltd.
Original Assignee
Zhejiang Yun Chao Science And Technology Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Yun Chao Science And Technology Ltd filed Critical Zhejiang Yun Chao Science And Technology Ltd
Priority to CN201310536128.5A priority Critical patent/CN103530555B/zh
Publication of CN103530555A publication Critical patent/CN103530555A/zh
Application granted granted Critical
Publication of CN103530555B publication Critical patent/CN103530555B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种防止程序执行恶意操作的方法和装置。其中,防止程序执行恶意操作的方法包括:封装被保护程序,得到第一目标程序;校验第一目标程序,得到预定校验码;利用预定校验码加密第一目标程序,得到第二目标程序;校验第二目标程序,得到目标校验码;判断目标校验码与预定校验码是否相同,以及在判断出目标校验码与预定校验码不相同的情况下,停止第二目标程序的运行或退出第二目标程序。通过本发明,解决了现有技术中程序容易执行恶意操作的问题,进而达到了提高程序的安全性的效果。

Description

防止程序执行恶意操作的方法和装置
技术领域
本发明涉及计算机软件领域,具体而言,涉及一种防止程序执行恶意操作的方法和装置。
背景技术
发明人发现,在当前的Linux体系下编程和开发下,程序容易被篡改,执行恶意操作,目前,还没有一套行之有效的方法来防止程序被篡改引起的恶意操作。
针对相关技术中程序容易执行恶意操作的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种防止程序执行恶意操作的方法和装置,以解决现有技术中程序容易执行恶意操作的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种防止程序执行恶意操作的方法,包括:封装被保护程序,得到第一目标程序;校验第一目标程序,得到预定校验码;利用预定校验码加密第一目标程序,得到第二目标程序;校验第二目标程序,得到目标校验码;判断目标校验码与预定校验码是否相同;以及在判断出目标校验码与预定校验码不相同的情况下,停止第二目标程序的运行或退出第二目标程序。
进一步地,校验第一目标程序,得到预定校验码包括:通过校验第一目标程序的字节码得到预定校验码。
进一步地,校验第二目标程序,得到目标校验码包括:通过校验第二目标程序的字节码得到目标校验码。
进一步地,校验第二目标程序,得到目标校验码包括:启动第二目标程序时校验第二目标程序;和/或在第二目标程序运行过程中,确定预定数据被访问的情况下,校验第二目标程序。
进一步地,在停止第二目标程序的运行之后,防止程序执行恶意操作的方法还包括:恢复第二目标程序。
进一步地,利用预定校验码加密第一目标程序,得到第二目标程序包括:利用预定密钥对预定校验码进行加密,得到加密校验码;以及利用加密校验码加密第一目标程序,得到第二目标程序。
为了实现上述目的,根据本发明的另一方面,提供了种防止程序执行恶意操作的装置,该装置用于执行本发明上述内容所提供的任一种防止程序执行恶意操作的方法。
为了实现上述目的,根据本发明的另一方面,提供了种防止程序执行恶意操作的装置,包括:封装单元,用于封装被保护程序,得到第一目标程序;第一校验单元,用于校验第一目标程序,得到预定校验码;加密单元,用于利用预定校验码加密第一目标程序,得到第二目标程序;第二校验单元,用于校验第二目标程序,得到目标校验码;判断单元,用于判断目标校验码与预定校验码是否相同;以及执行单元,用于在判断单元判断出目标校验码与预定校验码不相同的情况下,停止第二目标程序的运行或退出第二目标程序。
进一步地,第一校验单元包括:第一校验子单元,用于通过校验第一目标程序的字节码得到预定校验码。
进一步地,第二校验单元包括:第二校验子单元,用于通过校验第二目标程序的字节码得到目标校验码。
进一步地,第二校验单元用于在启动第二目标程序时校验第二目标程序;和/或第二校验单元用于在第二目标程序运行过程中,确定预定数据被访问的情况下,校验第二目标程序。
进一步地,防止程序执行恶意操作的装置还包括:恢复单元,用于在执行单元停止第二目标程序的运行之后,恢复第二目标程序。
进一步地,加密单元包括:第一加密子单元,用于利用预定密钥对预定校验码进行加密,得到加密校验码;以及第二加密子单元,用于利用加密校验码加密第一目标程序,得到第二目标程序。
本发明采用封装被保护程序,得到第一目标程序;校验第一目标程序,得到预定校验码;利用预定校验码加密第一目标程序,得到第二目标程序;校验第二目标程序,得到目标校验码;判断目标校验码与预定校验码是否相同,以及在判断出目标校验码与预定校验码不相同的情况下,停止第二目标程序的运行或退出第二目标程序。第一目标程序在编译后未经任何修改,此时的校验码为未经修改的校验码,即预定校验码。利用预定校验码对第一目标程序的加密,不会改变第一目标程序和所得到的第二目标程序的校验码,所以在第二目标程序未被修改的情况下,对第二目标程序进行校验得到的目标校验码与预定校验码相同。在第二目标程序运行过程中,若第二目标程序被修改,则目标校验码会发生改变。因此通过比较目标校验码与预定校验码是否相同,可以判断第二目标程序是否被篡改,若程序被篡改则执行预设动作,如退出程序或停止程序运行等,进而避免程序容易被篡改引起的恶意操作,解决了现有技术中程序容易执行恶意操作的问题,进而达到了提高程序的安全性的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明第一实施例的防止程序执行恶意操作的方法的流程图;
图2是根据本发明第二实施例的防止程序执行恶意操作的方法的流程图;
图3是根据本发明第一实施例的防止程序执行恶意操作的装置的结构示意图;以及
图4是根据本发明第二实施例的防止程序执行恶意操作的装置的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明实施例提供一种防止程序执行恶意操作的方法,即,本发明实施例提供一种程序保护方法,下面对本发明实施例提供的防止程序别篡改的方法(程序保护方法)进行具体介绍;
所谓防止程序执行恶意操作,就是可执行程序编译通过后,对程序进行保护,当被保护的程序被企图恶意修改时,程序将检测到并做出相应的动作。
图1是本发明第一实施例的防止程序执行恶意操作的方法的流程图,如图1所示,该方法包括如下的步骤S102至步骤S112:
步骤S102,封装被保护程序,得到第一目标程序。在被保护程序编译通过之后,将防篡改代码加入被保护程序的源代码中,程序编译时,编译工具会连接到特定的库函数中,这些库函数是为封装被保护函数制定的,编译后被保护程序被封装起来,即第一目标程序。
步骤S104,校验第一目标程序,得到预定校验码。第一目标程序在编译后未经任何修改,此时的校验码为未经修改的校验码,即预定校验码。
步骤S106,利用预定校验码加密第一目标程序,得到第二目标程序。使用加密工具利用预定校验码对第一目标程序进行加密,加密工具在加密第一目标程序时,会将预定校验码导入第二目标程序中。此时,第二目标程序的校验码(以下称目标校验码)与预定校验码相同。
步骤S108,校验第二目标程序,得到目标校验码,其中,第二目标程序能进行自我校验,得到目标校验码。
步骤S110,判断目标校验码与预定校验码是否相同。在第二目标程序运行过程中,若第二目标程序的校验码被修改,则目标校验码会发生改变。通过比较目标校验码与预定校验码是否相同可以判断第二目标程序是否被篡改。
步骤S112,在判定目标校验码与预定校验码不相同的情况下,停止第二目标程序的运行或退出第二目标程序。第二目标程序被篡改,则第二目标程序可能会执行恶意行为,此时应立即停止运行或退出第二目标程序。
本发明第一实施例的防止程序执行恶意操作的方法,利用预定校验码对第一目标程序的加密,不会改变第一目标程序和所得到的第二目标程序的校验码,所以在第二目标程序未被修改的情况下,对第二目标程序进行校验得到的目标校验码与预定校验码相同。在第二目标程序运行过程中,若第二目标程序被修改,则目标校验码会发生改变。因此通过比较目标校验码与预定校验码是否相同,可以判断第二目标程序是否被篡改,若程序被篡改则执行预设动作,如退出程序或停止程序运行等,进而避免程序容易被篡改引起的恶意操作,解决了现有技术中程序容易执行恶意操作的问题,进而达到了提高程序的安全性的效果。
更进一步地,在本发明第一实施例的防止程序执行恶意操作的方法中,对第一目标程序和第二目标程序的校验可以具体采用如下方式:通过校验第一目标程序的字节码得到预定校验码,通过校验第二目标程序的字节码得到目标校验码。
具体地,可以采用MD5算法对第一目标程序的字节码进行处理得到预定校验码,采用MD5算法对第二目标程序的字节码进行处理得到目标校验码。但不仅限于MD5算法,也可采用其他的算法,也不仅限于对字节码进行校验,也可用其它的方法得到校验码。
进一步地,校验第二目标程序,得到目标校验码包括:启动第二目标程序时校验第二目标程序;和/或在第二目标程序运行过程中,确定预定数据被访问的情况下,校验第二目标程序。
预定数据是第二目标程序中的特殊数据,若要篡改第二目标程序,则必须访问这些特殊数据。只在确定预定数据被访问的情况下对第二目标程序进行校验可以节省硬件资源,提高工作效率。另外,只在第二目标程序运行前对第二目标程序进行校验,也可以在一定程度上防止第二目标程序被篡改导致的恶意操作。若在第二目标程序运行前,和在预定数据被访问的情况下均对第二目标程序进行校验,可以进一步地保证第二目标程序的安全性。
进一步地,利用预定校验码加密第一目标程序,得到第二目标程序包括:首先,利用预定密钥对预定校验码进行加密得到加密校验码。然后,利用加密校验码加密第一目标程序,得到第二目标程序。具体地,使用MD5加密算法对程序进行了校验得到校验码虽然在一定程度上防止了程序被篡改,但是若非法用户知道其具体的实现过程就可通过修改MD5值来达到篡改的目的。为了加强程序的安全性,加密工具先利用密钥对预定校验码进行加密得到加密校验码。由于在第二目标程序中的校验码是利用密钥加密过的,因此如果想通过修改MD5值来篡改第二目标程序,则必须知道密钥才能得到正确的校验值,只要密钥不被非法用户获得,第二目标程序无法被修改。具体地,可以利用密钥通过RSA算法加密校验码,但不仅限于此,还可采用其它加密算法。
图2是本发明第二实施例的防止程序执行恶意操作的方法的流程图,该第二实施例所示出的防止程序执行恶意操作的方法,可以作为本发明第一实施例的一种优选实施例。如图2所示,该方法包括如下的步骤S202至步骤S214:
步骤S202,封装被保护程序,得到第一目标程序。在被保护程序编译通过之后,将防篡改代码加入被保护程序的源代码中,程序编译时,编译工具会连接到特定的库函数中,这些库函数是为封装被保护函数制定的,编译后被保护程序被封装起来,即第一目标程序。
步骤S204,校验第一目标程序,得到预定校验码。第一目标程序在编译后未经任何修改,此时的校验码为未经修改的校验码,即预定校验码。具体校验方法与本发明第一实施例中所提供的校验方法相同,此处不再赘述。
步骤S206,利用预定校验码加密第一目标程序,得到第二目标程序。使用加密工具利用预定校验码对第一目标程序进行加密,加密工具在加密第一目标程序时,会将预定校验码导入第二目标程序中。此时,第二目标程序的校验码(以下称目标校验码)与预定校验码相同。
步骤S208,校验第二目标程序,得到目标校验码,其中,第二目标程序能进行自我校验,得到目标校验码。具体校验方法与本发明第一实施例中所提供的校验方法相同,此处不再赘述。
步骤S210,判断目标校验码与预定校验码是否相同。在第二目标程序运行过程中,若第二目标程序的校验码被修改,则目标校验码会发生改变。通过比较目标校验码与预定校验码是否相同可以判断第二目标程序是否被篡改。
步骤S212,在判定目标校验码与预定校验码不相同的情况下,停止第二目标程序的运行或退出第二目标程序。第二目标程序被篡改,则第二目标程序可能会执行恶意行为,此时应立即停止运行或退出第二目标程序。
步骤S214在停止第二目标程序之后,对第二目标程序进行恢复。
本发明第二实施例的防止程序执行恶意操作的方法,在解决了现有技术中程序容易执行恶意操作的问题,达到了提高程序安全性的基础上,通过对第二目标程序进行恢复可以继续发挥程序的正常功能,进一步减小第二目标程序被篡改的影响。
进一步地,在本发明第二实施例的防止程序执行恶意操作的方法中,对第一目标程序和第二目标程序的校验可以具体采用如下方式:通过校验第一目标程序的字节码得到预定校验码,通过校验第二目标程序的字节码得到目标校验码。
具体地,可以采用MD5算法对第一目标程序的字节码进行处理得到预定校验码,采用MD5算法对第二目标程序的字节码进行处理得到目标校验码。但不仅限于MD5算法,也可采用其他的算法,也不仅限于对字节码进行校验,也可用其它的方法得到校验码。
进一步地,校验第二目标程序,得到目标校验码包括:启动第二目标程序时校验第二目标程序;和/或在第二目标程序运行过程中,确定预定数据被访问的情况下,校验第二目标程序。
预定数据时第二目标程序中的特殊数据,若要篡改第二目标程序,则必须访问这些特殊数据。只在确定预定数据被访问的情况下对第二目标程序进行校验可以节省硬件资源,提高工作效率。另外,只在第二目标程序运行前对第二目标程序进行校验,也可以在一定程度上防止第二目标程序被篡改导致的恶意操作。若在第二目标程序运行前对第二目标程序进行校验且在预定数据被访问的情况下均对第二目标程序进行校验可以进一步地保证第二目标程序的安全性。步骤S202,封装被保护程序,得到第一目标程序。在被保护程序编译通过之后,将防篡改代码加入被保护程序的源代码中,程序编译时,编译工具会连接到特定的库函数中,这些库函数是为封装被保护函数制定的,编译后被保护程序被封装起来,即第一目标程序。
进一步地,利用预定校验码加密第一目标程序,得到第二目标程序包括:首先,利用预定密钥对预定校验码进行加密得到加密校验码。然后,利用加密校验码加密第一目标程序,得到第二目标程序。具体地,使用MD5加密算法对程序进行了校验得到校验码虽然在一定程度上防止了程序被篡改,但是若非法用户知道其具体的实现过程就可通过修改MD5值来达到篡改的目的。为了加强程序的安全性,加密工具先利用密钥对目标校验码进行加密得到加密校验码。由于在第二目标程序中的校验码是利用密钥加密过的,因此如果想通过修改MD5值来篡改第二目标程序,则必须知道密钥才能得到正确的校验值,只要密钥不被非法用户获得,第二目标程序无法被修改。具体地,可以利用密钥通过RSA算法加密校验码,但不仅限于此,还可采用其它加密算法。
本发明实施例还提供了一种防止程序执行恶意操作的装置(即,程序保护装置),该装置主要用于执行本发明实施上述内容所提供的防止程序执行恶意操作的方法,以下对本发明实施例所提供的防止程序执行恶意操作的装置进行具体介绍:
图3是本发明第一实施例的防止程序执行恶意操作的装置的结构图,如图3所示,该装置包括:封装单元10、第一校验单元20、加密单元30、第二校验单元40、判断单元50和执行单元60,其中:
封装单元10用于封装被保护程序,得到第一目标程序。在被保护程序编译通过之后,将防篡改代码加入被保护程序的源代码中,程序编译时,编译工具会连接到特定的库函数中,这些库函数是为封装被保护函数制定的,编译后被保护程序被封装起来,即第一目标程序。
第一校验单元20用于校验第一目标程序,得到预定校验码。第一目标程序在编译后未经任何修改,此时的校验码为未经修改的校验码,即预定校验码。
加密单元30用于利用预定校验码加密第一目标程序,得到第二目标程序。使用加密单元30利用预定校验码对第一目标程序进行加密,加密单元30在加密第一目标程序时,会将预定校验码导入第二目标程序中。此时,第二目标程序的校验码(以下称目标校验码)与预定校验码相同。
第二校验单元40用于校验第二目标程序,得到目标校验码,第二目标程序能进行自我校验,得到目标校验码。
判断单元50用于判断目标校验码与预定校验码是否相同。在第二目标程序运行过程中,若第二目标程序的校验码被修改,则目标校验码会发生改变。通过比较目标校验码与预定校验码是否相同可以判断第二目标程序是否被篡改。
执行单元60用于在判断单元50判断出目标校验码与预定校验码不相同的情况下,停止第二目标程序的运行或退出第二目标程序。第二目标程序被篡改,则第二目标程序可能会执行恶意行为,此时应立即停止运行或退出第二目标程序。
本发明第一实施例的防止程序执行恶意操作的装置,利用预定校验码对第一目标程序的加密,不会改变第一目标程序和所得到的第二目标程序的校验码,所以在第二目标程序未被修改的情况下,对第二目标程序进行校验得到的目标校验码与预定校验码相同。在第二目标程序运行过程中,若第二目标程序被修改,则目标校验码会发生改变。因此通过比较目标校验码与预定校验码是否相同,可以判断第二目标程序是否被篡改,若程序被篡改则执行预设动作,如退出程序或停止程序运行等,进而避免程序容易被篡改引起的恶意操作,解决了现有技术中程序容易执行恶意操作的问题,进而达到了提高程序的安全性的效果。
进一步地,第一校验单元20包括第一校验子单元,该第一校验单元用于通过校验所述第一目标程序的字节码得到所述预定校验码。第二校验单元40包括第二校验子单元,该第二校验子单元用于通过校验第二目标程序的字节码得到目标校验码。
具体地,可以采用MD5算法对第一目标程序的字节码进行处理得到预定校验码,采用MD5算法对第二目标程序的字节码进行处理得到目标校验码。但不仅限于MD5算法,也可采用其他的算法,也不仅限于对字节码进行校验,也可用其它的方法得到校验码。
进一步地,第二校验单元40在启动第二目标程序时校验第二目标程序,或在第二目标程序运行过程中,确定预定数据被访问的情况下,校验第二目标程序,或既在启动第二目标程序时校验第二目标程序,又在第二目标程序运行过程中,确定预定数据被访问的情况下,校验第二目标程序。
预定数据是第二目标程序中的特殊数据,若要篡改第二目标程序,则必须访问这些特殊数据。若第二校验单元40只在确定预定数据被访问的情况下对第二目标程序进行校验可以节省硬件资源,提高工作效率。另外,若第二校验单元40只在第二目标程序运行前对第二目标程序进行校验,也可以在一定程度上防止第二目标程序被篡改导致的恶意操作。若第二校验单元40在第二目标程序运行前,和在预定数据被访问的情况下均对第二目标程序进行校验,可以进一步地保证第二目标程序的安全性。
进一步地,加密单元30包括第一加密子单元和第二加密子单元,第一加密子单元用于利用预定密钥对预定校验码进行加密得到加密校验码。第二加密子单元用于利用加密校验码加密第一目标程序,得到第二目标程序。具体地,使用MD5加密算法对程序进行了校验得到校验码虽然在一定程度上防止了程序被篡改,但是若非法用户知道其具体的实现过程就可通过修改MD5值来达到篡改的目的。为了加强程序的安全性,加密工具先利用密钥对目标校验码进行加密得到加密校验码。由于在第二目标程序中的校验码是利用密钥加密过的,因此如果想通过修改MD5值来篡改第二目标程序,则必须知道密钥才能得到正确的校验值,只要密钥不被非法用户获得,第二目标程序无法被修改。具体地,可以利用密钥通过RSA算法加密校验码,但不仅限于此,还可采用其它加密算法。
图4是是本发明第二实施例的防止程序执行恶意操作的装置的结构图,该第二实施例所示出的防止程序执行恶意操作的装置,可以作为本发明第一实施例的防止程序执行恶意操作的装置的一种优选实施例。如图4所示,本发明第二实施例的防止程序执行恶意操作的装置主要包括封装单元10、第一校验单元20、加密单元30、第二校验单元40、判断单元50、执行单元60和恢复单元70,其中:
封装单元10用于封装被保护程序,得到第一目标程序。在被保护程序编译通过之后,将防篡改代码加入被保护程序的源代码中,程序编译时,编译工具会连接到特定的库函数中,这些库函数是为封装被保护函数制定的,编译后被保护程序被封装起来,即第一目标程序。
第一校验单元20用于校验第一目标程序,得到预定校验码。第一目标程序在编译后未经任何修改,此时的校验码为未经修改的校验码,即预定校验码。
具体地,可以采用MD5算法对第一目标程序的字节码进行处理得到预定校验码,采用MD5算法对第二目标程序的字节码进行处理得到目标校验码。但不仅限于MD5算法,也可采用其他的算法,也不仅限于对字节码进行校验,也可用其它的方法得到校验码。
加密单元30用于利用预定校验码加密第一目标程序,得到第二目标程序。使用加密单元30利用预定校验码对第一目标程序进行加密,加密单元30在加密第一目标程序时,会将预定校验码导入第二目标程序中。此时,第二目标程序的校验码(以下称目标校验码)与预定校验码相同。
第二校验单元40用于校验第二目标程序,得到目标校验码,其中,第二目标程序能进行自我校验,得到目标校验码。
判断单元50用于判断目标校验码与预定校验码是否相同。在第二目标程序运行过程中,若第二目标程序的校验码被修改,则目标校验码会发生改变。通过比较目标校验码与预定校验码是否相同可以判断第二目标程序是否被篡改。
执行单元60用于在判断单元50判断出目标校验码与预定校验码不相同的情况下,停止第二目标程序的运行或退出第二目标程序。第二目标程序被篡改,则第二目标程序可能会执行恶意行为,此时应立即停止运行或退出第二目标程序。
恢复单元70用于在执行单元50停止第二目标程序之后,对第二目标程序进行恢复。
本发明第二实施例的防止程序执行恶意操作的装置,在解决了现有技术中程序容易执行恶意操作的问题,达到了提高程序安全性的基础上,通过恢复单元对第二目标程序进行恢复可以继续发挥程序的正常功能,进一步减小第二目标程序被篡改的影响。
进一步地,第一校验单元20包括第一校验子单元,该第一校验子单元用于通过校验所述第一目标程序的字节码得到所述预定校验码。第二校验单元30包括:第二校验子单元,该第二校验子单元用于通过校验第二目标程序的字节码得到目标校验码。
进一步地,第二校验单元40在启动第二目标程序时校验第二目标程序,或在第二目标程序运行过程中,确定预定数据被访问的情况下,校验第二目标程序,或既在启动第二目标程序时校验第二目标程序,又在第二目标程序运行过程中,确定预定数据被访问的情况下,校验第二目标程序。
预定数据是第二目标程序中的特殊数据,若要篡改第二目标程序,则必须访问这些特殊数据。若第二校验单元40只在确定预定数据被访问的情况下对第二目标程序进行校验可以节省硬件资源,提高工作效率。另外,若第二校验单元40只在第二目标程序运行前对第二目标程序进行校验,也可以在一定程度上防止第二目标程序被篡改导致的恶意操作。若第二校验单元40在第二目标程序运行前,和在预定数据被访问的情况下均对第二目标程序进行校验,可以进一步地保证第二目标程序的安全性。
进一步地,加密单元30包括第一加密子单元和第二加密子单元,第一加密子单元用于利用预定密钥对预定校验码进行加密得到加密校验码。第二加密子单元用于利用加密校验码加密第一目标程序,得到第二目标程序。具体地,使用MD5加密算法对程序进行了校验得到校验码虽然在一定程度上防止了程序被篡改,但是若非法用户知道其具体的实现过程就可通过修改MD5值来达到篡改的目的。为了加强程序的安全性,加密工具先利用密钥对目标校验码进行加密得到加密校验码。由于在第二目标程序中的校验码是利用密钥加密过的,因此如果想通过修改MD5值来篡改第二目标程序,则必须知道密钥才能得到正确的校验值,只要密钥不被非法用户获得,第二目标程序无法被修改。具体地,可以利用密钥通过RSA算法加密校验码,但不仅限于此,还可采用其它加密算法。
从以上的描述中,可以看出,本发明实现了防止程序执行恶意操作,达到了提高程序安全性的效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种防止程序执行恶意操作的方法,其特征在于,包括:
封装被保护程序,得到第一目标程序;
校验所述第一目标程序,得到预定校验码;
利用所述预定校验码加密所述第一目标程序,得到第二目标程序;
校验所述第二目标程序,得到目标校验码;
判断所述目标校验码与所述预定校验码是否相同;以及
在判断出所述目标校验码与所述预定校验码不相同的情况下,停止所述第二目标程序的运行或退出所述第二目标程序。
2.根据权利要求1所述的防止程序执行恶意操作的方法,其特征在于,校验所述第一目标程序,得到所述预定校验码包括:
通过校验所述第一目标程序的字节码得到所述预定校验码。
3.根据权利要求1或2所述的防止程序执行恶意操作的方法,其特征在于,校验所述第二目标程序,得到目标校验码包括:
通过校验所述第二目标程序的字节码得到所述目标校验码。
4.根据权利要求1所述的防止程序执行恶意操作的方法,其特征在于,校验第二目标程序,得到目标校验码包括:
启动所述第二目标程序时校验所述第二目标程序;和/或
在所述第二目标程序运行过程中,确定预定数据被访问的情况下,校验所述第二目标程序。
5.根据权利要求1所述的防止程序执行恶意操作的方法,其特征在于,在停止所述第二目标程序的运行之后,所述防止程序执行恶意操作的方法还包括:恢复所述第二目标程序。
6.根据权利要求3所述的防止程序执行恶意操作的方法,其特征在于,利用所述预定校验码加密所述第一目标程序,得到第二目标程序包括:
利用预定密钥对所述预定校验码进行加密,得到加密校验码;以及
利用所述加密校验码加密所述第一目标程序,得到所述第二目标程序。
7.一种防止程序执行恶意操作的装置,其特征在于,包括:
封装单元,用于封装被保护程序,得到第一目标程序;
第一校验单元,用于校验所述第一目标程序,得到预定校验码;
加密单元,用于利用所述预定校验码加密所述第一目标程序,得到第二目标程序;
第二校验单元,用于校验所述第二目标程序,得到目标校验码;
判断单元,用于判断所述目标校验码与所述预定校验码是否相同;以及
执行单元,用于在所述判断单元判断出所述目标校验码与所述预定校验码不相同的情况下,停止所述第二目标程序的运行或退出所述第二目标程序。
8.根据权利要求7所述的防止程序执行恶意操作的装置,其特征在于,所述第一校验单元包括:
第一校验子单元,用于通过校验所述第一目标程序的字节码得到所述预定校验码。
9.根据权利要求7或8中所述的防止程序执行恶意操作的装置,其特征在于,所述第二校验单元包括:
第二校验子单元,用于通过校验所述第二目标程序的字节码得到所述目标校验码。
10.根据权利要求7所述的防止程序执行恶意操作的装置,其特征在于,
所述第二校验单元用于在启动所述第二目标程序时校验所述第二目标程序;和/或
所述第二校验单元用于在所述第二目标程序运行过程中,确定预定数据被访问的情况下,校验所述第二目标程序。
11.根据权利要求7所述的防止程序执行恶意操作的装置,其特征在于,所述防止程序执行恶意操作的装置还包括:
恢复单元,用于在所述执行单元停止所述第二目标程序的运行之后,恢复所述第二目标程序。
12.根据权利要求9所述的防止程序执行恶意操作的装置,其特征在于,所述加密单元包括:
第一加密子单元,用于利用预定密钥对所述预定校验码进行加密,得到加密校验码;以及
第二加密子单元,用于利用所述加密校验码加密所述第一目标程序,得到所述第二目标程序。
CN201310536128.5A 2013-10-31 2013-10-31 防止程序执行恶意操作的方法和装置 Expired - Fee Related CN103530555B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310536128.5A CN103530555B (zh) 2013-10-31 2013-10-31 防止程序执行恶意操作的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310536128.5A CN103530555B (zh) 2013-10-31 2013-10-31 防止程序执行恶意操作的方法和装置

Publications (2)

Publication Number Publication Date
CN103530555A true CN103530555A (zh) 2014-01-22
CN103530555B CN103530555B (zh) 2016-09-07

Family

ID=49932559

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310536128.5A Expired - Fee Related CN103530555B (zh) 2013-10-31 2013-10-31 防止程序执行恶意操作的方法和装置

Country Status (1)

Country Link
CN (1) CN103530555B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106096452A (zh) * 2016-06-24 2016-11-09 贵州万臻时代通讯技术有限公司 一种终端镜像备份的防盗方法及装置
CN110162324A (zh) * 2019-06-03 2019-08-23 南方电网科学研究院有限责任公司 直流控制保护设备中的可执行代码更新方法、装置及介质
CN113407910A (zh) * 2020-03-17 2021-09-17 北京华为数字技术有限公司 一种程序运行方法、程序加壳方法及设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0449255A2 (en) * 1990-03-27 1991-10-02 Kabushiki Kaisha Toshiba Micro controller
CN101482887A (zh) * 2009-02-18 2009-07-15 北京数码视讯科技股份有限公司 数据库关键数据的防篡改检验方法
CN101615230A (zh) * 2009-08-07 2009-12-30 浪潮电子信息产业股份有限公司 一种文件可信执行和可信保护的方法
CN102222194A (zh) * 2011-07-14 2011-10-19 哈尔滨工业大学 Linux主机计算环境安全保护的模块及方法
CN102609666A (zh) * 2012-01-20 2012-07-25 飞天诚信科技股份有限公司 一种可执行程序加壳保护方法
CN102684879A (zh) * 2012-05-02 2012-09-19 四川建设网有限责任公司 一种远程开标、评标方法及系统
CN102831341A (zh) * 2012-07-26 2012-12-19 深圳市赛格导航科技股份有限公司 一种电子交易文件的保护方法
CN103078841A (zh) * 2012-12-03 2013-05-01 厦门市美亚柏科信息股份有限公司 一种预防性电子数据保全的方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0449255A2 (en) * 1990-03-27 1991-10-02 Kabushiki Kaisha Toshiba Micro controller
CN101482887A (zh) * 2009-02-18 2009-07-15 北京数码视讯科技股份有限公司 数据库关键数据的防篡改检验方法
CN101615230A (zh) * 2009-08-07 2009-12-30 浪潮电子信息产业股份有限公司 一种文件可信执行和可信保护的方法
CN102222194A (zh) * 2011-07-14 2011-10-19 哈尔滨工业大学 Linux主机计算环境安全保护的模块及方法
CN102609666A (zh) * 2012-01-20 2012-07-25 飞天诚信科技股份有限公司 一种可执行程序加壳保护方法
CN102684879A (zh) * 2012-05-02 2012-09-19 四川建设网有限责任公司 一种远程开标、评标方法及系统
CN102831341A (zh) * 2012-07-26 2012-12-19 深圳市赛格导航科技股份有限公司 一种电子交易文件的保护方法
CN103078841A (zh) * 2012-12-03 2013-05-01 厦门市美亚柏科信息股份有限公司 一种预防性电子数据保全的方法及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106096452A (zh) * 2016-06-24 2016-11-09 贵州万臻时代通讯技术有限公司 一种终端镜像备份的防盗方法及装置
CN106096452B (zh) * 2016-06-24 2019-06-25 贵州万臻时代通讯技术有限公司 一种终端镜像备份的防盗方法及装置
CN110162324A (zh) * 2019-06-03 2019-08-23 南方电网科学研究院有限责任公司 直流控制保护设备中的可执行代码更新方法、装置及介质
CN110162324B (zh) * 2019-06-03 2023-07-11 南方电网科学研究院有限责任公司 直流控制保护设备中的可执行代码更新方法、装置及介质
CN113407910A (zh) * 2020-03-17 2021-09-17 北京华为数字技术有限公司 一种程序运行方法、程序加壳方法及设备
CN113407910B (zh) * 2020-03-17 2022-11-25 北京华为数字技术有限公司 一种程序运行方法、程序加壳方法及设备

Also Published As

Publication number Publication date
CN103530555B (zh) 2016-09-07

Similar Documents

Publication Publication Date Title
Zhao et al. Providing root of trust for ARM TrustZone using on-chip SRAM
Suh et al. Aegis: A single-chip secure processor
US9177153B1 (en) Verifying integrity and guaranteeing execution of code on untrusted computer platform
KR20180093038A (ko) 신뢰 실행 환경을 갖는 모바일 디바이스
CN104657630A (zh) 利用物理不可克隆功能的集成电路供应
US20180204004A1 (en) Authentication method and apparatus for reinforced software
US9563754B2 (en) Method of generating a structure and corresponding structure
TWI631462B (zh) 確保機板上匯流排交易安全的計算系統和計算設備實現的方法以及非暫時性的電腦可讀取媒體
CN113010856A (zh) 一种动态非对称加解密的JavaScript代码混淆方法与系统
CN111177693A (zh) 一种验证终端根证书的方法、装置、设备和介质
Jung et al. A secure platform model based on ARM platform security architecture for IoT devices
CN104200137A (zh) 一种保护java程序自身安全的方法
CN103530555A (zh) 防止程序执行恶意操作的方法和装置
CN110611659B (zh) 一种电力监控系统业务本质保护方法、装置及系统
Qin et al. RIPTE: runtime integrity protection based on trusted execution for IoT device
Aldoseri et al. Symbolic modelling of remote attestation protocols for device and app integrity on Android
Duncan et al. SeRFI: secure remote FPGA initialization in an untrusted environment
US20230017231A1 (en) Securely executing software based on cryptographically verified instructions
CN107317925B (zh) 移动终端
Zaharis et al. Live forensics framework for wireless sensor nodes using sandboxing
CN104376277A (zh) 运算装置、方法与系统
US20180060585A1 (en) System for program counter encryption
CN109840409B (zh) 核心板和核心板启动方法
EP3046095B1 (en) A method of protecting diverse applications stored on an integrated circuit using PUFs
CN114173327A (zh) 基于5g行业专网的认证方法及终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190416

Address after: 311200 Hongxing Road, Xiaoshan economic and Technological Development Zone, Hangzhou, Zhejiang 389

Patentee after: Zhejiang Desktop Cloud Network Technology Co., Ltd.

Address before: 311200 Xinyi Plaza, Began Street, Xiaoshan District, Hangzhou City, Zhejiang Province, 27th floor

Patentee before: Zhejiang Yun Chao Science and Technology Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160907

Termination date: 20201031