CN106789051A - 一种保护文件的方法、装置和计算设备 - Google Patents

一种保护文件的方法、装置和计算设备 Download PDF

Info

Publication number
CN106789051A
CN106789051A CN201710184528.2A CN201710184528A CN106789051A CN 106789051 A CN106789051 A CN 106789051A CN 201710184528 A CN201710184528 A CN 201710184528A CN 106789051 A CN106789051 A CN 106789051A
Authority
CN
China
Prior art keywords
file
aes
specified
encryption
key
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
CN201710184528.2A
Other languages
English (en)
Other versions
CN106789051B (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.)
Beijing Hongxiang Technical Service Co Ltd
Original Assignee
Beijing Qihoo Technology Co 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 Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201710184528.2A priority Critical patent/CN106789051B/zh
Publication of CN106789051A publication Critical patent/CN106789051A/zh
Priority to PCT/CN2017/119503 priority patent/WO2018171283A1/zh
Application granted granted Critical
Publication of CN106789051B publication Critical patent/CN106789051B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种保护文件的方法、装置和计算设备。所述方法包括:对于进行文件修改操作的进程,判断该进程是否使用指定加密算法对文件进行加密处理;如果该进程使用指定加密算法对文件进行加密处理,则利用钩子函数导出指定加密算法所使用的密钥并保存;当需要时,根据指定加密算法和所保存密钥对被加密处理的文件进行解密处理。本发明可以实现在文件被非法加密后,利用导出的密钥将加密的文件进行解密,以恢复加密的文件,有效的保护文件,维护用户自身的利益,提高用户体验。

Description

一种保护文件的方法、装置和计算设备
技术领域
本发明涉及计算机技术领域,具体涉及一种保护文件的方法、装置和计算设备。
背景技术
随着计算机技术在社会生活和工作中的普及,大量的文件被保存在各种的终端设备中,例如手机、pad、台式电脑等,其中不乏一些比较重要的文件。但是,有些不法分子会采用各种方法侵入私人终端设备将文件修改,要求用户给予一定的报酬,才将修改后的文件恢复,以此非法谋取利益,同时,为了获取更大的利益,还会将修改后的文件进行加密处理。如果用户无法解密,只能听之任之,则会造成一定的经济损失,也会纵容该行为的再次发生;如果用户不予理会,则这些被修改并加密的文件,特别是一些重要的文件,无法恢复到原始的状态或直接导致丢失,则会给用户的生活或者工作带来一定的影响和损失,降低用户体验。那么,如何达到保护文件的目的是一个急需解决的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的保护文件的方法和相应的装置、计算设备。
依据本发明的一个方面,提供了一种保护文件的方法,其中,该方法包括:
对于进行文件修改操作的进程,判断该进程是否使用指定加密算法对文件进行加密处理;
如果该进程使用指定加密算法对文件进行加密处理,则利用钩子函数导出所述指定加密算法所使用的密钥并保存;
当需要时,根据所述指定加密算法和所保存密钥对被加密处理的文件进行解密处理。
可选地,所述判断该进程是否使用指定加密算法对文件进行加密处理包括:
在该进程中注入预先指定的动态链接库DLL,由该DLL扫描并判断该进程所调用的第三方加解密库中和/或该进程本身的代码中是否包含所述指定加密算法的特征码;
如果该进程所调用的第三方加解密库中包含所述指定加密算法的特征码,或者,该进程本身的代码中包含所述指定加密算法的特征码,则确定该进程使用指定加密算法对文件进行加密处理。
可选地,如果该进程所调用的第三方加解密库中包含所述指定加密算法的特征码,则所述利用钩子函数导出所述指定加密算法所使用的密钥包括:
则利用钩子函数HOOK所述第三方加解密库的导出接口以拦截到所述指定加密算法所使用的密钥。
可选地,如果该进程本身的代码中包含所述指定加密算法的特征码,则所述用钩子函数导出所述指定加密算法所使用的密钥包括:
在所述指定加密算法的特征码所在位置处设置硬件执行断点或INT3断点,当该进程执行到所设置的断点处时触发异常,进而由处理异常的钩子函数从CPU寄存器和/或堆栈中的上下文信息中找出所述指定加密算法所使用的密钥。
可选地,所述指定加密算法为对称加密算法。
可选地,对于进行文件修改操作的进程,在判断该进程是否使用指定加密算法对文件进行加密处理之前,该方法进一步包括:
判断该进程的文件修改操作是否满足如下条件中的一种或多种:
在预定时间内修改的文件数量超过阈值;
对一个文件的内容的修改比例超过阈值;
所修改的相同类型文件的数量超过阈值;
对相同类型文件的修改数据量超过阈值;
如果判断为是,再执行所述判断该进程是否使用指定加密算法对文件进行加密处理的步骤。
可选地,对于进行文件修改操作的进程,在判断该进程是否使用指定加密算法对文件进行加密处理之前,该方法进一步包括:
判断该进程修改的文件是否包括预先被指定为需要保护的文件;
如果包括,再执行所述判断该进程是否使用指定加密算法对文件进行加密处理的步骤。
根据本发明的另一方面,提供了一种保护文件的装置,该装置包括:
加密判断单元,适于对于进行文件修改操作的进程,判断该进程是否使用指定加密算法对文件进行加密处理;
密钥获取单元,适于当加密判断单元判断出该进程使用指定加密算法对文件进行加密处理时,利用钩子函数导出所述指定加密算法所使用的密钥并保存;
文件恢复单元,适于在需要时,根据所述指定加密算法和所保存密钥对被加密处理的文件进行解密处理。
可选地,所述加密判断单元,适于在该进程中注入预先指定的动态链接库DLL,由该DLL扫描并判断该进程所调用的第三方加解密库中和/或该进程本身的代码中是否包含所述指定加密算法的特征码;如果该进程所调用的第三方加解密库中包含所述指定加密算法的特征码,或者,该进程本身的代码中包含所述指定加密算法的特征码,则确定该进程使用指定加密算法对文件进行加密处理。
可选地,所述密钥获取单元,适于当该进程所调用的第三方加解密库中包含所述指定加密算法的特征码时,利用钩子函数HOOK所述第三方加解密库的导出接口以拦截到所述指定加密算法所使用的密钥。
可选地,所述密钥获取单元,适于当该进程本身的代码中包含所述指定加密算法的特征码时,在所述指定加密算法的特征码所在位置处设置硬件执行断点或INT3断点,当该进程执行到所设置的断点处时触发异常,进而由处理异常的钩子函数从CPU寄存器和/或堆栈中的上下文信息中找出所述指定加密算法所使用的密钥。
可选地,所述指定加密算法为对称加密算法。
可选地,所述加密判断单元,适于对于进行文件修改操作的进程,在判断该进程是否使用指定加密算法对文件进行加密处理之前,进一步判断该进程的文件修改操作是否满足如下条件中的一种或多种:预定时间内修改的文件数量超过阈值、对一个文件的内容的修改比例超过阈值、所修改的相同类型文件的数量超过阈值、对相同类型文件的修改数据量超过阈值;如果判断为是,再执行所述判断该进程是否使用指定加密算法对文件进行加密处理的步骤。
可选地,所述加密判断单元,适于对于进行文件修改操作的进程,在判断该进程是否使用指定加密算法对文件进行加密处理之前,进一步判断该进程修改的文件是否包括预先被指定为需要保护的文件;如果包括,再执行所述判断该进程是否使用指定加密算法对文件进行加密处理的步骤。
依据本发明的又一个方面,提供了一种计算设备,该计算设备包括如前所述的保护文件的装置。
根据本发明的技术方案,在文件被非法修改并对文件进行加密时,导出非法加密使用的密钥;当需要解密时,利用该密钥对该文件进行解密。当一个进程对文件进行修改操作时,判断该进程是否使用了指定加密算法对文件进行加密,如果判断为是,则利用钩子函数导出该指定加密算法所使用的密钥并保存;当该进程对文件进行加密后,用户需要对文件进行解密,则可以直接利用保存的密钥解密,无需通过使用该进程的不法分子,就可以将该文件解密。可见,本发明可以实现在文件被非法加密后,利用导出的密钥将加密的文件进行解密,以恢复加密的文件,有效的保护文件,维护用户自身的利益,提高用户体验。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种保护文件的方法的流程示意图;
图2示出了根据本发明一个实施例的一种保护文件的装置的结构示意图;
图3示出了根据本发明一个实施例的一种计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种保护文件的方法的流程示意图。如图1所示,该方法包括:
步骤S110,对于进行文件修改操作的进程,判断该进程是否使用指定加密算法对文件进行加密处理。
当对终端设备中存储的文件进行非法修改的时候,通常会利用相应的可执行程序exe进行,当检测到有程序在进行文件的修改时,就判断对文件进行修改操作的进程中是否使用指定的加密算法进行加密处理。这里的指定加密算法一般是现有技术中已经存在的加密算法,可以预知,在通常情况下,为了减少时间成本,对文件进行非法加密时,通常会使用现有的加密算法。例如,DES加密算法。所以,在本实施例中,会预先配置一些指定的加密算法,在判断该进程是否使用指定加密算法对文件进行加密处理的时候,可以利用加密算法的特征码进行匹配,如果可以匹配,则说明该进程确实在使用指定加密算法对文件进行加密处理。另外,也可以判断这些程序是否调用系统DLL进行加密。
步骤S120,如果该进程使用指定加密算法对文件进行加密处理,则利用钩子函数导出指定加密算法所使用的密钥并保存。
经过判断后,如果确定该进程是在使用指定加密算法对文件进行加密处理,就通过插入钩子函数的方式,将指定加密算法当前使用的密钥导出并保存起来。另外,当判断这些程序是调用系统DLL进行加密时,也可以通过钩取(HOOK)系统DLL的导出函数来获取密钥并保存。这里密钥的存储位置可以是系统默认的,也可以是用户指定的,当存储的时候,为了便于查找和解密,可以将被加密的文件名和对应的密钥一起保存或者以被加密的文件的文件名、原始路径的组合作为密钥的索引,将该密钥的索引和加密文件对应保存到一个特定位置,以便用户可以获知哪些文件被加密,并且利用索引中的信息和密钥对加密的文件进行解密。
步骤S130,当需要时,根据指定加密算法和所保存密钥对被加密处理的文件进行解密处理。
当用户使用已经被加密的文件时,发现该文件已经被加密,那么用户就可以直接利用已经保存的密钥对加密的文件进行解密,无需通过使用该可执行程序exe的不法分子,就可以将该文件解密。
可见,本发明可以实现在文件被非法加密后,利用导出的密钥将加密的文件进行解密,以恢复加密的文件,有效的保护文件,维护用户自身的利益,提高用户体验。
如上文说明,在判断该进程是否使用指定加密算法对文件进行加密处理的时候,可以利用加密算法的特征码;而且,通常进行文件修改操作的进程使用的指定加密算法是使用第三方加解密库进行加密算法的调用,或者在该进程本身代码中包含有加密算法的执行程序。那么,在本发明的一个实施例中,步骤S110中的判断该进程是否使用指定加密算法对文件进行加密处理包括:
在该进程中注入预先指定的动态链接库DLL,由该DLL扫描并判断该进程所调用的第三方加解密库中和/或该进程本身的代码中是否包含指定加密算法的特征码。动态链接库DLL提供了一种方法,使进程可以调用不属于其可执行代码的函数。本实施例中,在该进程中注入动态链接库DLL,扫描并判断该进程所调用的第三方加解密库中和/或该进程本身的代码中是否包含指定加密算法的特征码。
如果该进程所调用的第三方加解密库中包含指定加密算法的特征码,或者,该进程本身的代码中包含指定加密算法的特征码,则确定该进程使用指定加密算法对文件进行加密处理。例如,如果调用的第三方加解密库中包含DES加密算法的特征码,和/或该exe进程本身的代码中包含DES加密算法的特征码,则确定该进程使用DES加密算法对文件进行加密处理。
针对上述的包含指定加密算法的特征码的位置的不同,导出指定加密算法所使用的密钥的方式也不同。详见下文说明:
(1)如果该进程所调用的第三方加解密库中包含指定加密算法的特征码,则利用钩子函数导出指定加密算法所使用的密钥包括:利用钩子函数HOOK第三方加解密库的导出接口以拦截到指定加密算法所使用的密钥。
钩子函数可以捕捉系统中所有进程将发生的事件消息,当一个事件发生时,如果安装了一个钩子函数,进程中的钩子函数将被调用。在本实施例中,当确定该进程使用指定加密算法对文件进行加密处理的事件发生时,就会调用预先安装的钩子函数,HOOK第三方加解密库的导出接口以拦截到指定加密算法所使用的密钥。HOOK这里可以理解为“钩住”,即利用钩子函数通过第三方加解密库的导出接口拦截指定加密算法所使用的密钥。
(2)如果该进程本身的代码中包含指定加密算法的特征码,则用钩子函数导出指定加密算法所使用的密钥包括:在指定加密算法的特征码所在位置处设置硬件执行断点或INT3断点,当该进程执行到所设置的断点处时触发异常,进而由处理异常的钩子函数从CPU寄存器和/或堆栈中的上下文信息中找出指定加密算法所使用的密钥。
当该进程本身的代码中包含指定加密算法的特征码,则确定该进程使用指定加密算法对文件进行加密处理,加密处理的密钥信息会在CPU寄存器和/或堆栈中的上下文信息中。因为在指定加密算法的特征码所在的位置处设置了硬件执行断点或INT3断点,当程序执行到指定加密算法的特征码所在的位置处时,就会触发硬件执行断点或INT3断点的指定,触发一个异常,调试器或CPU就会捕捉这个异常从而停在断点处,然后从断点处调用钩子函数,从CPU寄存器和/或堆栈中的上下文信息中找出指定加密算法所使用的密钥。
这样当通过钩子函数获取到指定加密算法所使用的密钥并保存,当需要对加密的文件进行解密时,就可以利用保存的密钥进行。
在本发明的一个实施例中,图1所示的方法中指定加密算法为对称加密算法。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。也就是说,在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密。如果进行文件修改操作的进程使用对称加密算法对文件进行加密处理,当已经利用钩子函数获取到加密算法所使用的密钥后,就可以对文件进行解密。
本发明提供的保护文件的方法的前提是非用户本人对文件进行了非法修改操作,如果只是用户本人正常的修改就不需要执行本方案。那么,为了进一步确定对文件的修改是非法修改。在本发明的一个实施例中,步骤S110中的对于进行文件修改操作的进程,在判断该进程是否使用指定加密算法对文件进行加密处理之前,该方法进一步包括:判断该进程的文件修改操作是否满足如下条件中的一种或多种:在预定时间内修改的文件数量超过阈值、对一个文件的内容的修改比例超过阈值、所修改的相同类型文件的数量超过阈值、对相同类型文件的修改数据量超过阈值。如果判断为是,再执行判断该进程是否使用指定加密算法对文件进行加密处理的步骤;如果判断为否,则不执行判断该进程是否使用指定加密算法对文件进行加密处理的步骤。
也就是说,当该进程的文件修改操作满足如下条件中的一种或多种时,再执行判断该进程是否使用指定加密算法对文件进行加密处理的步骤:
(1)当该进程所修改的文件数量超过第一预设值,且修改数据量与文件总数据量的比值达到第二预设值时,再执行判断该进程是否使用指定加密算法对文件进行加密处理的步骤。只有上述两个条件均满足的情况下,才确定对需要保护的文件进行的修改是非法修改。例如,第一预设值为50%,第二预设值为80%,在一个较短的时间内,对本机中的文本文档的个数已经超过了本机存储的总文本文档个数的50%,并且对每一个文本文档进行的修改的字数已经超过该文本文档总字数的80%,那么就确定该程序的修改为非法修改,需要执行判断该进程是否使用指定加密算法对文件进行加密处理的步骤,以便可以采取相应的措施,保护本机的文件。如果,对本机中的文本文档的个数只是本机存储的总文本文档个数的10%,并且对每一个文本文档进行的修改的字数只占该文本文档总字数的20%,那么就确定该程序的修改不是非法修改。
(2)在预定时间内修改的文件数量超过阈值。例如,预设阈值为50%,在1h的时间内,对本机中的文本文档的数量已经超过了本机存储的总文本文档数量的50%。该预设时间可自定义,在这里不做限制。
(3)对一个文件的内容的修改比例超过阈值。这里可以通过字数进行判断,例如,预设阈值为80%,对每一个文本文档进行的修改的字数已经超过该文本文档总字数的80%。
(4)所修改的相同类型文件的数量超过阈值。例如,对相同类型文件的修改的数量超过该相同文件类型的总数量的50%,就进行报警提示。
(5)对相同类型文件的修改数据量超过阈值。例如,对相同类型文件的修改的数据量(例如字数)超过该相同文件类型的总数据量(例如同种类型所有文件的总字数)的50%。
需要说明的是,判断该进程的文件修改操作是否满足条件时,可以使用上述的任意一个条件,也可以使用上述条件的任意组合。在另一实施例中,也可以通过以下方式判断对需要保护的文件进行的修改是非法修改:当需要保护的文件被修改时,判断是否以系统默认工具修改该需要保护的文件,若否,则可以判断所述修改是非法修改。
本发明案可以只针对一些特定的文件,对于用户来讲,终端设备中存储的文件并非都是重要的,有一些文件可能都已经是无用的文件,为了避免在执行本方案时系统资源的非必要消耗,可是预先指定一些需要保护的默认文件,或者用户自定义一些需要保护的文件,只有这些需要保护的文件被进行加密处理时,才执行本方案。所以,在本发明的一个实施例中,步骤S110中的对于进行文件修改操作的进程,在判断该进程是否使用指定加密算法对文件进行加密处理之前,该方法进一步包括:判断该进程修改的文件是否包括预先被指定为需要保护的文件。如果包括,再执行判断该进程是否使用指定加密算法对文件进行加密处理的步骤;如果不包括,则不执行判断该进程是否使用指定加密算法对文件进行加密处理的步骤。
具体地,这里需要保护的文件包括如下的一种或多种:
(1)将指定的一个或多个类型的文件作为默认需要保护文件。例如,指定图片文件、文本文件作为需要保护的文件,将终端设备中的这些文件设定为默认需要保护的文件。
(2)接收的用户的指令,根据用户的指令确定需要保护的文件。例如可以提供用户自定义接口,通过该用户自定义接口接收的用户的指令,根据用户的指令确定需要保护的文件。除了在(1)中的默认文件,用户还可以自定义需要保护的文件,以根据用户的自定义确定需要保护的文件,例如,视频、音频等。此外用户还可以指定一个或多个文件夹,该一个或多个文件夹中的文件是需要保护的文件,不管文件类型为何种。
(3)扫描本机上存储的文件,将本机上存储的各类文件的类型信息展示给用户供其进行选择,将用户选择的类型对应的文件确定为需要保护的文件。为了方便用户选择,预先扫描本机上已经存储的文件的类型,并展示给用户,用户在了解了本机上的文件的类型后,根据自身需求进行选择需要保护的文件类型,提高用户体验。在另一实施例中,也可以列出本机上存储的所有文件,以供用户选择特定文件进行保护。
(4)将易受攻击的各类文件的类型信息展示给用户供其进行选择,将用户选择的类型对应的文件确定为需要保护的文件。为了进一步的方便用户选择,还可以只给用户展示比较容易受攻击的文件的类型,以便用户选择。例如将文档类的文件比较容易受到篡改攻击,因此将此类文件的类型信息(如word、PDF等)展示给用户供用户进行勾选。
图2示出了根据本发明一个实施例的一种保护文件的装置的结构示意图。如图2所示,该保护文件的装置200包括:
加密判断单元210,适于对于进行文件修改操作的进程,判断该进程是否使用指定加密算法对文件进行加密处理。
当对终端设备中存储的文件进行非法修改的时候,通常会利用相应的可执行程序exe进行,当检测到有程序在进行文件的修改时,就判断对文件进行修改操作的进程中是否使用指定的加密算法进行加密处理。这里的指定加密算法一般是现有技术中已经存在的加密算法,可以预知,在通常情况下,为了减少时间成本,对文件进行非法加密时,通常会使用现有的加密算法。例如,DES加密算法。所以,在本实施例中,会预先配置一些指定的加密算法,在判断该进程是否使用指定加密算法对文件进行加密处理的时候,可以利用加密算法的特征码进行匹配,如果可以匹配,则说明该进程确实在使用指定加密算法对文件进行加密处理。另外,也可以判断这些程序是否调用系统DLL进行加密。
密钥获取单元220,适于当加密判断单元判断出该进程使用指定加密算法对文件进行加密处理时,利用钩子函数导出指定加密算法所使用的密钥并保存。
经过判断后,如果确定该进程是在使用指定加密算法对文件进行加密处理,就通过插入钩子函数的方式,将指定加密算法当前使用的密钥导出并保存起来。另外,当判断这些程序是调用系统DLL进行加密时,也可以通过钩取(HOOK)系统DLL的导出函数来获取密钥并保存。这里密钥的存储位置可以系统默认的,也可以是用户指定的,当存储的时候,为了便于查找和解密,可以将被加密的文件名和对应的密钥一起保存或者以被加密的文件的文件名、原始路径的组合作为密钥的索引,将该密钥的索引和加密文件对应保存到一个特定位置,以便用户可以获知哪些文件被加密,并且利用索引中的信息和密钥对加密的文件进行解密。
文件恢复单元230,适于在需要时,根据指定加密算法和所保存密钥对被加密处理的文件进行解密处理。
当用户使用已经被加密的文件时,发现该文件已经被加密,那么用户就可以直接利用已经保存的密钥对加密的文件进行解密,无需通过使用该可执行程序exe的不法分子,就可以将该文件解密。
可见,本发明可以实现在文件被非法加密后,利用导出的密钥将加密的文件进行解密,以恢复加密的文件,有效的保护文件,维护用户自身的利益,提高用户体验。
如上文说明,在判断该进程是否使用指定加密算法对文件进行加密处理的时候,可以利用加密算法的特征码;而且,通常进行文件修改操作的进程使用的指定加密算法是使用第三方加解密库进行加密算法的调用,或者在该进程本身代码中包含有加密算法的执行程序。那么,在本发明的一个实施例中,加密判断单元210,适于在该进程中注入预先指定的动态链接库DLL,由该DLL扫描并判断该进程所调用的第三方加解密库中和/或该进程本身的代码中是否包含指定加密算法的特征码。动态链接库DLL提供了一种方法,使进程可以调用不属于其可执行代码的函数。本实施例中,在该进程中注入动态链接库DLL,扫描并判断该进程所调用的第三方加解密库中和/或该进程本身的代码中是否包含指定加密算法的特征码。
如果该进程所调用的第三方加解密库中包含指定加密算法的特征码,和/或,该进程本身的代码中包含指定加密算法的特征码,则确定该进程使用指定加密算法对文件进行加密处理。例如,如果调用的第三方加解密库中包含DES加密算法的特征码,和/或该exe进程本身的代码中包含DES加密算法的特征码,则确定该进程使用DES加密算法对文件进行加密处理。
动态链接库DLL提供了一种方法,使进程可以调用不属于其可执行代码的函数。本实施例中,在该进程中注入动态链接库DLL,判断该进程所调用的第三方加解密库中和/或该进程本身的代码中是否包含指定加密算法的特征码。
针对上述的包含指定加密算法的特征码的位置的不同,导出指定加密算法所使用的密钥的方式也不同。详见下文说明:
(1)密钥获取单元220,适于当该进程所调用的第三方加解密库中包含指定加密算法的特征码时,利用钩子函数HOOK第三方加解密库的导出接口以拦截到指定加密算法所使用的密钥。
钩子函数可以捕捉系统中所有进程将发生的事件消息,当一个事件发生时,如果安装了一个钩子函数,进程中的钩子函数将被调用。在本实施例中,当确定该进程使用指定加密算法对文件进行加密处理的事件发生时,就会调用预先安装的钩子函数,HOOK第三方加解密库的导出接口以拦截到指定加密算法所使用的密钥。HOOK这里可以理解为“钩住”,即利用钩子函数通过第三方加解密库的导出接口拦截指定加密算法所使用的密钥。
(2)密钥获取单元220,适于当该进程本身的代码中包含指定加密算法的特征码时,在指定加密算法的特征码所在位置处设置硬件执行断点或INT3断点,当该进程执行到所设置的断点处时触发异常,进而由处理异常的钩子函数从CPU寄存器和/或堆栈中的上下文信息中找出指定加密算法所使用的密钥。
当该进程本身的代码中包含指定加密算法的特征码,则确定该进程使用指定加密算法对文件进行加密处理,加密处理的密钥信息会在CPU寄存器和/或堆栈中的上下文信息中。因为在指定加密算法的特征码所在的位置处设置了硬件执行断点或INT3断点,当程序执行到指定加密算法的特征码所在的位置处时,就会触发硬件执行断点或INT3断点的指定,触发一个异常,调试器或CPU就会捕捉这个异常从而停在断点处,然后从断点处调用钩子函数,从CPU寄存器和/或堆栈中的上下文信息中找出指定加密算法所使用的密钥。
这样当通过钩子函数获取到指定加密算法所使用的密钥并保存,当需要对加密的文件进行解密时,就可以利用保存的密钥进行。
在本发明的一个实施例中,指定加密算法为对称加密算法。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。也就是说,在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密。如果进行文件修改操作的进程使用对称加密算法对文件进行加密处理,当已经利用钩子函数获取到加密算法所使用的密钥后,就可以对文件进行解密。
本发明提供的保护文件的方案的前提是非用户本人对文件进行了非法修改操作,如果只是用户本人正常的修改就不需要执行本方案。那么,为了进一步确定对文件的修改是非法修改。在本发明的一个实施例中,加密判断单元210,适于对于进行文件修改操作的进程,在判断该进程是否使用指定加密算法对文件进行加密处理之前,进一步判断该进程的文件修改操作是否满足如下条件中的一种或多种:在预定时间内修改的文件数量超过阈值、对一个文件的内容的修改比例超过阈值、所修改的相同类型文件的数量超过阈值、对相同类型文件的修改数据量超过阈值。如果判断为是,再执行判断该进程是否使用指定加密算法对文件进行加密处理的步骤;如果判断为否,则不执行判断该进程是否使用指定加密算法对文件进行加密处理的步骤。
也就是说,当该进程的文件修改操作满足如下条件中的一种或多种时,再执行判断该进程是否使用指定加密算法对文件进行加密处理的步骤:
(1)当该进程所修改的文件数量超过第一预设值,且修改数据量与文件总数据量的比值达到第二预设值时,再执行判断该进程是否使用指定加密算法对文件进行加密处理的步骤。只有上述两个条件均满足的情况下,才确定对需要保护的文件进行的修改是非法修改。例如,第一预设值为50%,第二预设值为80%,在一个较短的时间内,对本机中的文本文档的个数已经超过了本机存储的总文本文档个数的50%,并且对每一个文本文档进行的修改的字数已经超过该文本文档总字数的80%,那么就确定该程序的修改为非法修改,需要执行判断该进程是否使用指定加密算法对文件进行加密处理的步骤,以便可以采取相应的措施,保护本机的文件。如果,对本机中的文本文档的个数只是本机存储的总文本文档个数的10%,并且对每一个文本文档进行的修改的字数只占该文本文档总字数的20%,那么就确定该程序的修改不是非法修改。
(2)在预定时间内修改的文件数量超过阈值。例如,预设阈值为50%,在1h的时间内,对本机中的文本文档的数量已经超过了本机存储的总文本文档数量的50%。该预设时间可自定义,在这里不做限制。
(3)对一个文件的内容的修改比例超过阈值。这里可以通过字数进行判断,例如,预设阈值为80%,对每一个文本文档进行的修改的字数已经超过该文本文档总字数的80%。
(4)所修改的相同类型文件的数量超过阈值。例如,对相同类型文件的修改的数量超过该相同文件类型的总数量的50%,就进行报警提示。
(5)对相同类型文件的修改数据量超过阈值。例如,对相同类型文件的修改的数据量(例如字数)超过该相同文件类型的总数据量(例如同种类型所有文件的总字数)的50%。
需要说明的是,判断该进程的文件修改操作是否满足条件时,可以使用上述的任意一个条件,也可以使用上述条件的任意组合。在另一实施例中,也可以通过以下方式判断对需要保护的文件进行的修改是非法修改:当需要保护的文件被修改时,判断是否以系统默认工具修改该需要保护的文件,若否,则可以判断所述修改是非法修改。
本发明案可以只针对一些特定的文件,对于用户来讲,终端设备中存储的文件并非都是重要的,有一些文件可能都已经是无用的文件,为了避免在执行本方案时系统资源的非必要消耗,可是预先指定一些需要保护的默认文件,或者用户自定义一些需要保护的文件,只有这些需要保护的文件被进行加密处理时,才执行本方案。所以,在本发明的一个实施例中,加密判断单元210,适于对于进行文件修改操作的进程,在判断该进程是否使用指定加密算法对文件进行加密处理之前,进一步判断该进程修改的文件是否包括预先被指定为需要保护的文件;如果包括,再执行判断该进程是否使用指定加密算法对文件进行加密处理的步骤;如果不包括,则不执行判断该进程是否使用指定加密算法对文件进行加密处理的步骤。
具体地,这里需要保护的文件包括如下的一种或多种:
(1)将指定的一个或多个类型的文件作为默认需要保护文件。例如,指定图片文件、文本文件作为需要保护的文件,将终端设备中的这些文件设定为默认需要保护的文件。
(2)接收的用户的指令,根据用户的指令确定需要保护的文件。例如可以提供用户自定义接口,通过该用户自定义接口接收的用户的指令,根据用户的指令确定需要保护的文件。除了在(1)中的默认文件,用户还可以自定义需要保护的文件,以根据用户的自定义确定需要保护的文件,例如,视频、音频等。此外用户还可以指定一个或多个文件夹,该一个或多个文件夹中的文件是需要保护的文件,不管文件类型为何种。
(3)扫描本机上存储的文件,将本机上存储的各类文件的类型信息展示给用户供其进行选择,将用户选择的类型对应的文件确定为需要保护的文件。为了方便用户选择,预先扫描本机上已经存储的文件的类型,并展示给用户,用户在了解了本机上的文件的类型后,根据自身需求进行选择需要保护的文件类型,提高用户体验。在另一实施例中,也可以列出本机上存储的所有文件,以供用户选择特定文件进行保护。
(4)将易受攻击的各类文件的类型信息展示给用户供其进行选择,将用户选择的类型对应的文件确定为需要保护的文件。为了进一步的方便用户选择,还可以只给用户展示比较容易受攻击的文件的类型,以便用户选择。例如将文档类的文件比较容易受到篡改攻击,因此将此类文件的类型信息(如word、PDF等)展示给用户供用户进行勾选。
图3示出了根据本发明一个实施例的一种计算设备的结构示意图。如图3所示,该计算设备300包括如图2所示的保护文件的装置310。
需要说明的是,图2所示的装置、图3所示的计算设备的各实施例与图1所示方法的各实施例对应相同,上文已有详细说明,在此不再赘述。
综上所述,根据本发明的技术方案,在文件被非法修改并对文件进行加密时,导出非法加密使用的密钥;当需要解密时,利用该密钥对该文件进行解密。当一个进程对文件进行修改操作时,判断该进程是否使用了指定加密算法对文件进行加密,如果判断为是,则利用钩子函数导出该指定加密算法所使用的密钥并保存;当该进程对文件进行加密后,用户需要对文件进行解密,则可以直接利用保存的密钥解密,无需通过使用该进程的不法分子,就可以将该文件解密。可见,本发明可以实现在文件被非法加密后,利用导出的密钥将加密的文件进行解密,以恢复加密的文件,有效的保护文件,维护用户自身的利益,提高用户体验。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的保护文件的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种保护文件的方法,包括:
对于进行文件修改操作的进程,判断该进程是否使用指定加密算法对文件进行加密处理;
如果该进程使用指定加密算法对文件进行加密处理,则利用钩子函数导出所述指定加密算法所使用的密钥并保存;
当需要时,根据所述指定加密算法和所保存密钥对被加密处理的文件进行解密处理。
A2、如A1所述的方法,其中,所述判断该进程是否使用指定加密算法对文件进行加密处理包括:
在该进程中注入预先指定的动态链接库DLL,由该DLL扫描并判断该进程所调用的第三方加解密库中和/或该进程本身的代码中是否包含所述指定加密算法的特征码;
如果该进程所调用的第三方加解密库中包含所述指定加密算法的特征码,或者,该进程本身的代码中包含所述指定加密算法的特征码,则确定该进程使用指定加密算法对文件进行加密处理。
A3、如A2所述的方法,其中,
如果该进程所调用的第三方加解密库中包含所述指定加密算法的特征码,则所述利用钩子函数导出所述指定加密算法所使用的密钥包括:
则利用钩子函数HOOK所述第三方加解密库的导出接口以拦截到所述指定加密算法所使用的密钥。
A4、如A2所述的方法,其中,
如果该进程本身的代码中包含所述指定加密算法的特征码,则所述用钩子函数导出所述指定加密算法所使用的密钥包括:
在所述指定加密算法的特征码所在位置处设置硬件执行断点或INT3断点,当该进程执行到所设置的断点处时触发异常,进而由处理异常的钩子函数从CPU寄存器和/或堆栈中的上下文信息中找出所述指定加密算法所使用的密钥。
A5、如A1所述的方法,其中,所述指定加密算法为对称加密算法。
A6、如A1-A5中任一项所述的方法,其中,对于进行文件修改操作的进程,在判断该进程是否使用指定加密算法对文件进行加密处理之前,该方法进一步包括:
判断该进程的文件修改操作是否满足如下条件中的一种或多种:
在预定时间内修改的文件数量超过阈值;
对一个文件的内容的修改比例超过阈值;
所修改的相同类型文件的数量超过阈值;
对相同类型文件的修改数据量超过阈值;
如果判断为是,再执行所述判断该进程是否使用指定加密算法对文件进行加密处理的步骤。
A7、如A1-A5中任一项所述的方法,其中,对于进行文件修改操作的进程,在判断该进程是否使用指定加密算法对文件进行加密处理之前,该方法进一步包括:
判断该进程修改的文件是否包括预先被指定为需要保护的文件;
如果包括,再执行所述判断该进程是否使用指定加密算法对文件进行加密处理的步骤。
本发明还公开了B8、一种保护文件的装置,包括:
加密判断单元,适于对于进行文件修改操作的进程,判断该进程是否使用指定加密算法对文件进行加密处理;
密钥获取单元,适于当加密判断单元判断出该进程使用指定加密算法对文件进行加密处理时,利用钩子函数导出所述指定加密算法所使用的密钥并保存;
文件恢复单元,适于在需要时,根据所述指定加密算法和所保存密钥对被加密处理的文件进行解密处理。
B9、如B8所述的装置,其中,
所述加密判断单元,适于在该进程中注入预先指定的动态链接库DLL,由该DLL扫描并判断该进程所调用的第三方加解密库中和/或该进程本身的代码中是否包含所述指定加密算法的特征码;如果该进程所调用的第三方加解密库中包含所述指定加密算法的特征码,或者,该进程本身的代码中包含所述指定加密算法的特征码,则确定该进程使用指定加密算法对文件进行加密处理。
B10、如B9所述的装置,其中,
所述密钥获取单元,适于当该进程所调用的第三方加解密库中包含所述指定加密算法的特征码时,利用钩子函数HOOK所述第三方加解密库的导出接口以拦截到所述指定加密算法所使用的密钥。
B11、如B9所述的装置,其中,
所述密钥获取单元,适于当该进程本身的代码中包含所述指定加密算法的特征码时,在所述指定加密算法的特征码所在位置处设置硬件执行断点或INT3断点,当该进程执行到所设置的断点处时触发异常,进而由处理异常的钩子函数从CPU寄存器和/或堆栈中的上下文信息中找出所述指定加密算法所使用的密钥。
B12、如B8所述的装置,其中,所述指定加密算法为对称加密算法。
B13、如B8-B12中任一项所述的装置,其中,
所述加密判断单元,适于对于进行文件修改操作的进程,在判断该进程是否使用指定加密算法对文件进行加密处理之前,进一步判断该进程的文件修改操作是否满足如下条件中的一种或多种:预定时间内修改的文件数量超过阈值、对一个文件的内容的修改比例超过阈值、所修改的相同类型文件的数量超过阈值、对相同类型文件的修改数据量超过阈值;如果判断为是,再执行所述判断该进程是否使用指定加密算法对文件进行加密处理的步骤。
B14、如B8-B12中任一项所述的装置,其中,
所述加密判断单元,适于对于进行文件修改操作的进程,在判断该进程是否使用指定加密算法对文件进行加密处理之前,进一步判断该进程修改的文件是否包括预先被指定为需要保护的文件;如果包括,再执行所述判断该进程是否使用指定加密算法对文件进行加密处理的步骤。
本发明还公开了C15、一种计算设备,其中,该计算设备包括如B8-B14中任一项所述的保护文件的装置。

Claims (10)

1.一种保护文件的方法,包括:
对于进行文件修改操作的进程,判断该进程是否使用指定加密算法对文件进行加密处理;
如果该进程使用指定加密算法对文件进行加密处理,则利用钩子函数导出所述指定加密算法所使用的密钥并保存;
当需要时,根据所述指定加密算法和所保存密钥对被加密处理的文件进行解密处理。
2.如权利要求1所述的方法,其中,所述判断该进程是否使用指定加密算法对文件进行加密处理包括:
在该进程中注入预先指定的动态链接库DLL,由该DLL扫描并判断该进程所调用的第三方加解密库中和/或该进程本身的代码中是否包含所述指定加密算法的特征码;
如果该进程所调用的第三方加解密库中包含所述指定加密算法的特征码,或者,该进程本身的代码中包含所述指定加密算法的特征码,则确定该进程使用指定加密算法对文件进行加密处理。
3.如权利要求2所述的方法,其中,
如果该进程所调用的第三方加解密库中包含所述指定加密算法的特征码,则所述利用钩子函数导出所述指定加密算法所使用的密钥包括:
则利用钩子函数HOOK所述第三方加解密库的导出接口以拦截到所述指定加密算法所使用的密钥。
4.如权利要求2所述的方法,其中,
如果该进程本身的代码中包含所述指定加密算法的特征码,则所述用钩子函数导出所述指定加密算法所使用的密钥包括:
在所述指定加密算法的特征码所在位置处设置硬件执行断点或INT3断点,当该进程执行到所设置的断点处时触发异常,进而由处理异常的钩子函数从CPU寄存器和/或堆栈中的上下文信息中找出所述指定加密算法所使用的密钥。
5.如权利要求1所述的方法,其中,所述指定加密算法为对称加密算法。
6.一种保护文件的装置,包括:
加密判断单元,适于对于进行文件修改操作的进程,判断该进程是否使用指定加密算法对文件进行加密处理;
密钥获取单元,适于当加密判断单元判断出该进程使用指定加密算法对文件进行加密处理时,利用钩子函数导出所述指定加密算法所使用的密钥并保存;
文件恢复单元,适于在需要时,根据所述指定加密算法和所保存密钥对被加密处理的文件进行解密处理。
7.如权利要求6所述的装置,其中,
所述加密判断单元,适于在该进程中注入预先指定的动态链接库DLL,由该DLL扫描并判断该进程所调用的第三方加解密库中和/或该进程本身的代码中是否包含所述指定加密算法的特征码;如果该进程所调用的第三方加解密库中包含所述指定加密算法的特征码,或者,该进程本身的代码中包含所述指定加密算法的特征码,则确定该进程使用指定加密算法对文件进行加密处理。
8.如权利要求7所述的装置,其中,
所述密钥获取单元,适于当该进程所调用的第三方加解密库中包含所述指定加密算法的特征码时,利用钩子函数HOOK所述第三方加解密库的导出接口以拦截到所述指定加密算法所使用的密钥。
9.如权利要求7所述的装置,其中,
所述密钥获取单元,适于当该进程本身的代码中包含所述指定加密算法的特征码时,在所述指定加密算法的特征码所在位置处设置硬件执行断点或INT3断点,当该进程执行到所设置的断点处时触发异常,进而由处理异常的钩子函数从CPU寄存器和/或堆栈中的上下文信息中找出所述指定加密算法所使用的密钥。
10.一种计算设备,其中,该计算设备包括如权利要求6-9中任一项所述的保护文件的装置。
CN201710184528.2A 2017-03-24 2017-03-24 一种保护文件的方法、装置和计算设备 Active CN106789051B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710184528.2A CN106789051B (zh) 2017-03-24 2017-03-24 一种保护文件的方法、装置和计算设备
PCT/CN2017/119503 WO2018171283A1 (zh) 2017-03-24 2017-12-28 实现文件保护的方法、装置和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710184528.2A CN106789051B (zh) 2017-03-24 2017-03-24 一种保护文件的方法、装置和计算设备

Publications (2)

Publication Number Publication Date
CN106789051A true CN106789051A (zh) 2017-05-31
CN106789051B CN106789051B (zh) 2020-01-31

Family

ID=58966596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710184528.2A Active CN106789051B (zh) 2017-03-24 2017-03-24 一种保护文件的方法、装置和计算设备

Country Status (1)

Country Link
CN (1) CN106789051B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108573022A (zh) * 2018-02-28 2018-09-25 山峰 基于图像处理的计算机日志记录系统及方法
WO2018171283A1 (zh) * 2017-03-24 2018-09-27 北京奇虎科技有限公司 实现文件保护的方法、装置和计算设备
CN108805817A (zh) * 2018-02-28 2018-11-13 山峰 基于图像处理的计算机日志记录系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797266A (zh) * 2004-12-21 2006-07-05 赛孚耐(北京)信息技术有限公司 软硬件之间的安全通讯方法及装置
CN101471770A (zh) * 2007-12-24 2009-07-01 毛华 问答式双向身份、交易确认方法和采用该方法的加密装置
CN103077332A (zh) * 2012-12-28 2013-05-01 飞天诚信科技股份有限公司 一种运行含有自校验的加壳程序的方法和装置
US20170034189A1 (en) * 2015-07-31 2017-02-02 Trend Micro Incorporated Remediating ransomware

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797266A (zh) * 2004-12-21 2006-07-05 赛孚耐(北京)信息技术有限公司 软硬件之间的安全通讯方法及装置
CN101471770A (zh) * 2007-12-24 2009-07-01 毛华 问答式双向身份、交易确认方法和采用该方法的加密装置
CN103077332A (zh) * 2012-12-28 2013-05-01 飞天诚信科技股份有限公司 一种运行含有自校验的加壳程序的方法和装置
US20170034189A1 (en) * 2015-07-31 2017-02-02 Trend Micro Incorporated Remediating ransomware

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018171283A1 (zh) * 2017-03-24 2018-09-27 北京奇虎科技有限公司 实现文件保护的方法、装置和计算设备
CN108573022A (zh) * 2018-02-28 2018-09-25 山峰 基于图像处理的计算机日志记录系统及方法
CN108805817A (zh) * 2018-02-28 2018-11-13 山峰 基于图像处理的计算机日志记录系统
CN108573022B (zh) * 2018-02-28 2019-03-26 广东聚联电子商务股份有限公司 基于图像处理的计算机日志记录系统及方法

Also Published As

Publication number Publication date
CN106789051B (zh) 2020-01-31

Similar Documents

Publication Publication Date Title
CN108595989B (zh) 一种iOS下移动APP安全防护系统及方法
EP2795829B1 (en) Cryptographic system and methodology for securing software cryptography
US7975308B1 (en) Method and apparatus to secure user confidential data from untrusted browser extensions
TWI471754B (zh) 用於電腦系統中安全物件之支援
CN103617382A (zh) 隐私保护方法及其装置
CN106228076B (zh) 一种基于sgx的图片验证码保护方法及系统
CN104268444A (zh) 一种云OS Java源代码保护方法
CN107784207B (zh) 金融app界面的显示方法、装置、设备及存储介质
CN104463013A (zh) 移动终端及其数据加密方法
Kotov et al. Understanding crypto-ransomware
CN106980797A (zh) 一种实现文件保护的方法、装置和计算设备
CN106789051A (zh) 一种保护文件的方法、装置和计算设备
CN110765470A (zh) 安全键盘实现方法、装置、计算机设备及存储介质
CN109325322B (zh) 用于嵌入式平台的软件知识产权保护系统和方法
US9251356B2 (en) Module encryption/decryption program
CN107967430B (zh) 一种文档保护方法、设备以及系统
CN104392153B (zh) 一种软件保护方法及系统
CN102708069A (zh) 安卓系统中内存数据的保护方法
CN102930222B (zh) 反键盘记录方法及系统
CN106161000A (zh) 对数据文件进行加密和解密的方法和系统
CN111209544B (zh) Web应用安全保护方法、装置、电子设备及存储介质
CN114444028A (zh) 提升代码安全性的方法、装置、计算机设备和存储介质
CN107205001A (zh) python脚本的更新方法及装置、客户端、服务器
CN104484611A (zh) 一种Android系统的分区挂载管控方法及装置
EP3439225A1 (en) Method to secure a software code performing accesses to look-up tables

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211210

Address after: 300450 No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science Park, high tech Zone, Binhai New Area, Tianjin

Patentee after: 3600 Technology Group Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230717

Address after: 1765, floor 17, floor 15, building 3, No. 10 Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: Beijing Hongxiang Technical Service Co.,Ltd.

Address before: 300450 No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science Park, high tech Zone, Binhai New Area, Tianjin

Patentee before: 3600 Technology Group Co.,Ltd.