CN110210211B - 一种数据保护的方法和计算设备 - Google Patents
一种数据保护的方法和计算设备 Download PDFInfo
- Publication number
- CN110210211B CN110210211B CN201910485699.8A CN201910485699A CN110210211B CN 110210211 B CN110210211 B CN 110210211B CN 201910485699 A CN201910485699 A CN 201910485699A CN 110210211 B CN110210211 B CN 110210211B
- Authority
- CN
- China
- Prior art keywords
- character
- target data
- application
- data
- stored
- 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.)
- Expired - Fee Related
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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- 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/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种数据保护的方法和计算设备,所述计算设备存储有应用的目标数据,所述的方法包括:接收从应用发送的获取目标数据的请求;判断应用是否处于动态调试模式,如果是动态调试模式,则返回假数据,所述假数据是不同于目标数据的数据;如果不是动态调试模式,则对应用签名进行校验,如果校验失败,则返回假数据;如果校验通过,则返回存储的目标数据。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种数据保护的方法和计算设备。
背景技术
在应用开发和运行的过程中,经常需要将应用的数据例如密钥存储在本地中,而存储在本地的数据的安全性不高,特别是购物、银行事务等应用,一旦本地存储的数据被破译,将威胁到用户的人身和财产安全。现有技术中,对本地存储的数据进行保护的方法通常采用公开的加密算法,但加密数据还是很容易被破解。
发明内容
鉴于上述问题,提出本发明以便提供一种数据保护的方法、装置和计算设备,力图解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种数据保护的方法,在计算设备中执行,所述计算设备存储有应用的目标数据,所述的方法包括:接收从应用发送的获取目标数据的请求;判断应用是否处于动态调试模式,如果是动态调试模式,则返回假数据,所述假数据是不同于目标数据的数据;如果不是动态调试模式,则对应用签名进行校验,如果校验失败,则返回假数据;如果校验通过,则返回存储的目标数据。
可选地,在根据本发明的数据保护的方法中,所述目标数据分段存储在计算设备中,所述返回存储的目标数据的步骤包括:获取分段存储的数据,并对获取的数据进行拼接,生成目标数据;返回生成的目标数据。
可选地,在根据本发明的数据保护的方法中,所述目标数据分段存储在应用代码、资源文件和动态链接库中。
可选地,在根据本发明的数据保护的方法中,所述计算设备中还存储***表,所述码表包括多个表项,每个表项包括主码与字符序列之间的对应关系,所有主码构成的字符范围与目标数据的字符范围相同,与主码关联的字符序列包括所述字符范围中、除了该主码之外的所有字符,所有字符序列构成一字符矩阵,该字符矩阵的任一列没有重复的字符,所述方法还包括,在将目标数据存储在计算设备之前,通过如下步骤对目标数据进行编码:对于目标数据中的每一个字符,获取该字符在目标数据中的位置号m;获取该字符在所述字符矩阵的第m列中的行号n,并将字符矩阵的第n行的主码作为该字符的编码后字符;将所有编码后字符串联在一起,得到编码后的目标数据。
可选地,在根据本发明的数据保护的方法中,返回存储的目标数据为解码后的目标数据,所述方法还包括对编码后的目标数据进行解码的步骤:对于编码后的目标数据中的每一个字符,从码表中获取该字符关联的字符序列;根据该字符在编码后的目标数据中的位置,在所述字符序列中找到相应位置的字符,作为解码后字符;将所有解码后字符串联在一起,得到解码后的目标数据。
可选地,在根据本发明的数据保护的方法中,所述判断应用是否处于动态调试模式的步骤包括:分别获取应用运行的开始和结束的***时间,并计算这两个***时间的差值;若***时间的差值大于预定的阈值,则判断所述应用处于动态调试模式中,否则判断所述应用不处于动态调试模式中。
可选地,在根据本发明的数据保护的方法中,所述判断应用是否处于动态调试模式的步骤包括:获取运行应用的进程的状态信息,所述状态信息包括TracerPid值;若所述TracerPid值不为零,则判断所述应用处于Ptrace动态调试中,若TracerPid值为零则判断所述应用不处于Ptrace动态调试中。
可选地,在根据本发明的数据保护的方法中,所述目标数据为应用的密钥。
根据本发明的另一个方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,其中,所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述程序指令包括用于执行上述方法的指令。
根据本发明的又一个方面,提供一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行上述的方法。
根据本发明的数据保护的方案,在接收到从应用发送的获取目标数据的请求时,判断应用是否处于动态调试模式,若是,则返回假数据以迷惑破译者,增加了在本地存储应用数据的安全性。
另外,通过采用一种新的加密算法对于需要保护的数据进行加密,从而进一步增加在本地存储应用数据的安全性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明的一个应用场景的示意图;
图2示出了根据本发明一个实施例的计算设备200的结构图;
图3示出了根据本发明一个实施例的数据保护的方法300的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本发明的一个应用场景的示意图。如图1所示,在该应用场景中,应用(或者客户端)需要与服务器进行交互,例如,应用发送http请求到服务器,服务器根据http请求进行相应的处理后,发送http响应到应用。为了提高安全性,在应用向服务器发送HTTP请求时,会在请求头中携带一个约定好的密钥。只有在密钥正确的前提下,服务器才会响应于应用的请求,如果密钥不正确,则服务器会将应用的请求视为非法请求而不予响应。在应用向服务器发送请求前,先从本地获取存储在计算设备中的密钥,将调用获取密钥的应用程序接口放到请求头Headers中。因此如果破译者试图向服务器发送请求,但是由于无法获取存储在本地的密钥,不能将获取密钥的应用程序接口放到请求头,也就无法实现对应用的密钥破译。
在本地保存的应用的密钥通常通过加密算法进行加密,加密的逻辑可以通过多种方式被破译者获取,常见的破解方式可分为静态分析和动态调试。静态分析是通过反编译结合工具查看程序源码,结合应用操作分析加密的位置和方式。动态调试是指调试者利用集成环境(IDE)自带的调试器跟踪应用程序的运行,通过分析应用运行查看应用的状态进而分析出加密的逻辑。因此如果不能对通过动态调试的方式来获取应用密钥进行防范,保存在本地的密钥将会面临较大的风险。
针对上述问题,本发明在接收到获取本地存储数据的请求时,通过对动态调试进行识别,以及对应用签名和指令签名进行校验,对于正在调试或者签名检验不通过的应用,返回假数据以迷惑破译者,增加破译的难度,提高数据在本地存储的安全性。并且,将加密后的密文分段存储在应用程序安装包的不同部分,采用新的加密算法,进一步增加破译者获取密文的难度,保护本地存储数据的安全性。
根据上述获取本地存储的密钥的原理,以下描述本发明实施例的数据保护的方法。需要说明的是,本地存储的需要保护的数据除了是应用的密钥之外,还可以是其他数据,例如,通信录、备忘录、电子文件等,本发明对需要保护的目标数据不做限制。
本发明实施例的数据保护的方法可以在计算设备中执行。图2示出了根据本发明一个实施例的计算设备200的结构图。如图3所示,在基本的配置202中,计算设备200典型地包括***存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和***存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,***存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。***存储器206可以包括操作***220、一个或者多个应用222以及程序数据224。应用222实际上是多条程序指令,其用于指示处理器204执行相应的操作。在一些实施方式中,应用222可以布置为在操作***上使得处理器204利用程序数据224进行操作。程序数据224包括指令,在根据本发明的计算设备200中,程序数据224包含用于执行数据保护的方法300的指令。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
本发明实施例的数据保护的方法可以在如图2所示的计算设备中执行。图3示出了根据本发明一个实施例的数据保护的方法300的流程图,在一种实现方式中,方法300由计算设备的操作***执行。参照图3,方法300始于步骤S310,在步骤S310中,接收从应用发送的获取目标数据的请求。这里,目标数据可以是应用的密钥,也可以是其他需要受保护的数据。通常,操作***为应用提供应用编程接口(API),应用可以通过调用该应用编程接口来请求获取目标数据。
当操作***接收到从应用发送的目标数据的请求时,通过调用所述API中获取目标数据的方法,获得存储在本地的目标数据。应用在执行环境中运行,请求获取目标数据可以针对本地存储的目标数据,或者针对某些其他服务,这些服务导致需要本地存储的数据,本发明对此不做限制。
根据本发明的一种实施方式,目标数据以加密方式存储在本地,即将目标数据编码后得到密文存储在本地。本发明实施例提供一种新的加密(编码)方式,该加密方式是根据码表对目标数据进行编码,将字符在目标数据中的位置信息作为加密规则。通过这种方式可以提高破译者破译密码的难度。其中,码表包括有多个表项,每个表项包括主码与字符序列之间的对应关系(码表中的主码是唯一的,即不同的表项所包括的主码各不相同),所有主码构成的字符范围与目标数据的字符范围相同。所谓目标数据的字符范围是指,目标数据的每一位,只能取自该字符范围内的某个字符;
同时,与主码关联的字符序列,包括字符范围中除了该主码之外的所有字符。码表的所有字符序列构成一字符矩阵,该字符矩阵的任一列没有重复的字符。
实现该码表的方式有多种,其中的一种方式为循环移位的方式。例如,目标数据的字符范围为{a,b,c,d,e},则可以生成如下的码表1。
码表1:a(b c d e)
b(c d e a)
c(d e a b)
d(e a b c)
e(a b c d)
码表的每一行都是一个表项,且每个表项都表示的是主码与其相应的字符序列的对应关系。如a(b c d e)表示的就是主码a和其相应的字符序列(b c d e)的对应关系。该字符序列不包含主码a,其包含a-e中除a以外的所有字符。
所有与主码对应的字符序列构成的字符矩阵,如字符矩阵1。字符矩阵1的矩阵是通过循环移位方式生成的。但只要满足字符矩阵的任一列没有重复的字符的要求,字符矩阵也可以不是通过循环移位的方式获得。本发明对字符矩阵的生成方式不做限制。
根据码表对目标数据编码生成密文的步骤如下:
首先,对于目标数据中的每一个字符,获取该字符在目标数据中的位置号m,即该字符在目标数据的第几位;
然后,获取该字符在字符矩阵的第m列中的行号n,并将字符矩阵的第n行的主码作为该字符的编码后字符;
最后,对目标数据中的每个字符按照位置顺序进行上述处理后,将所有编码后字符串联(即按照顺序连接)在一起,得到编码后的目标数据。
例如对于待编码的目标数据ecea,第一个字符e在目标数据中的位置号码为1,在第1列中e是字符矩阵的第4行,第4行所对应的是主码是d,因此编码后的目标数据的第一个字符即为d;第二个字符c在目标数据中的位置号码为2,在第2列中c是字符矩阵的第1行,第1行所对应的是主码是a,因此编码后的目标数据的第二个字符即为a;第三个字符e在目标数据中的位置号码为3,在第3列中e是字符矩阵的第2行,第1行所对应的是主码是b,因此编码后的目标数据的第三个字符即为b,同理编码后的目标数据的第四个字符为b。最后,将所有编码后字符串联在一起,即可得到编码后的密文为dabb。
根据本发明的一种实施方式,可以将密文分段存储在计算设备中,具体地,将密文分段存储在本地的应用安装包的不同部分。以Android***为例,可以将密文存储在应用代码、资源文件、so库中,其中由于so库中的so文件(即动态链接库),是C或C++编译的,因此更加其本身被破译的难度会更高,提高了本地数据存储的安全性。
将密文分段存储的方式,例如将编码后的密文分成四段分别是d、a、b、b,把d存放在应用的代码中,把a存放在资源文件中,把字符bb存放在so库中,其中b存放在so库中的位置1,b存放在so库中的位置2,这样可以通过将密文分段存储,增加破译者获取密文的难度,获得更强的加密效果,保护数据在本地的存储。
***接收到从应用发送的获取目标数据的请求,该目标数据可以是编码后的密文。首先定义请求native层的应用程序接口(API),定义的应用程序接口在被调用的时候会加载获取native层获取密文的方法,从而能够在后续步骤中获取到存储在本地的密文。定义native层的应用程序接口(API)的伪代码可以如下:
在随后的步骤S320中,判断应用是否处于动态调试模式,如果是动态调试模式,则返回假数据。
如上文所述的,通过调试工具对于运行中的应用进行动态调试,查看应用运行每一步的状态从而分析出应用加密的逻辑,是对应用安全性造成风险很重要的因素。根据本发明的一个实施方式,通过判断应用运行的时间,是否大于预定的条件,即应用开始运行的***时间和应用运行结束时的差值大于预定的阈值,则判断应用处于动态调试模式中,否则判断所述应用并非处于动态调试模式中。其中,根据运行中的应用的运行时间检测的动态调试模式是单步调试模式,代码判断应用是否处于单步调试模式的伪代码可以如下:
根据本发明的另一种实施方式,还可以通过检测procfs文件***变化判断应用是否处于调试模式中。procfs是进程文件***(file system)的缩写,包含一个启动时动态生成的文件***,用于通过内核访问进程信息。通过procfs文件***,进程的状态信息可以被反馈给用户空间,由于动态调试会导致进程的状态发生变化,因此可以通过判断进程的状态信息判断应用是否处于调试模式。根据本发明的一个实施例,当使用Ptrace方式跟踪一个进程时,目标进程会记录自己被谁跟踪,可以通过查看/proc/pid/status看到TracerPid的数值,当应用并未处于动态调试时,TracerPid的数值为0,则判断所述应用并非处于Ptrace动态调试中,若所述TracerPid值不为0,则判断所述应用处于Ptrace动态调试中。判断应用是否处于处于Ptrace模式的伪代码可以如下:
通过以上两种不同的实施方式,判断正在运行中的应用是否处于调试模式中,如果是,则***返回与目标数据长度相同的假数据。这样,对于采用调试方式试图破解密钥的破译者,会将假数据当做密钥,从而停止继续破译。也就是说,本发明的方法能够起到迷惑破译者的作用。在这里,假数据可以是与密钥长度相同的字符序列,这样可以增加假数据的迷惑性。假数据的字符范围可以在码表之内,也可以在码表之外,假数据可以是固定不变的,也可以根据不同的请求发生变化,本发明对假数据不做限制。
在随后的步骤S330中,如果应用不处于动态调试模式中,则对应用签名进行校验,如果校验失败,则返回假数据。返回假数据的步骤和步骤S320中的相同,在此不做赘述。当应用不处于动态调试模式时,则对应用进行应用签名校验,通过校验应用的签名是否与官方签名一致,一致的话才会将存储在本地不同地方的密文的字符片段进行拼接返回(伪代码中的mm"miwen"+xx),如果不一致的话则返回假数据(伪代码中的nn"jiashuju")。校验应用签名的伪代码可以如下,其中x为存储在不同位置的密文的字符,y为应用签名:
在随后的步骤S340中,如果签名校验通过,则返回存储的目标数据。当应用签名校验通过时,获取分段存储的密文并组装起来(伪代码中的mm"miwen"+xx)。然后,根据码表,对密文进行解码,得到解码后的目标数据。
解码的具体步骤如下:
首先,对于编码后的密文中的每一个字符,将字符作为主码,从码表中获取该主码关联的字符序列;
然后,根据该字符在编码后的目标数据中的位置(即该字符是目标数据的第几位的字符),在所述字符序列中找到相应位置的字符,作为解码后字符;
最后,将所有解码后字符串联在一起,得到解码后的目标数据。
例如,对编码后的目标数据dabb进行解码的过程为:根据字符在密文中的位置,结合码表1的主码和字符序列的对应关系,在字符序列中找到字符在编码后的位置的对应字符,比如d对应的字符序列为(e a b c),由于d在密文中的位置为第一个,因此其对应的字符序列的第一个字符c为解码后的第一个字符,a对应的字符序列为(b c d e),由于a在密文中的位置为第二个,因此其对应的字符序列的第二个字符c为解码后的第二个字符,b对应的字符序列为(c d e a),由于b在密文中的位置为第三个和第四个,因此其对应的字符序列的第三个字符e第四个字符a分别为解码后的第三个和第四个字符,通过将所有解码后字符串联在一起,得到解码后的目标数据ecea。
本发明的技术方案,在接收到获取本地存储数据的请求时,通过对动态调试进行识别,以及对应用签名和指令签名进行校验,对于正在调试或者签名检验不通过的应用,返回假数据以迷惑破译者,增加破译的难度,提高数据在本地存储的安全性。并且,将加密后的密文分段存储在应用程序安装包的不同部分,采用新的加密算法,进一步增加破译者获取密文的难度,保护本地存储数据的安全性。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的镜像源管理方法或资源下载方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
Claims (8)
1.一种数据保护的方法,在计算设备中执行,所述计算设备存储有应用的目标数据,所述计算设备中还存储***表,所述码表包括多个表项,每个表项包括主码与字符序列之间的对应关系,所有主码构成的字符范围与目标数据的字符范围相同,与主码关联的字符序列包括所述字符范围中除了该主码之外的所有字符,所有字符序列构成一字符矩阵,该字符矩阵的任一列没有重复的字符,所述的方法包括:
接收从应用发送的获取目标数据的请求,其中,在将所述目标数据存储在计算设备之前,对目标数据进行编码,具体为:
对于目标数据中的每一个字符,获取该字符在目标数据中的位置号m;
获取该字符在所述字符矩阵的第m列中的行号n,并将字符矩阵的第n行的主码作为该字符的编码后字符;
将所有编码后字符串联在一起,得到编码后的目标数据,所述目标数据分段存储在计算设备中;
判断应用是否处于动态调试模式,如果是动态调试模式,则返回假数据,所述假数据是不同于目标数据的数据,所述假数据与所述目标数据的具有相同的字符序列长度;
如果不是动态调试模式,则对应用签名进行校验,如果校验失败,则返回假数据;
如果校验通过,则返回存储的目标数据,其中,所述目标数据分段存储在计算设备中,所述返回存储的目标数据的步骤包括:
获取分段存储的数据,并对获取的数据进行拼接,生成目标数据;
返回生成的目标数据。
2.如权利要求1所述的方法,其中,所述目标数据分段存储在应用代码、资源文件和动态链接库中。
3.如权利要求2所述的方法,其中,返回存储的目标数据为解码后的目标数据,所述方法还包括对编码后的目标数据进行解码的步骤:
对于编码后的目标数据中的每一个字符,从码表中获取该字符关联的字符序列;
根据该字符在编码后的目标数据中的位置,在所述字符序列中找到相应位置的字符,作为解码后字符;
将所有解码后字符串联在一起,得到解码后的目标数据。
4.如权利要求1所述的方法,其中,所述判断应用是否处于动态调试模式的步骤包括:
分别获取应用运行的开始和结束的***时间,并计算这两个***时间的差值;
若***时间的差值大于预定的阈值,则判断所述应用处于动态调试模式中,否则判断所述应用不处于动态调试模式中。
5.如权利要求1所述的方法,其中,所述判断应用是否处于动态调试模式的步骤包括:
获取运行应用的进程的状态信息,所述状态信息包括TracerPid值;
若所述TracerPid值不为零,则判断所述应用处于Ptrace动态调试中,若TracerPid值为零则判断所述应用不处于Ptrace动态调试中。
6.如权利要求1-5中任一项所述的方法,其中,所述目标数据为应用的密钥。
7.一种计算设备,包括:
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求1-6所述的方法中的任一方法的指令。
8.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当被计算设备执行时,使得所述计算设备执行根据权利要求1-6所述的方法中的任一方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910485699.8A CN110210211B (zh) | 2019-06-05 | 2019-06-05 | 一种数据保护的方法和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910485699.8A CN110210211B (zh) | 2019-06-05 | 2019-06-05 | 一种数据保护的方法和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110210211A CN110210211A (zh) | 2019-09-06 |
CN110210211B true CN110210211B (zh) | 2021-09-07 |
Family
ID=67791050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910485699.8A Expired - Fee Related CN110210211B (zh) | 2019-06-05 | 2019-06-05 | 一种数据保护的方法和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110210211B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765470A (zh) * | 2019-09-19 | 2020-02-07 | 平安科技(深圳)有限公司 | 安全键盘实现方法、装置、计算机设备及存储介质 |
US11775681B2 (en) | 2020-09-01 | 2023-10-03 | Microsoft Technology Licensing, Llc | Enforcement flow for pipelines that include entitlements |
US11361106B2 (en) | 2020-09-01 | 2022-06-14 | Microsoft Technology Licensing, Llc | Chaining, triggering, and enforcing entitlements |
US20230281109A1 (en) * | 2022-03-01 | 2023-09-07 | Microsoft Technology Licensing, Llc | Debugging data privacy pipelines using sample data |
US11922145B2 (en) | 2022-03-01 | 2024-03-05 | Microsoft Technology Licensing, Llc | Initiating data privacy pipelines using reusable templates |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105373734A (zh) * | 2014-09-01 | 2016-03-02 | 中兴通讯股份有限公司 | 应用数据的保护方法及装置 |
CN107038373A (zh) * | 2017-04-28 | 2017-08-11 | 北京洋浦伟业科技发展有限公司 | 一种进程调试检测方法及装置 |
CN107103214A (zh) * | 2017-04-06 | 2017-08-29 | 海信集团有限公司 | 一种应用于Android***的应用程序反调试方法及装置 |
CN107169324A (zh) * | 2017-05-12 | 2017-09-15 | 北京理工大学 | 一种基于动态加解密的Android应用加固方法 |
CN107729766A (zh) * | 2017-09-30 | 2018-02-23 | 中国联合网络通信集团有限公司 | 数据存储方法、数据读取方法及其*** |
US10032026B1 (en) * | 2013-07-30 | 2018-07-24 | Palo Alto Networks, Inc. | Static and dynamic security analysis of apps for mobile devices |
-
2019
- 2019-06-05 CN CN201910485699.8A patent/CN110210211B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10032026B1 (en) * | 2013-07-30 | 2018-07-24 | Palo Alto Networks, Inc. | Static and dynamic security analysis of apps for mobile devices |
CN105373734A (zh) * | 2014-09-01 | 2016-03-02 | 中兴通讯股份有限公司 | 应用数据的保护方法及装置 |
CN107103214A (zh) * | 2017-04-06 | 2017-08-29 | 海信集团有限公司 | 一种应用于Android***的应用程序反调试方法及装置 |
CN107038373A (zh) * | 2017-04-28 | 2017-08-11 | 北京洋浦伟业科技发展有限公司 | 一种进程调试检测方法及装置 |
CN107169324A (zh) * | 2017-05-12 | 2017-09-15 | 北京理工大学 | 一种基于动态加解密的Android应用加固方法 |
CN107729766A (zh) * | 2017-09-30 | 2018-02-23 | 中国联合网络通信集团有限公司 | 数据存储方法、数据读取方法及其*** |
Also Published As
Publication number | Publication date |
---|---|
CN110210211A (zh) | 2019-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110210211B (zh) | 一种数据保护的方法和计算设备 | |
CN111052115B (zh) | 取决于调用路径的认证的数据处理装置和方法 | |
US11281769B2 (en) | Software integrity verification | |
EP2510474B1 (en) | Steganographic messaging system using code invariants | |
US9602289B2 (en) | Steganographic embedding of executable code | |
US20170116410A1 (en) | Software protection | |
JP7154365B2 (ja) | ソフトウェアコードをセキュアにするための方法 | |
US9892661B2 (en) | Steganographic embedding of hidden payload | |
US7493483B2 (en) | Method to prevent vulnerability to virus and worm attacks through instruction remapping | |
TW201227394A (en) | Security through opcode randomization | |
US10885516B2 (en) | Secure validation using hardware security modules | |
JP6488954B2 (ja) | 暗号データ処理方法、暗号データ処理システム、暗号データ処理装置および暗号データ処理プログラム | |
US11256786B2 (en) | Method to secure a software code | |
Kang et al. | Softmark: software watermarking via a binary function relocation | |
JP3970856B2 (ja) | プログラム難読化装置、プログラム配布システム、コンピュータプログラム | |
US10552602B2 (en) | System and method for protecting a device against attacks on processing flow using a code pointer complement | |
US12045338B2 (en) | Method to secure a software code | |
EP2966587A1 (en) | Method of protecting software program by corrupting memory chunks, and device for implementing said method | |
WO2023156571A1 (en) | Protecting software | |
JP2009015434A (ja) | 携帯可能情報処理装置及び情報処理プログラム | |
KR20100022853A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210907 |
|
CF01 | Termination of patent right due to non-payment of annual fee |