CN108287997B - 目标应用程序的宿主环境识别方法、装置、介质及设备 - Google Patents
目标应用程序的宿主环境识别方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN108287997B CN108287997B CN201810028377.6A CN201810028377A CN108287997B CN 108287997 B CN108287997 B CN 108287997B CN 201810028377 A CN201810028377 A CN 201810028377A CN 108287997 B CN108287997 B CN 108287997B
- Authority
- CN
- China
- Prior art keywords
- program module
- target
- client
- assembly code
- server
- 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
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/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/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及软件开发技术领域,尤其涉及目标应用程序的宿主环境识别方法、装置、介质及设备,应用在安装有所述目标应用程序的客户端中,所述方法包括:接收服务器发送的用于对与所述目标应用程序对应的目标程序模块进行校验的配置文件;基于所述配置文件,获取校验数据;发送所述校验数据至所述服务器,以使所述服务器根据所述校验数据生成校验结果;接收所述服务器发送的所述校验结果;若所述校验结果表明所述目标程序模块运行在非法环境下,则退出所述目标程序模块。本发明能够避免被篡改的目标程序模块文件对应用程序和客户端造成的攻击。
Description
技术领域
本发明涉及软件开发技术领域,尤其涉及目标应用程序的宿主环境识别方法、装置、介质及设备。
背景技术
目前,软件开发通常会采用模块化开发方式,即,将软件的功能进行模块化拆分,不同的模块负责不同的功能,同时,在设计模块时,尽可能的使得模块松耦合,使得模块能够独立使用,并且相对于函数功能也会设计的比较独立,每一种功能设计成一个独立的函数,从而给模块的使用者提供极大的方便。
当应用程序发布到客户端后,可以从客户端的安装目录中获取到与该应用程序对应的一个个独立的模块,通过加载这些模块能够实现应用程序包含的各项功能,而第三方或者黑客正是利用上述特点能够轻易获取并篡改模块文件,从而导致对应用程序和客户端造成了威胁,使得应用程序和客户端容易被第三方和黑客攻击。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的目标应用程序的宿主环境识别方法、装置、介质及设备。
本发明实施例提供一种目标应用程序的宿主环境识别方法,应用在安装有所述目标应用程序的客户端中,所述方法包括:
接收服务器发送的用于对与所述目标应用程序对应的目标程序模块进行校验的配置文件:
基于所述配置文件,获取校验数据;
发送所述校验数据至所述服务器,以使所述服务器根据所述校验数据生成校验结果;
接收所述服务器发送的所述校验结果;
若所述校验结果表明所述目标程序模块运行在非法环境下,则退出所述目标程序模块。
优选的,在所述接收所述服务器发送的所述校验结果之后,所述方法还包括:
若所述校验结果表明所述目标程序模块运行在合法环境下,则加载所述目标程序模块至内存中,并读取所述目标程序模块的内存汇编代码;
发送所述内存汇编代码至所述服务器,以使所述服务器判断所述内存汇编代码是否合法,并生成判断结果;
接收所述服务器发送的所述判断结果;
若所述判断结果表明所述内存汇编代码不合法时,则退出所述目标程序模块。
优选的,所述目标程序模块为可执行程序(EXE)和/或动态链接库(DLL)。
优选的,当所述目标程序模块为所述DLL时,所述配置文件包括DLL名称、DLL偏移地址和读取字节大小中的至少一种。
本发明实施例提供一种目标应用程序的宿主环境识别方法,应用在服务器中,所述方法包括:
向安装有所述目标应用程序的客户端发送用于对与所述目标应用程序对应的目标程序模块进行校验的配置文件;
接收所述客户端基于所述配置文件反馈的校验数据;
根据所述校验数据生成校验结果;
发送所述校验结果至所述客户端,以使所述客户端在所述校验结果表明所述目标程序模块运行于非法环境下,退出所述目标程序模块。
优选的,在所述发送所述校验结果至所述客户端之后,所述方法还包括:
接收所述客户端发送的内存汇编代码;
判断所述内存汇编代码是否合法,生成判断结果;
发送所述判断结果至所述客户端,以使所述客户端在所述判断结果表明所述目标程序模块运行于非法环境下,退出所述目标程序模块。
本发明实施例提供一种目标应用程序的宿主环境识别系统,所述系统包括客户端和服务器,其中,所述客户端中安装有所述目标应用程序;
所述服务器用于向所述客户端发送用于对与所述目标应用程序对应的目标程序模块进行校验的配置文件;
所述客户端用于接收所述配置文件,并基于所述配置文件获得校验数据,以及发送所述校验数据至所述服务器;
所述服务器用于接收所述校验数据,并根据所述校验数据生成校验结果,以及发送所述校验结果至所述客户端;
所述客户端用于接收所述校验结果,并在所述校验结果表明所述目标程序模块运行在非法环境下,则退出所述目标程序模块。
优选的,所述客户端用于在所述校验结果表明所述目标程序模块运行在合法环境下,则加载所述目标程序模块至内存中,并读取所述目标程序模块的内存汇编代码,以及发送所述内存汇编代码至所述服务器;
所述服务器用于接收所述内存汇编代码并判断所述内存汇编代码是否合法,生成判断结果,以及发送所述判断结果至所述客户端;
所述客户端用于在所述判断结果表明所述内存汇编代码不合法时,则退出所述目标程序模块。
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述实施例所述的方法步骤。
本发明实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如前述实施例所述的方法步骤。
本发明实施例中的一个或多个技术方案,至少具有如下技术效果或优点:
在本发明中,安装有目标应用程序的客户端接收服务器发送的用于对与目标应用程序对应的目标程序模块进行校验的配置文件,客户端基于配置文件,获取校验数据,并发送校验数据至服务器,以使服务器根据校验数据生成校验结果,客户端接收服务器发送的校验结果,若校验结果表明目标程序模块运行在非法环境下,则退出目标程序模块,从而能够避免被篡改的目标程序模块文件对应用程序和客户端造成的攻击。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考图形表示相同的部件。在附图中:
图1示出了本发明第一实施例中的目标应用程序的宿主环境识别方法的流程图;
图2示出了本发明第二实施例中的目标应用程序的宿主环境识别方法的流程图;
图3示出了本发明第五实施例中的计算机设备的实体结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明的第一实施例提供一种目标应用程序的宿主环境识别方法,应用在安装有目标应用程序的客户端中,如图1所示,所述方法包括:
步骤101:接收服务器发送的用于对与目标应用程序对应的目标程序模块进行校验的配置文件。
步骤102:基于配置文件,获取校验数据。
步骤103:发送校验数据至服务器,以使服务器根据校验数据生成校验结果。
步骤104:接收服务器发送的校验结果。
步骤105:若校验结果表明目标程序模块运行于非法环境下,则退出目标程序模块。
具体来讲,在本申请中,安装有目标应用程序的客户端与服务器进行交互。一个应用程序通常包含一个EXE和多个DLL,EXE和DLL中的代码均是固定的,本申请中的目标程序模块可以为EXE,也可以为DLL,还可以同时包含EXE和DLL。
对于步骤101而言,首先,在服务器端,编写用于对与目标应用程序对应的目标程序模块进行校验的配置文件,该配置文件用于控制客户端读取目标程序模块中的校验数据,并将校验数据上报给服务器,以使服务器根据校验数据校验目标程序模块是否运行在非法环境下。当目标程序模块为DLL时,配置文件可以包括DLL名称、DLL偏移地址和读取字节大小中的至少一种,根据上述配置文件能够获取目标程序模块的DLL的名称、DLL中的偏移地址和读取的字节的大小中的至少一种,配置文件的具体实现如下:
Name“abc.dll”offset“0x4530”size“0x45”
Name“base.dll”offset“0x30”size“0x120”
Name“Func.exe”offset“0x589”size“0x652”
进一步,服务器端在编写好配置文件之后,发送配置文件给客户端,客户端接收服务器发送的配置文件,并基于配置文件,获取与配置文件对应的校验数据,例如,当配置文件包含DLL名称时,校验数据为该DLL的具体名称。客户端在获取到校验数据之后,将校验数据发送至服务器。需要说明的是,服务器在生成配置文件之后且在向客户端发送配置文件之前,可以对配置文件进行加密,从而,服务器将加密后的配置文件发送给客户端,对应地,客户端在获得加密后的配置文件之后,需要先对配置文件进行解密,具体地,客户端可以编写一个网络套接字来读取配置文件并对配置文件解密。
其中,校验数据的类型为目标程序模块中的汇编代码,服务器在校验时,将目标程序模块中的汇编代码与合法环境下的汇编代码进行对比,若两者一致,表明目标程序模块运行在合法环境下,若不一致,表明目标程序模块运行在非法环境下。需要说明的是,从另一个角度来说,服务器端存储有合法环境下目标程序模块的合法数据,服务器将从客户端接收到的校验数据与合法数据进行对比,服务器在对比后,将会生成校验结果,并将校验结果发送给客户端,若从客户端接收到的校验数据与合法数据一致,则表明客户端的目标程序模块运行在合法环境下,若从客户端接收到的校验数据与合法数据不一致,则表明客户端的目标程序模块运行在非法环境下。
进一步,客户端在接收到服务器发送的校验结果之后,若校验结果表明目标程序模块运行在非法环境下,则退出目标程序模块。
其中,退出目标程序模块包括以下步骤:
1)调用系统提供的函数exit,可以通过编写系统提供的函数exit(0)来实现程序的退出,从而目标程序模块无法继续使用。
2)编写除0的异常代码,同时还可以编写一些产生异常从而导致程序崩溃的功能,例如编写一个除0的异常,从而程序会崩溃退出,具体实现如下:Int nData=5/0。
3)编写读写异常内存代码,也可以通过写入一个0地址的空间,从而程序会产生异常退出。具体实现则可以编写多种随机选择一种或者多种来执行,具体实现如下:
Int*p=0;
Memcpy(p,“123”,3);
分配指针P为空指针,然后拷贝数据到空指针,从而产生异常。
进一步,客户端在接收到服务器发送的校验结果之后,若校验结果表明目标程序模块运行在合法环境下,则:
加载目标程序模块至内存中,并读取目标程序模块的内存汇编代码;
发送内存汇编代码至服务器,以使服务器判断内存汇编代码是否合法,并生成判断结果;
接收服务器发送的判断结果;
若判断结果表明内存汇编代码不合法时,则退出目标程序模块。
具体来讲,当目标程序模块被加载到内存中后,则可以获取其加载的起始地址,然后根据服务器下发的偏移和读取的长度,可以读取该目标程序模块的内存汇编代码,具体获取方法包括以下步骤:
1)获取目标程序模块内存中的起始地址。
HMODULE GetModuleHandle(LPCTSTRl pModuleName);
通过调用Windows API函数GetModuleHandle来获取目标程序模块的内存起始地址。
其中,参数pModuleName是传入目标程序模块的名称,返回值HMODULE则是目标程序模块的内存起始地址,参数LPCTSTR1则对应与服务器下发的配置中的Name“abc.dll”,DLL的名称,如果此函数调用后获取到的返回值为0,则说明内存中不存在此DLL组件,则记录内存中不存在此目标程序模块。
2)获取需要读取的目标程序模块的代码开始地址。
在获得目标程序模块的起始地址后,则可以通过加上偏移从而得到需要读取的内存起始地址。在1)中获取到了DLL的内存起始地址,StartAddress=GetModuleHandle(“xx.dll”),然后则同相加偏移得到需要读取的起始地址,dwRead=StartAddress+Offset,其中,Offset则是服务器下发配置中的偏移地址,最终得到实际需要读取的组件的内存地址dwRead。
3)读取组件的内存汇编代码。
客户端读取内存组件的汇编代码,则可以调用系统函数ReadProcessMemory来读取。
其函数原型如下
针对于本文则实现如下:
ReadProcessMemory(GetCurrentProcess(),dwRead,buff,size,dwReadSize);
其中,GetCurrentProcess()表示调用系统函数GetCurrentProcess()来获取当前的进程句柄,dwRead表示读取的进程内存起始地址,buff则是存储读取得到读取的汇编代码结果,size则是读取的内存大小,dwReadSize则是实际读取的大小。
进一步,客户端在获取到目标程序模块的内存汇编代码之后,将内存汇编代码发送给服务器,在发送之前,可以先对内存汇编代码进行加密,再将加密后的内存汇编代码发送给服务器。服务器在接收到目标程序模块的内存汇编代码之后,判断内存汇编代码是否合法,具体地,服务器判断接收到的目标程序模块的内存汇编代码与服务器预先存储的合法内存汇编代码是否一致,若一致,则表明合法,若不一致,则表明不合法,从而,在不合法时退出目标程序模块。
基于同一发明构思,本发明的第二实施例提供一种目标应用程序的宿主环境识别方法,应用在服务器中,如图2所示,所述方法包括:
步骤201:向安装有目标应用程序的客户端发送用于对与目标应用程序对应的目标程序模块进行校验的配置文件。
步骤202:接收客户端基于配置文件反馈的校验数据。
步骤203:根据校验数据生成校验结果。
步骤204:发送校验结果至客户端,以使客户端在校验结果表明目标程序模块运行于非法环境下,退出目标程序模块。
进一步,在发送校验结果至客户端之后,方法还包括:
接收客户端发送的内存汇编代码;
判断内存汇编代码是否合法,生成判断结果;
发送判断结果至客户端,以使客户端在判断结果表明目标程序模块运行于非法环境下,退出目标程序模块。
对于目标应用程序的宿主环境识别方法在服务器端的具体实施过程,本发明的第一实施例中已给出详细说明,此处不再赘述。
基于同一发明构思,本发明第三实施例还提供一种目标应用程序的宿主环境识别系统,所述系统包括客户端和服务器,其中,客户端中安装有目标应用程序;
服务器用于向客户端发送用于对与目标应用程序对应的目标程序模块进行校验的配置文件;
客户端用于接收配置文件,并基于配置文件获得校验数据,以及发送校验数据至服务器;
服务器用于接收校验数据,并根据校验数据生成校验结果,以及发送校验结果至客户端;
客户端用于接收校验结果,并在校验结果表明目标程序模块运行在非法环境下,则退出目标程序模块。
进一步,客户端用于在校验结果表明目标程序模块运行在合法环境下,则加载目标程序模块至内存中,并读取目标程序模块的内存汇编代码,以及发送内存汇编代码至服务器;
服务器用于接收内存汇编代码并判断内存汇编代码是否合法,生成判断结果,以及发送判断结果至客户端;
客户端用于在判断结果表明内存汇编代码不合法时,则退出目标程序模块。
本发明第三实施例中的客户端和服务器所执行的方法过程与本发明的第一实施例和第二实施例中所介绍的方法相同,此处不再赘述。
基于同一发明构思,本发明第四实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述第一实施例和第二实施例中任一方法步骤。
本发明第五实施例还提供了一种计算机设备,如图3所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机设备可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以计算机设备为手机为例:
图3示出的是与本发明实施例提供的计算机设备相关的部分结构的框图。参考图3,该计算机设备包括:存储器301和处理器302。本领域技术人员可以理解,图3中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图3对计算机设备的各个构成部件进行具体的介绍:
存储器301可用于存储软件程序以及模块,处理器302通过运行存储在存储器301的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储数据(比如音频数据、电话本等)等。此外,存储器301可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器302是计算机设备的控制中心,通过运行或执行存储在存储器301内的软件程序和/或模块,以及调用存储在存储器301内的数据,执行各种功能和处理数据。可选的,处理器302可包括一个或多个处理单元;优选的,处理器302可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。
在本发明实施例中,该计算机设备所包括的处理器302可以具有前述第一实施例和第二实施例中任一方法步骤所对应的功能。
总之,在本申请中,安装有目标应用程序的客户端接收服务器发送的用于对与目标应用程序对应的目标程序模块进行校验的配置文件,客户端基于配置文件,获取校验数据,并发送校验数据至服务器,以使服务器根据校验数据生成校验结果,客户端接收服务器发送的校验结果,若校验结果表明目标程序模块运行在非法环境下,则退出目标程序模块,从而能够避免被篡改的目标程序模块文件对应用程序和客户端造成的攻击。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (7)
1.一种目标应用程序的宿主环境识别方法,其特征在于,应用在安装有所述目标应用程序的客户端中,所述目标应用程序采用模块化开发方式,所述目标应用程序由目标程序模块组成,所述方法包括:
接收服务器发送的用于对与所述目标应用程序对应的目标程序模块进行校验的配置文件,其中,所述配置文件用于控制所述客户端读取所述目标程序模块中的校验数据,所述校验数据的类型为所述目标程序模块中的汇编代码;
基于所述配置文件,获取校验数据;
发送所述校验数据至所述服务器,以使所述服务器根据所述校验数据生成校验结果,所述服务器在校验时,将所述目标程序模块中的汇编代码与合法环境下的汇编代码进行对比,若两者一致,表明所述目标程序模块运行在合法环境下,若不一致,表明所述目标程序模块运行在非法环境下;
接收所述服务器发送的所述校验结果;
若所述校验结果表明所述目标程序模块运行在非法环境下,则退出所述目标程序模块;
若所述校验结果表明所述目标程序模块运行在合法环境下,则加载所述目标程序模块至内存中,并读取所述目标程序模块的内存汇编代码;
发送所述内存汇编代码至所述服务器,以使所述服务器判断所述内存汇编代码是否合法,并生成判断结果;
接收所述服务器发送的所述判断结果;
若所述判断结果表明所述内存汇编代码不合法时,则退出所述目标程序模块。
2.如权利要求1所述的目标应用程序的宿主环境识别方法,其特征在于,所述目标程序模块为可执行程序(EXE)和/或动态链接库(DLL)。
3.如权利要求2所述的目标应用程序的宿主环境识别方法,其特征在于,当所述目标程序模块为所述DLL时,所述配置文件包括DLL名称、DLL偏移地址和读取字节大小中的至少一种。
4.一种目标应用程序的宿主环境识别方法,其特征在于,应用在服务器中,所述目标应用程序采用模块化开发方式,所述目标应用程序由目标程序模块组成,所述方法包括:
向安装有所述目标应用程序的客户端发送用于对与所述目标应用程序对应的目标程序模块进行校验的配置文件,所述配置文件用于控制所述客户端读取所述目标程序模块中的校验数据,所述校验数据的类型为所述目标程序模块中的汇编代码;
接收所述客户端基于所述配置文件反馈的校验数据;
根据所述校验数据生成校验结果,其中,所述服务器在校验时,将所述目标程序模块中的汇编代码与合法环境下的汇编代码进行对比,若两者一致,表明所述目标程序模块运行在合法环境下,若不一致,表明所述目标程序模块运行在非法环境下;
发送所述校验结果至所述客户端,以使所述客户端在所述校验结果表明所述目标程序模块运行于非法环境下,退出所述目标程序模块;
其中,在所述发送所述校验结果至所述客户端之后,所述方法还包括:
接收所述客户端发送的内存汇编代码;
判断所述内存汇编代码是否合法,生成判断结果;
发送所述判断结果至所述客户端,以使所述客户端在所述判断结果表明所述内存汇编代码不合法时,则退出所述目标程序模块。
5.一种目标应用程序的宿主环境识别系统,其特征在于,所述系统包括客户端和服务器,其中,所述客户端中安装有所述目标应用程序,所述目标应用程序采用模块化开发方式,所述目标应用程序由目标程序模块组成;
所述服务器用于向所述客户端发送用于对与所述目标应用程序对应的目标程序模块进行校验的配置文件,所述配置文件用于控制所述客户端读取所述目标程序模块中的校验数据,所述校验数据的类型为所述目标程序模块中的汇编代码;
所述客户端用于接收所述配置文件,并基于所述配置文件获得校验数据,以及发送所述校验数据至所述服务器;
所述服务器用于接收所述校验数据,并根据所述校验数据生成校验结果,以及发送所述校验结果至所述客户端,其中,所述服务器在校验时,将所述目标程序模块中的汇编代码与合法环境下的汇编代码进行对比,若两者一致,表明所述目标程序模块运行在合法环境下,若不一致,表明所述目标程序模块运行在非法环境下;
所述客户端用于接收所述校验结果,并在所述校验结果表明所述目标程序模块运行在非法环境下,则退出所述目标程序模块;
所述客户端用于在所述校验结果表明所述目标程序模块运行在合法环境下,则加载所述目标程序模块至内存中,并读取所述目标程序模块的内存汇编代码,以及发送所述内存汇编代码至所述服务器;
所述服务器用于接收所述内存汇编代码并判断所述内存汇编代码是否合法,生成判断结果,以及发送所述判断结果至所述客户端;
所述客户端用于在所述判断结果表明所述内存汇编代码不合法时,则退出所述目标程序模块。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一权利要求所述的方法步骤。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-4中任一权利要求所述的方法步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810028377.6A CN108287997B (zh) | 2018-01-10 | 2018-01-10 | 目标应用程序的宿主环境识别方法、装置、介质及设备 |
PCT/CN2018/082358 WO2019136859A1 (zh) | 2018-01-10 | 2018-04-09 | 目标应用程序的宿主环境识别方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810028377.6A CN108287997B (zh) | 2018-01-10 | 2018-01-10 | 目标应用程序的宿主环境识别方法、装置、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108287997A CN108287997A (zh) | 2018-07-17 |
CN108287997B true CN108287997B (zh) | 2020-07-31 |
Family
ID=62835097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810028377.6A Active CN108287997B (zh) | 2018-01-10 | 2018-01-10 | 目标应用程序的宿主环境识别方法、装置、介质及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108287997B (zh) |
WO (1) | WO2019136859A1 (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114324A (zh) * | 2006-07-25 | 2008-01-30 | 珠海市西山居软件有限公司 | 可反外挂的网络游戏系统及网络游戏系统反外挂的方法 |
CN101957794A (zh) * | 2010-09-21 | 2011-01-26 | 中国科学院软件研究所 | Web应用部署约束自动检测方法 |
CN103020531A (zh) * | 2012-12-06 | 2013-04-03 | 中国科学院信息工程研究所 | Android智能终端运行环境可信控制方法及系统 |
CN105678157A (zh) * | 2016-01-11 | 2016-06-15 | 迅鳐成都科技有限公司 | 一种基于应用环境识别的数据产权保护系统和方法 |
CN105791324A (zh) * | 2016-05-12 | 2016-07-20 | 腾讯科技(深圳)有限公司 | 帐号登录方法和装置 |
CN106897611A (zh) * | 2017-03-03 | 2017-06-27 | 金光 | 无需root权限的安全虚拟移动应用程序运行环境系统及方法与应用 |
CN107180187A (zh) * | 2017-03-31 | 2017-09-19 | 武汉斗鱼网络科技有限公司 | 直播环境检测、基于直播环境处理直播程序的方法及装置 |
CN107194250A (zh) * | 2017-03-31 | 2017-09-22 | 武汉斗鱼网络科技有限公司 | 内存代码的完整性校验方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722672B (zh) * | 2012-06-04 | 2015-10-14 | 北京奇虎科技有限公司 | 一种检测运行环境真实性的方法及装置 |
CN103544046A (zh) * | 2013-10-25 | 2014-01-29 | 苏州通付盾信息技术有限公司 | 一种移动应用的软件加固方法 |
CN104378388B (zh) * | 2014-12-09 | 2018-02-27 | 北京奇虎科技有限公司 | 可执行文件运行控制方法及装置 |
CN105872848B (zh) * | 2016-06-13 | 2019-01-08 | 北京可信华泰信息技术有限公司 | 一种适用于非对称资源环境的可信双向认证方法 |
-
2018
- 2018-01-10 CN CN201810028377.6A patent/CN108287997B/zh active Active
- 2018-04-09 WO PCT/CN2018/082358 patent/WO2019136859A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114324A (zh) * | 2006-07-25 | 2008-01-30 | 珠海市西山居软件有限公司 | 可反外挂的网络游戏系统及网络游戏系统反外挂的方法 |
CN101957794A (zh) * | 2010-09-21 | 2011-01-26 | 中国科学院软件研究所 | Web应用部署约束自动检测方法 |
CN103020531A (zh) * | 2012-12-06 | 2013-04-03 | 中国科学院信息工程研究所 | Android智能终端运行环境可信控制方法及系统 |
CN105678157A (zh) * | 2016-01-11 | 2016-06-15 | 迅鳐成都科技有限公司 | 一种基于应用环境识别的数据产权保护系统和方法 |
CN105791324A (zh) * | 2016-05-12 | 2016-07-20 | 腾讯科技(深圳)有限公司 | 帐号登录方法和装置 |
CN106897611A (zh) * | 2017-03-03 | 2017-06-27 | 金光 | 无需root权限的安全虚拟移动应用程序运行环境系统及方法与应用 |
CN107180187A (zh) * | 2017-03-31 | 2017-09-19 | 武汉斗鱼网络科技有限公司 | 直播环境检测、基于直播环境处理直播程序的方法及装置 |
CN107194250A (zh) * | 2017-03-31 | 2017-09-22 | 武汉斗鱼网络科技有限公司 | 内存代码的完整性校验方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2019136859A1 (zh) | 2019-07-18 |
CN108287997A (zh) | 2018-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8769295B2 (en) | Computing system feature activation mechanism | |
US9697353B2 (en) | Method and device for intercepting call for service by application | |
MX2007011377A (es) | Arranque seguro. | |
CN108846129B (zh) | 存储数据访问方法、装置及存储介质 | |
CN108989288B (zh) | 一种基于区块链的移动数字版权保护方法及装置 | |
US20210042150A1 (en) | Method-call-chain tracking method, electronic device, and computer readable storage medium | |
CN111079125A (zh) | 一种应用程序调用第三方库动态提升权限的方法及装置 | |
CN111106939A (zh) | 软件授权方法、获取软件权限的方法及装置 | |
CN110570192A (zh) | 在区块链上进行实物抵押借贷数字货币的方法及其装置 | |
US20210240816A1 (en) | Efficiently authenticating an application during i/o request handling | |
CN108600259B (zh) | 设备的认证和绑定方法及计算机存储介质、服务器 | |
CN111078437B (zh) | 验证码的远程调用方法、装置、电子设备及可读存储介质 | |
CN108287997B (zh) | 目标应用程序的宿主环境识别方法、装置、介质及设备 | |
CN113536242A (zh) | 动态库调用方法、装置、终端设备以及存储介质 | |
CN112732349A (zh) | 加载so库的方法、装置、电子设备和计算机可读存储介质 | |
CN111538566A (zh) | 镜像文件处理方法、装置、系统、电子设备及存储介质 | |
CN113254888B (zh) | 获取硬件信息的方法、授权控制系统及计算设备 | |
US20150113284A1 (en) | Method and apparatus for protecting application program | |
CN106201595A (zh) | 一种应用程序的清理控制方法及装置 | |
US20060230190A1 (en) | Method and apparatus for executing application in system having NAND flash memory | |
CN114168937A (zh) | 一种资源访问方法、计算设备及可读存储介质 | |
CN108133149B (zh) | 一种数据保护方法、装置及电子设备 | |
CN108875372B (zh) | 一种代码检测方法、装置、电子设备及存储介质 | |
CN114065140A (zh) | 软件程序验证方法、电子装置及存储介质 | |
KR102538096B1 (ko) | 어플리케이션을 검증하는 디바이스 및 방법 |
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 |