CN108133149B - 一种数据保护方法、装置及电子设备 - Google Patents
一种数据保护方法、装置及电子设备 Download PDFInfo
- Publication number
- CN108133149B CN108133149B CN201810028026.5A CN201810028026A CN108133149B CN 108133149 B CN108133149 B CN 108133149B CN 201810028026 A CN201810028026 A CN 201810028026A CN 108133149 B CN108133149 B CN 108133149B
- Authority
- CN
- China
- Prior art keywords
- exception
- application program
- variable
- dll file
- file
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000006870 function Effects 0.000 claims description 99
- 238000004590 computer program Methods 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 abstract description 8
- 230000005856 abnormality Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 7
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/565—Static detection by checking file integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- Bioethics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种数据保护方法、装置及电子设备。本发明实施例方法包括:在目标应用程序的至少一个DLL文件中编写产生异常的代码模块;在EXE文件中编写捕获异常的异常处理函数;在EXE文件中注册异常处理函数;在至少一个DLL文件被调用时,利用该产生异常的代码模块产生异常,若DLL文件为目标应用程序调用,利用异常处理函数捕获异常,对异常进行修正,若DLL文件非目标应用程序调用,不对异常进行调整修正。本发明实施例中通过在应用程序的DLL文件中故意编码产生错误异常,而在EXE文件中则会捕获异常,对异常进行修正,使得应用程序仍可以正常运行,避免了第三方对应用程序的盗用,提升了应用程序的安全性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种数据保护方法、装置及电子设备。
背景技术
目前,对于Windows软件开发,会拆分成多个模块来完成,一个模块则是一个动态链接库文件((Dynamic Link Library,DLL)文件,这样既有利于代码共享和分工,又可以将功能尽可能的拆分,减少代码耦合度。因此一个软件的组成则由一个可执行程序(executable program,EXE)文件和多个DLL文件组成。例如将软件中使用的所有的加密解密算法功能封装到一个独立的DLL文件中,例如将所有网络相关的功能封装到一个独立的DLL文件中,例如将日志功能封装到一个独立的DLL文件中。
上述软件开发方式虽然有利于代码共享和分工,减少代码耦合度,但同时也会带来一个问题,具体则是在软件发布时,这些DLL文件会随软件一起发布,第三方则可以很容易的从软件的安装目录获取到这些DLL文件,从而也可以调用这些DLL文件的提供的方法,这样软件容易被黑客所破解,从而可能对软件开发商和用户造成难以估量的损失。
发明内容
本发明实施例提供了一种数据保护方法、装置及电子设备,以解决目前应用程序的DLL文件容易被黑客获取破解,可能对软件开发商和用户造成难以估量的损失的问题。
第一方面,本申请提供了一种数据保护方法,该方法包括:
在目标应用程序的至少一个DLL文件中编写产生异常的代码模块;
在所述目标应用程序的EXE文件中编写捕获异常的异常处理函数;
在所述目标应用程序的EXE文件中注册异常处理函数;
在所述至少一个DLL文件被调用时,利用所述代码模块产生异常,若为所述目标应用程序调用,则利用所述异常处理函数捕获所述异常,并对所述异常进行调整修正,若非所述所述目标应用程序调用,则不对所述异常进行调整修正。
进一步的,所述在目标应用程序的至少一个DLL文件中编写产生异常的代码模块,包括:
在所述至少一个DLL文件的核心功能函数中,添加一个标记变量和一个异常除0的变量,所述标记变量用来标记当前DLL文件是否产生了异常,所述异常除0的变量用于产生一个除0的异常。
进一步的,所述标记变量在当前DLL文件编写产生异常的代码模块之前置位为1,在当前DLL文件的核心功能函数执行完成时置位为0。
进一步的,所述异常除0变量初始值设置为0;所述利用所述异常处理函数捕获所述异常,并对所述异常进行调整修正,包括:
当利用所述异常处理函数捕获函数捕获到所述异常时,则将所述异常除0变量置位为1。
进一步的,所述在所述目标应用程序的EXE文件中编写捕获异常的异常处理函数,包括:
在所述EXE文件中定义所述异常处理函数,所述异常处理函数中定义了处理的异常类型信息,所述异常类型信息为除0异常。
第二方面,本申请提供一种数据保护装置,该装置包括:
第一编写模块,用于在目标应用程序的至少一个DLL文件中编写产生异常的代码模块;
第二编写模块,用于在所述目标应用程序的EXE文件中编写捕获异常的异常处理函数;
注册模块,用于在所述目标应用程序的EXE文件中注册异常处理函数;
调整模块,用于在所述至少一个DLL文件被调用时,利用所述代码模块产生异常,若为所述目标应用程序调用,则利用所述异常处理函数捕获所述异常,并对所述异常进行调整修正,若非所述所述目标应用程序调用,则不对所述异常进行调整修正。
进一步的,所述第一编写模块具体用于:
在所述至少一个DLL文件的核心功能函数中,添加一个标记变量和一个异常除0的变量,所述标记变量用来标记当前DLL文件是否产生了异常,所述异常除0的变量用于产生一个除0的异常。
进一步的,所述标记变量在当前DLL文件编写产生异常的代码模块之前置位为1,在当前DLL文件的核心功能函数执行完成时置位为0。
进一步的,所述异常除0变量初始值设置为0;所述调整模块具体用于:
当利用所述异常处理函数捕获函数捕获到所述异常时,则将所述异常除0变量置位为1。
进一步的,所述第二编写模块具体用于:
在所述EXE文件中定义所述异常处理函数,所述异常处理函数中定义了处理的异常类型信息,以及在捕获异常时调用所述生成dump文件的功能函数,所述异常类型信息为除0异常。
第三方面,本发明还提供一种电子设备,包括:存储器,处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时可以实现第一方面中任一所述的方法。
第四方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一所述的方法。
本发明实施例通过在目标应用程序的至少一个DLL文件中编写产生异常的代码模块;在目标应用程序的EXE文件中编写捕获异常的异常处理函数;在目标应用程序的EXE文件中注册异常处理函数;在至少一个DLL文件被调用时,利用该产生异常的代码模块产生异常,若DLL文件为目标应用程序调用,则利用异常处理函数捕获异常,并对异常进行调整修正,若DLL文件非目标应用程序调用,则不对异常进行调整修正。本发明实施例中通过在应用程序的DLL文件中故意编码产生错误异常,而在应用程序的主程序EXE文件中则会捕获异常,并对异常进行修正,使得应用程序仍可以正常的运行。而对于将DLL文件拿走直接使用的第三方,并没有主程序EXE的功能,那么在使用时会产生异常,导致程序崩溃,从而无法使用该DLL文件的功能,从而达到了对DLL文件进行保护的效果,同时由于捕获处理异常是在EXE文件中,从而使得其更为隐蔽,难以被黑客所破解,进一步提升了应用程序的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中数据保护方法的一个实施例示意图;
图2是本发明实施例数据保护方法的另一个实施例示意图;
图3是本发明实施例数据保护装置的一个实施例示意图;
图4是本发明实施例中电子设备的一个实施例示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例中数据保护方法应用于数据保护装置,该装置位于电子设备中,本实施例中该电子设备***为Windows***,该电子设备可以是手机、平板电脑或者个人电脑等Windows***电子设备,也可以是未来新出现的Windows***的电子设备等。
异常(Exception)是应用程序在运行时可能出现的会导致程序运行终止的错误。由于程序设计的要求之一就是程序的健壮性,希望程序在运行时能够不出或者少出问题。但是,在程序的实际运行时,总会有一些因素导致程序不能正常运行。在设计算法时,往往对算法的正常逻辑处理流程设计得比较准确,对异常情况的处理反而不容易设计全面,导致程序在出现异常情况时崩溃,如果软件出现这种情况会给用户带来极不友好的体验。目前异常往往是被动去检测处理,本发明实施例中利用异常的特性主动设计异常来保护应用程序不被盗用。
请参阅图1,本发明实施例中数据保护方法的一个实施例包括:
S101、在目标应用程序的至少一个DLL文件中编写产生异常的代码模块;
具体的,对于Windows应用程序开发,会拆分成多个模块来完成,例如,一个模块则是一个DLL文件,这样既有利于代码共享和分工,又可以将功能尽可能的拆分,减少代码耦合度。因此,一个Windows应用程序的组成则由一个EXE文件和多个DLL文件组成。本发明实施例中目标应用程序为Windows应用程序。需要说明的是,本发明实施例中应用程序可以是移动终端(如手机、平板灯)上的应用程序(APP)或终端(如个人电脑)上的计算机程序,即可以是移动终端上的Windows Phone应用或者计算机上的Windows应用程序。
S102、在目标应用程序的EXE文件中编写捕获异常的异常处理函数;
本实施例中,由于步骤S101中编写了产生异常的代码模块,因此为了让目标应用程序后续能正常使用,则需要首先捕获该异常,因此本实施例中则需要编写一个捕获异常的异常处理函数,用于处理产生异常时对异常的处理,使得应用程序可以继续执行。
S103、在目标应用程序的EXE文件中注册异常处理函数;
具体的,由于Windows***中的应用程序均需要注册后才能正常使用,因此本实施例中,还需要注册上述编写的异常处理函数,当产生异常时,编写的异常处理函数的对应逻辑才会被执行。
S104、在至少一个DLL文件被调用时,利用该产生异常的代码模块产生异常,若为目标应用程序调用,则利用异常处理函数捕获异常,并对异常进行调整修正,若非目标应用程序调用,则不对异常进行调整修正。
本发明实施例通过在目标应用程序的至少一个DLL文件中编写产生异常的代码模块;在目标应用程序的EXE文件中编写捕获异常的异常处理函数;在目标应用程序的EXE文件中注册异常处理函数;在至少一个DLL文件被调用时,利用该产生异常的代码模块产生异常,若DLL文件为目标应用程序调用,则利用异常处理函数捕获异常,并对异常进行调整修正,若DLL文件非目标应用程序调用,则不对异常进行调整修正。本发明实施例中通过在应用程序的DLL文件中故意编码产生错误异常,而在应用程序的主程序EXE文件中则会捕获异常,并对异常进行修正,使得应用程序仍可以正常的运行。而对于将DLL文件拿走直接使用的第三方,并没有主程序EXE的功能,那么在使用时会产生异常,导致程序崩溃,从而无法使用该DLL文件的功能,从而达到了对DLL文件进行保护的效果,同时由于捕获处理异常是在EXE文件中,从而使得其更为隐蔽,难以被黑客所破解,进一步提升了应用程序的安全性。
如图2所示,在本发明一些实施例中,上述步骤S101可以进一步的包括:
S1011、在至少一个DLL文件的核心功能函数中,添加一个标记变量和一个异常除0的变量;
其中,该标记变量用来标记当前DLL文件是否产生了异常,该异常除0的变量用于产生一个除0的异常。进一步的,该标记变量在当前DLL文件编写产生异常的代码模块之前置位为1,在当前DLL文件的核心功能函数执行完成时置位为0。
进一步的,该异常除0变量初始值设置为0;此时,上述步骤S104中利用所述异常处理函数捕获所述异常,并对异常进行调整修正,具体可以包括包括:
当利用异常处理函数捕获函数捕获到异常时,则将异常除0变量置位为1。从而使得应用程序不会产生除0异常,应用程序可以继续接着执行,从而在EXE文件中捕获异常时会将此标记置位,从而DLL的程序能够继续执行不会再产生异常。
本发明实施例中中,在至少一个DLL文件的核心功能函数中,添加一个标记变量和一个异常除0的变量,可以是在至少一个DLL文件的一个DLL文件的核心功能函数中,按照上述方式添加一个标记变量和一个异常除0的变量,可以理解的是,如果有多个DLL模块,都可以按照上述实现方式在多个DLL文件(例如重要DLL文件)或者每个DLL文件中添加一个标记变量和一个异常除0的变量,在多个DLL文件或者每个DLL文件中添加一个标记变量和一个异常除0的变量可以是相同的,也可以是不同,但都需要设置好相应的捕获异常机制,优选的,在多个DLL文件或者每个DLL文件中添加一个标记变量和一个异常除0的变量可以是相同的。
下面以一个具体实施例介绍本发明实施例中在DLL文件的核心功能函数中,添加一个标记变量和一个异常除0的变量的具体过程,其具体实现方式如下:
设置变量为全局标记变量:
Int g_xxDll=0;
定义一个全局的int形g_xxDll变量,并将其值赋值为0。
设置一个除0的异常全局变量:
Int g_xxData=1;
定义一个全局的int形g_xxData变量,并将其值赋值为1。
在核心代码处编写产生除0的异常代码。
Int nData=12;
nData=nData/g_xxData
上述代码定义了一个变量nData,并将其置位为12,然后其会除以变量g_xxData,由于变量g_xxData的值为0,在计算机中,任何数除以0都会产生异常,从而会导致应用程序崩溃。本实施例中应用程序执行到此处则会产生一个除0的异常,如果没有应用程序来捕获此异常,程序则无法继续执行,从而产生崩溃。
针对某个DLL文件添加一个标记变量和一个异常除0的变量的具体实现过程可以如下:
在DLL文件中的核心函数是:
上述代码中,首先将此DLL文件的标记变量(g_xxDll)置位为1,标示此DLL文件接下来执行会产生除0异常;然后将此异常除0的变量(g_xxData)置位为0,标示后续会产生除0异常。然后编写代码产生一个除0异常。当应用程序执行到此处除0异常时,则应用程序执行的逻辑会跳转到本程序注册的异常处理函数。如果在异常处理函数中将此变量g_xxData设置为1,则应用程序会继续执行nData=nData/g_xxData,而此时则不会产生除0异常,应用程序可以继续执行,否则如果异常处理函数没有对变量g_xxData进行设置为1,则应用程序无法继续执行。当应用程序执行完后,再将此2个变量(标记变量和异常除0的变量)恢复成原始的值。同样的如果有多个DLL文件,则都可以按照上述实现方式来添加标记变量和异常除0的变量。
在本发明的一些实施例中,上述步骤S102可以进一步的包括:在EXE文件中定义异常处理函数,其中,异常处理函数中定义了处理的异常类型信息,该异常类型信息为除0异常。一个具体实现方式如下:
LONG__stdcall MyUnhandledExceptionFilter(PEXCEPTION_POINTERSpExceptionInfo){
定义一个异常处理函数,函数名称是MyUnhandledExceptionFilter。其中,参数pExceptionInfo则会传递一些异常相关的信息,包括此时是什么异常,如除0异常、无效句柄异常、内存访问异常等。
定义一个异常处理函数的具体实现如下:
(1)判断异常类型,由于本实施例中在DLL文件中故意产生的异常是除0异常,所以在此处只对除0异常进行处理。
If(pExceptionInfo->ExceptionRecord->ExceptionCode==
STATUS_INTEGER_DIVIDE_BY_ZERO)
其中,参数pExceptionInfo的属性中ExceptionCode则存储了当前***产生的异常类型;STATUS_INTEGER_DIVIDE_BY_ZERO标示的则是除0的异常类型。所以只有除0的异常才会执行到此处。
(2)判断该DLL文件的标记变量g_xxDll,判断此标记变量是否是值为1,值为1则标示此DLL文件后续会产生除0的异常。
If(g_xxDll==1)
{
return EXCEPTION_CONTINUE_EXECUTION;
}
则此时将除0的变量g_xxData置位为1,从而DLL文件中的代码不会产生除0异常,从而该段逻辑可以继续执行。
同时返回值为EXCEPTION_CONTINUE_EXECUTION,标示此异常已经处理,可以继续执行。
通过本实施例中步骤就实现了在EXE文件中编写一个捕获异常的异常处理函数。
由于Windows***中提供了相应的API函数来注册异常处理函数,因此可以根据该提供的API函数来注册异常处理函数,在本发明一些实施例中,上述步骤S103中在目标应用程序的EXE文件中注册异常处理函数具体实现方式可以如下:
SetUnhandledExceptionFilter(MyUnhandledExceptionFilter);
其中,***API函数SetUnhandledExceptionFilter则是用来注册一个异常处理函数;参数MyUnhandledExceptionFilter则是上述步骤中编写的异常处理函数。因此只有在***中注册异常处理函数,当应用程序执行时,产生了异常,则***会去执行注册的异常处理函数MyUnhandledExceptionFilter。在此函数中则会对异常进行处理。通过这个步骤就实现了在该EXE文件中注册异常处理函数。
下面介绍本发明实施例中数据保护装置的实施例。
请参阅图3,本申请提供一种数据保护装置,该装置包括:
第一编写模块301,用于在目标应用程序的至少一个DLL文件中编写产生异常的代码模块;
第二编写模块302,用于在所述目标应用程序的EXE文件中编写捕获异常的异常处理函数;
注册模块303,用于在所述目标应用程序的EXE文件中注册异常处理函数;
调整模块304,用于在所述至少一个DLL文件被调用时,利用所述代码模块产生异常,若为所述目标应用程序调用,则利用所述异常处理函数捕获所述异常,并对所述异常进行调整修正,若非所述所述目标应用程序调用,则不对所述异常进行调整修正。
进一步的,所述第一编写模块301具体用于:
在所述至少一个DLL文件的核心功能函数中,添加一个标记变量和一个异常除0的变量,所述标记变量用来标记当前DLL文件是否产生了异常,所述异常除0的变量用于产生一个除0的异常。
进一步的,所述标记变量在当前DLL文件编写产生异常的代码模块之前置位为1,在当前DLL文件的核心功能函数执行完成时置位为0。
进一步的,所述异常除0变量初始值设置为0;所述调整模块304具体用于:
当利用所述异常处理函数捕获函数捕获到所述异常时,则将所述异常除0变量置位为1。
进一步的,所述第二编写模块302具体用于:
在所述EXE文件中定义所述异常处理函数,所述异常处理函数中定义了处理的异常类型信息,以及在捕获异常时调用所述生成dump文件的功能函数,所述异常类型信息为除0异常。
本发明实施例中还提供一种电子设备,请参见图4,所述电子设备包括:
存储器401,处理器402及存储在所述存储器上并可在所述处理器上运行的计算机程序403,其中,所述处理器402执行所述计算机程序403时可以实现上述数据保护方法。
为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。存储器401可用于存储计算机程序403,上述计算机程序包括软件程序、模块和数据,处理器402通过运行执行存储在存储器401的计算机程序403,从而执行电子设备的各种功能应用以及数据处理。其中,该计算机程序中包括目标应用程序。
在具体的实施过程中,存储器401可用于存储软件程序以及模块,处理器402通过运行存储在存储器401的软件程序以及模块,从而执行电子设备的各种功能应用以及数据处理。存储器401可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(例如游戏类应用程序、聊天类应用程序)等;存储数据区可存储根据电子设备的使用所创建的数据(游戏配置数据、音频数据)等。此外,存储器401可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。处理器402是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器401内的软件程序和/或模块,以及调用存储在存储器401内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器402可包括一个或多个处理单元;优选的,处理器402可集成应用处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等。
本发明实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的数据保护方法的部分或全部步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种数据保护方法,其特征在于,所述方法包括:
在目标应用程序的至少一个DLL文件中编写产生异常的代码模块,包括:在所述至少一个DLL文件的核心功能函数中,添加一个异常除0的变量,所述异常除0的变量用于产生一个除0的异常;
在所述目标应用程序的EXE文件中编写捕获异常的异常处理函数;
在所述目标应用程序的EXE文件中注册异常处理函数;
在所述至少一个DLL文件被调用时,利用所述代码模块产生异常,若为所述目标应用程序调用,则利用所述异常处理函数捕获所述异常,并对所述异常进行调整修正,若非所述目标应用程序调用,则不对所述异常进行调整修正,应用程序无法继续执行;
所述异常除0变量初始值设置为0;所述利用所述异常处理函数捕获所述异常,并对所述异常进行调整修正,包括:
当利用所述异常处理函数捕获到所述异常时,则将所述异常除0变量置位为1。
2.根据权利要求1所述的方法,其特征在于,所述在目标应用程序的至少一个DLL文件中编写产生异常的代码模块,还包括:
在所述至少一个DLL文件的核心功能函数中,添加一个标记变量,所述标记变量用来标记当前DLL文件是否产生了异常。
3.根据权利要求2所述的方法,其特征在于,所述标记变量在当前DLL文件编写产生异常的代码模块之前置位为1,在当前DLL文件的核心功能函数执行完成时置位为0。
4.根据权利要求1所述的方法,其特征在于,所述在所述目标应用程序的EXE文件中编写捕获异常的异常处理函数,包括:
在所述EXE文件中定义所述异常处理函数,所述异常处理函数中定义了处理的异常类型信息,所述异常类型信息为除0异常。
5.一种数据保护装置,其特征在于,所述装置包括:
第一编写模块,用于在目标应用程序的至少一个DLL文件中编写产生异常的代码模块;
第二编写模块,用于在所述目标应用程序的EXE文件中编写捕获异常的异常处理函数;
注册模块,用于在所述目标应用程序的EXE文件中注册异常处理函数;
调整模块,用于在所述至少一个DLL文件被调用时,利用所述代码模块产生异常,若为所述目标应用程序调用,则利用所述异常处理函数捕获所述异常,并对所述异常进行调整修正,若非所述目标应用程序调用,则不对所述异常进行调整修正,应用程序无法继续执行;
所述第一编写模块具体用于:在所述至少一个DLL文件的核心功能函数中,添加一个异常除0的变量,所述异常除0的变量用于产生一个除0的异常;
所述异常除0变量初始值设置为0;所述调整模块具体用于:
当利用所述异常处理函数捕获到所述异常时,则将所述异常除0变量置位为1。
6.根据权利要求5所述的装置,其特征在于,所述第一编写模块具体还用于:
在所述至少一个DLL文件的核心功能函数中,添加一个标记变量,所述标记变量用来标记当前DLL文件是否产生了异常。
7.根据权利要求6所述的装置,其特征在于,所述标记变量在当前DLL文件编写产生异常的代码模块之前置位为1,在当前DLL文件的核心功能函数执行完成时置位为0。
8.一种电子设备,其特征在于,包括:存储器,处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时可以实现权利要求1至4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810028026.5A CN108133149B (zh) | 2018-01-11 | 2018-01-11 | 一种数据保护方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810028026.5A CN108133149B (zh) | 2018-01-11 | 2018-01-11 | 一种数据保护方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108133149A CN108133149A (zh) | 2018-06-08 |
CN108133149B true CN108133149B (zh) | 2021-07-23 |
Family
ID=62399600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810028026.5A Active CN108133149B (zh) | 2018-01-11 | 2018-01-11 | 一种数据保护方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108133149B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287051A (zh) * | 2019-06-21 | 2019-09-27 | 四川盛趣时代网络科技有限公司 | 基于windows异常处理机制的主动防护方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008068519A1 (en) * | 2006-10-02 | 2008-06-12 | Transitive Limited | Computer system and method of adapting a computer system to support a register window architecture |
CN101593147A (zh) * | 2009-04-15 | 2009-12-02 | 卡斯柯信号有限公司 | 基于符号文件的异常信息转储方法 |
CN105787305B (zh) * | 2016-02-26 | 2018-08-10 | 西北大学 | 一种抵抗符号执行和污点分析的软件保护方法 |
CN106991328B (zh) * | 2017-03-30 | 2019-11-29 | 兴华永恒(北京)科技有限责任公司 | 一种基于动态内存指纹异常分析的漏洞利用检测识别方法 |
-
2018
- 2018-01-11 CN CN201810028026.5A patent/CN108133149B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108133149A (zh) | 2018-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200235947A1 (en) | Changing smart contracts recorded in block chains | |
CN110032502B (zh) | 一种异常处理的方法、装置及电子设备 | |
KR20120063455A (ko) | 펌웨어 업데이트 장치 및 방법 | |
CN110162429B (zh) | ***修复方法、服务器及存储介质 | |
US9405936B2 (en) | Code integrity protection by computing target addresses from checksums | |
CN112231702A (zh) | 应用保护方法、装置、设备及介质 | |
CN112069468A (zh) | 一种页面动态水印的方法及设备 | |
US20220092155A1 (en) | Protecting an item of software | |
CN106484779B (zh) | 文件操作方法及装置 | |
CN108133149B (zh) | 一种数据保护方法、装置及电子设备 | |
CN112306648B (zh) | 事务调用方法、装置、电子设备及存储介质 | |
CN110941825B (zh) | 一种应用监控方法及装置 | |
CN110879756B (zh) | 协作流程异常处理方法、装置、计算机设备及存储介质 | |
CN106922191B (zh) | 生成和执行受保护的软件项目 | |
CN111381905B (zh) | 一种程序处理方法、装置及设备 | |
CN108959915B (zh) | 一种rootkit检测方法、装置及服务器 | |
US11263313B2 (en) | Securing execution of a program | |
CN111353150A (zh) | 一种可信启动方法、装置、电子设备及可读存储介质 | |
US11921874B2 (en) | Method and system for protecting file using class distribution and sequential memory loading | |
CN115455485A (zh) | 数据库访问方法、装置、客户端及存储介质 | |
CN110727537B (zh) | 统一处理响应报文的方法、装置、计算机设备及存储介质 | |
EP3649553B1 (en) | Data protection | |
CN111488282A (zh) | 业务功能处理方法、装置、电子设备及存储介质 | |
CN113344549B (zh) | 项目工程文档更新方法、装置、计算机设备及存储介质 | |
TWI779257B (zh) | 韌體更新之方法及其韌體更新系統 |
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 |