CN104680042B - 一种虚拟机性能分析的方法及系统 - Google Patents

一种虚拟机性能分析的方法及系统 Download PDF

Info

Publication number
CN104680042B
CN104680042B CN201510104621.9A CN201510104621A CN104680042B CN 104680042 B CN104680042 B CN 104680042B CN 201510104621 A CN201510104621 A CN 201510104621A CN 104680042 B CN104680042 B CN 104680042B
Authority
CN
China
Prior art keywords
function
executable file
code
protected
need
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
Application number
CN201510104621.9A
Other languages
English (en)
Other versions
CN104680042A (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 Senseshield Technology Co Ltd
Original Assignee
Beijing Senseshield 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 Senseshield Technology Co Ltd filed Critical Beijing Senseshield Technology Co Ltd
Priority to CN201510104621.9A priority Critical patent/CN104680042B/zh
Publication of CN104680042A publication Critical patent/CN104680042A/zh
Application granted granted Critical
Publication of CN104680042B publication Critical patent/CN104680042B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种对虚拟机性能分析的方法及系统。该方法首先对于可执行文件中的选定的需要保护的函数中的每一个函数,在函数入口前插入代码1,并且在函数出口后插入代码2,然后对所述需要保护的函数进行虚拟化保护,并运行所述可执行文件,在运行所述可执行文件的过程中,通过代码1和代码2记录所述需要保护的函数中的各函数被调用的调用时间和/或调用次数,最后,根据所记录的所述需要保护的函数中的各函数的调用时间和/或调用次数来判定所述各函数中是否存在影响可执行文件的运行性能的函数。本发明还提供了一种对虚拟机性能分析的系统。

Description

一种虚拟机性能分析的方法及系统
技术领域
本发明涉及软件保护领域,特别涉及一种虚拟机性能分析的方法及系统。
背景技术
软件作为一种特殊的产品,由于其数字化的特征,从问世起就一直遭受盗版的困扰。盗版的存在不仅给软件开发者造成了巨大的损失,也极大地阻碍了整个软件行业的发展。目前可以采用虚拟机对软件进行保护,采用虚拟机对软件进行保护主要是对代码进行了虚拟化,使得代码的安全强度大大提高,但是该方法的缺点是会导致软件的执行效率下降,比如一些界面刷新函数虚拟化后可能会导致软件界面反映迟钝,而使用虚拟机的人员对于是哪些函数保护后导致运行变慢可能并不了解。
发明内容
有鉴于此,本发明公开了对虚拟机性能分析的方法及系统,以确定进行虚拟化保护后导致可执行文件运行效率降低的函数并将其从需要保护的函数列表中筛除。
为实现上述目的,本发明提供一种虚拟机性能分析的方法,所述方法的操作步骤如下:
S1:对于可执行文件中的选定的需要保护的函数中的每一个函数,在函数入口前插入代码1,并且在函数出口后插入代码2;
S2:对所述需要保护的函数进行虚拟化保护后,运行所述可执行文件;
S3:在运行所述可执行文件的过程中,通过代码1和代码2记录所述需要保护的函数中的各函数被调用的调用时间和/或调用次数;
S4:可执行文件退出运行,并根据所记录的所述需要保护的函数中的各函数的调用时间和/或调用次数来判定所述各函数中是否存在影响可执行文件的运行性能的函数,如果不存在则完成对所述可执行文件的保护,如果存在,则取消对所述影响可执行文件的运行性能的函数的虚拟化保护的方式重新在所述可执行文件中选定需要保护的函数来进行虚拟化保护。
优选地,判定所述各函数中是否存在影响可执行文件的运行性能的函数具体为,判定所述各函数中是否存在调用时间和/或调用次数超过预定数值的函数。
优选地,通过代码1和代码2记录所述需要保护的函数中的各函数的调用时间具体为,通过代码1和代码2记录所述各函数的开始调用时间和结束调用时间以计算出所述各函数的调用时间。
优选地,自动选择所述可执行文件中的预定位置的预定数目个函数作为所述选定的需要保护的函数,或手动选择所述可执行文件中的函数作为所述选定的需要保护的函数。
优选地,在S2中的运行所述可执行文件之前还包括运行性能分析程序,所述性能分析程序在可执行文件运行期间通过代码1和代码2获取所述需要保护的函数中的各函数的调用次数和/或调用时间。
优选地,在所述需要保护的函数中的函数被调用时,代码1向所述性能分析程序发送第一消息,该第一消息包括被调用的函数的相对虚拟地址和当前时间;在所述被调用的函数结束被调用时,代码2向所述性能分析程序发送第二消息,所述第二消息包括被调用的函数的相对虚拟地址和当前时间。
优选地,所述第一消息及所述第二消息还包括被调用的函数的当前线程ID。
本发明还提供了一种虚拟机性能分析的系统,所述系统包括:函数保护模块,其配置为对于可执行文件中的选定的需要保护的函数中的每一个函数,在函数入口前插入代码1,并且在函数出口后插入代码2后,对所述需要保护的函数进行虚拟化保护;性能分析模块,其配置为在所述可执行文件的运行过程中,通过代码1和代码2记录所述需要保护的函数中的各函数被调用的调用时间和/或调用次数;性能判定模块,其配置为在可执行文件退出运行后,根据所述性能分析模块所记录的所述需要保护的函数中的各函数的调用时间和/或调用次数来判定该各函数中是否存在影响可执行文件的运行性能的函数,如果不存在则完成对所述可执行文件的保护,如果存在,则向所述函数保护模块发送所述影响可执行文件的运行性能的函数的相关信息,其中,所述函数保护模块还配置为在接收到来自所述性能判定模块的所述相关信息时,取消对所述影响可执行文件的运行性能的函数的虚拟化保护的方式重新在所述可执行文件中选定需要保护的函数来进行虚拟化保护。
优选地,所述性能判定模块具体配置为判定所述各函数中是否存在调用时间和/或调用次数超过预定数值的函数。
优选地,所述性能分析模块具体配置为通过代码1和代码2记录所述各函数的开始调用时间和结束调用时间以计算出所述各函数的调用时间。
优选地,所述函数保护模块还配置为自动选择所述可执行文件中的预定位置的预定数目个函数作为所述选定的需要保护的函数,或配置为将用户手动选择的所述可执行文件中的函数作为所述选定的需要保护的函数。
优选地,所述性能分析模块在所述可执行文件运行之前启动。
优选地,所述性能分析模块具体配置为,在所述需要保护的函数中的函数被调用时,接收代码1发送的第一消息,该第一消息包括被调用的函数的相对虚拟地址和当前时间;在所述被调用的函数结束被调用时,接收代码2发送的第二消息,所述第二消息包括被调用的函数的相对虚拟地址和当前时间。
优选地,所述第一消息及所述第二消息中还包括被调用的函数的当前线程ID。
本发明的有益效果在于:
1、本发明对采用虚拟化保护后的可执行文件中的函数的性能进行分析,在保证保护可靠性及安全性的同时,确定导致降低可执行文件运行速度,或影响可执行文件正常运行的函数,并将其从需要保护的函数列表中筛出,从而在不损失文件安全性的同时提高了文件运行的效率。
2、性能分析程序能够显示每一个函数的调用次数和调用时间,从而使用户直观的看到各个函数保护后的调用时间及调用次数。
附图说明
图1为根据本发明的一优选实施例的虚拟化保护过程的流程图。
图2为根据本发明的一优选实施例中的虚拟机性能分析系统的示意图。
具体实施方式
为使本发明的目的,技术方案及有益效果更加明确,下文将结合附图详细描述本发明。
在本发明的实施例中,以微软Windows系统下32位的PE(可移植的执行体,Portable Execute)文件(下文中称为可执行文件)为例,来描述本发明的实施例提供的虚拟机性能分析的具体过程。
PE文件是微软Windows操作系统上的程序文件(可能间接被执行,如DLL)。常见的PE文件包括EXE、DLL、OCX、SYS、COM文件等。
PE文件结构主要包括区段(Section)、区段表(Section Table)、PE头部(PEHeader)和DOS头部(DOS Header)。PE文件各个部分的详细定义可参阅微软windows系统的联机帮助,因此在说明书中将不做过多介绍。
图1为根据本发明的一优选实施例的虚拟化保护过程的流程图。
如图1所示,本实施例公开的虚拟机性能分析的方法的操作步骤如下:
S1:选择可执行文件,并选定可执行文件中需要保护的函数,对于每一个选定的需要保护的函数,在函数入口前插入代码1,并且在函数出口后插入代码2。
在S1之后,可以自动选择可执行文件中的预定位置的预定数目个函数作为选定的需要保护的函数,例如,默认选择可执行文件中的前50个函数,也可以手动选择可执行文件中的函数作为选定的需要保护的函数。
在对需要保护的函数进行虚拟化保护之前(即步骤S2之前),可以运行性能分析程序,其能够在可执行文件运行期间通过代码1和代码2获取需要保护的函数中的各函数的调用次数和/或调用时间。
S2:对需要保护的函数进行虚拟化保护,然后运行可执行文件;
S3:在运行可执行文件的过程中,通过代码1和代码2记录需要保护的函数中的各函数被调用的调用时间和/或调用次数;
在步骤S3中,当需要保护的函数中的函数被调用时,代码1可向性能分析程序发送第一消息,该第一消息可包括被调用的函数的相对虚拟地址和当前时间;在被调用的函数结束被调用时,代码2可向性能分析程序发送第二消息,第二消息可包括被调用的函数的相对虚拟地址和当前时间。此外,第一消息及第二消息还可包括被调用的函数的当前线程ID。
调用时间的具体计算方法为,通过代码1和代码2记录各函数的开始调用时间和结束调用时间,并且使用结束调用时间减去开始调用时间,从而计算出各函数的调用时间。
调用次数的具体计算方法将在下文的实例中描述。
假设可执行文件中有两个需要保护的函数,分别为函数A及函数B。当调用函数A时,代码1向性能分析程序发送关于函数A的第一消息,并且性能分析程序将函数A的调用次数加1。在函数A结束调用之前,如果函数B始终没有被调用,则函数A结束调用,并且向性能分析程序发送关于函数A的第二消息;如果在调用函数A的过程中函数B被调用,则代码1先向性能分析程序发送关于函数B的第一消息并且性能分析程序将函数B的调用次数加1,然后,代码2向性能分析程序发送关于在先结束调用的函数A的第二消息,最后再向性能分析程序发送关于在后结束调用的函数B的第二消息。
性能分析程序可以通过函数的相对虚拟地址来判断函数的地址,从而能够准确地定位每个所选定的需要保护的函数的地址。
此外,性能分析程序还可以通过函数的当前线程ID来判断位于多个线程中的函数的线程ID,例如,上文所述的函数A可以同时在多个线程中被多次调用,因此,当前线程ID可以有效地定位每个需要保护的函数的线程ID,以便于计算函数的调用次数。
进一步,为了在多个函数同时被调用的情况下准确判断调用各函数在每个线程中的运行顺序,所以第一消息和第二消息中可以都包括函数的相对虚拟地址及当前线程ID。
S4:可执行文件退出运行后,根据所记录的需要保护的函数中的各函数的调用时间和/或调用次数来判定各函数中是否存在影响可执行文件的运行性能的函数,如果不存在则完成对可执行文件的保护,如果存在,则取消对影响可执行文件的运行性能的函数的虚拟化保护的方式重新在可执行文件中选定需要保护的函数来进行虚拟化保护。
例如,可以判定各函数中是否存在调用时间和/或调用次数超过预定数值的函数。例如,自动取消对调用次数超过1000次或者单次调用时间超过100毫秒的函数的保护。此外,也可以手动取消函数的保护。
图2为根据本发明的一优选实施例中的虚拟机性能分析系统的示意图。
本发明的实施例还提供了一种虚拟机性能分析的系统,如图2所示,该系统包括:函数保护模块,其配置为对于可执行文件中的选定的需要保护的函数中的每一个函数,在函数入口前插入代码1,并且在函数出口后插入代码2后,对需要保护的函数进行虚拟化保护;性能分析模块,其配置为在可执行文件的运行过程中,通过代码1和代码2记录需要保护的函数中的各函数被调用的调用时间和/或调用次数;性能判定模块,其配置为在可执行文件退出运行后,根据性能分析模块所记录的需要保护的函数中的各函数的调用时间和/或调用次数来判定该各函数中是否存在影响可执行文件的运行性能的函数,如果不存在则完成对可执行文件的保护,如果存在,则向函数保护模块发送影响可执行文件的运行性能的函数的相关信息,其中,函数保护模块还配置为在接收到来自性能判定模块的相关信息时,取消对影响可执行文件的运行性能的函数的虚拟化保护的方式重新在可执行文件中选定需要保护的函数来进行虚拟化保护。
性能判定模块可以具体配置为判定各函数中是否存在调用时间和/或调用次数超过预定数值的函数。
性能分析模块可以在可执行文件运行之前启动。性能分析模块具体可以配置为通过代码1和代码2记录各函数的开始调用时间和结束调用时间以计算出各函数的调用时间。
函数保护模块还可以配置为自动选择可执行文件中的预定位置的预定数目个函数作为选定的需要保护的函数,或可以配置为将用户手动选择的可执行文件中的函数作为选定的需要保护的函数。
性能分析模块可以具体配置为,在需要保护的函数中的函数被调用时,接收代码1发送的第一消息,该第一消息包括被调用的函数的相对虚拟地址和当前时间;在被调用的函数结束被调用时,接收代码2发送的第二消息,第二消息包括被调用的函数的相对虚拟地址和当前时间。
第一消息及第二消息中还可以包括被调用的函数的当前线程ID。
本发明具有以下的有益效果:
1、本发明对采用虚拟化保护后的可执行文件中的函数的性能进行分析,在保证保护可靠性及安全性的同时,将导致降低可执行文件运行速度,或影响可执行文件正常运行的函数从需要保护的函数列表中筛出,从而在不损失文件安全性的同时提高了文件运行的效率。
2、性能分析程序能够显示每一个函数的调用次数和调用时间,从而使用户直观的看到各个函数保护后的调用时间及调用次数。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。

Claims (14)

1.一种虚拟机性能分析的方法,其特征在于,所述方法的操作步骤如下:
S1:对于可执行文件中的选定的需要保护的函数中的每一个函数,在函数入口前插入代码1,并且在函数出口后插入代码2;
S2:对所述需要保护的函数进行虚拟化保护后,运行所述可执行文件;
S3:在运行所述可执行文件的过程中,通过代码1和代码2记录所述需要保护的函数中的各函数被调用的调用时间和/或调用次数;
S4:可执行文件退出运行,并根据所记录的所述需要保护的函数中的各函数的调用时间和/或调用次数来判定所述各函数中是否存在影响可执行文件的运行性能的函数,如果不存在则完成对所述可执行文件的保护,如果存在,则取消对所述影响可执行文件的运行性能的函数的虚拟化保护的方式重新在所述可执行文件中选定需要保护的函数来进行虚拟化保护。
2.根据权利要求1所述的方法,其特征在于,判定所述各函数中是否存在影响可执行文件的运行性能的函数具体为,判定所述各函数中是否存在调用时间和/或调用次数超过预定数值的函数。
3.根据权利要求1所述的方法,其特征在于,通过代码1和代码2记录所述需要保护的函数中的各函数的调用时间具体为,通过代码1和代码2记录所述各函数的开始调用时间和结束调用时间以计算出所述各函数的调用时间。
4.根据权利要求1所述的方法,其特征在于,自动选择所述可执行文件中的预定位置的预定数目个函数作为所述选定的需要保护的函数,或手动选择所述可执行文件中的函数作为所述选定的需要保护的函数。
5.根据权利要求1所述的方法,其特征在于,在S2中的运行所述可执行文件之前还包括运行性能分析程序,所述性能分析程序在可执行文件运行期间通过代码1和代码2获取所述需要保护的函数中的各函数的调用次数和/或调用时间。
6.根据权利要求5所述的方法,其特征在于,
在所述需要保护的函数中的函数被调用时,代码1向所述性能分析程序发送第一消息,该第一消息包括被调用的函数的相对虚拟地址和当前时间;
在所述被调用的函数结束被调用时,代码2向所述性能分析程序发送第二消息,所述第二消息包括被调用的函数的相对虚拟地址和当前时间。
7.根据权利要求6所述的方法,其特征在于,所述第一消息及所述第二消息还包括被调用的函数的当前线程ID。
8.一种虚拟机性能分析的系统,所述系统包括:
函数保护模块,其配置为对于可执行文件中的选定的需要保护的函数中的每一个函数,在函数入口前插入代码1,并且在函数出口后插入代码2后,对所述需要保护的函数进行虚拟化保护;
性能分析模块,其配置为在所述可执行文件的运行过程中,通过代码1和代码2记录所述需要保护的函数中的各函数被调用的调用时间和/或调用次数;
性能判定模块,其配置为在可执行文件退出运行后,根据所述性能分析模块所记录的所述需要保护的函数中的各函数的调用时间和/或调用次数来判定该各函数中是否存在影响可执行文件的运行性能的函数,如果不存在则完成对所述可执行文件的保护,如果存在,则向所述函数保护模块发送所述影响可执行文件的运行性能的函数的相关信息,
其中,所述函数保护模块还配置为在接收到来自所述性能判定模块的所述相关信息时,取消对所述影响可执行文件的运行性能的函数的虚拟化保护的方式重新在所述可执行文件中选定需要保护的函数来进行虚拟化保护。
9.根据权利要求8所述的虚拟机性能分析的系统,其特征在于,所述性能判定模块具体配置为判定所述各函数中是否存在调用时间和/或调用次数超过预定数值的函数。
10.根据权利要求8所述的虚拟机性能分析的系统,其特征在于,所述性能分析模块具体配置为通过代码1和代码2记录所述各函数的开始调用时间和结束调用时间以计算出所述各函数的调用时间。
11.根据权利要求8所述的虚拟机性能分析的系统,其特征在于,所述函数保护模块还配置为自动选择所述可执行文件中的预定位置的预定数目个函数作为所述选定的需要保护的函数,或配置为将用户手动选择的所述可执行文件中的函数作为所述选定的需要保护的函数。
12.根据权利要求8所述的虚拟机性能分析的系统,其特征在于,所述性能分析模块在所述可执行文件运行之前启动。
13.根据权利要求8所述的虚拟机性能分析的系统,其特征在于,所述性能分析模块具体配置为,
在所述需要保护的函数中的函数被调用时,接收代码1发送的第一消息,该第一消息包括被调用的函数的相对虚拟地址和当前时间;
在所述被调用的函数结束被调用时,接收代码2发送的第二消息,所述第二消息包括被调用的函数的相对虚拟地址和当前时间。
14.根据权利要求13所述的虚拟机性能分析的系统,其特征在于,所述第一消息及所述第二消息中还包括被调用的函数的当前线程ID。
CN201510104621.9A 2015-03-10 2015-03-10 一种虚拟机性能分析的方法及系统 Active CN104680042B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510104621.9A CN104680042B (zh) 2015-03-10 2015-03-10 一种虚拟机性能分析的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510104621.9A CN104680042B (zh) 2015-03-10 2015-03-10 一种虚拟机性能分析的方法及系统

Publications (2)

Publication Number Publication Date
CN104680042A CN104680042A (zh) 2015-06-03
CN104680042B true CN104680042B (zh) 2017-10-24

Family

ID=53315074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510104621.9A Active CN104680042B (zh) 2015-03-10 2015-03-10 一种虚拟机性能分析的方法及系统

Country Status (1)

Country Link
CN (1) CN104680042B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550104B (zh) * 2015-12-08 2018-04-20 北京奇虎科技有限公司 应用程序性能测试方法及装置
CN107480029B (zh) * 2017-08-02 2019-02-15 北京深思数盾科技股份有限公司 一种函数调用时间的监控方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101882113A (zh) * 2009-05-05 2010-11-10 北京大学 一种基于客户操作系统内核代码替换的内存虚拟化方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032108B2 (en) * 2003-05-02 2006-04-18 Egenera, Inc. System and method for virtualizing basic input/output system (BIOS) including BIOS run time services
US8584109B2 (en) * 2006-10-27 2013-11-12 Microsoft Corporation Virtualization for diversified tamper resistance
CN101539868B (zh) * 2009-04-10 2010-12-08 北京大学 一种虚拟机管理器的客户操作系统内核代码动态替换方法
CN102346710B (zh) * 2011-10-13 2015-04-29 北京航空航天大学 一种基于动态插桩技术的数据包处理时延分析方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101882113A (zh) * 2009-05-05 2010-11-10 北京大学 一种基于客户操作系统内核代码替换的内存虚拟化方法

Also Published As

Publication number Publication date
CN104680042A (zh) 2015-06-03

Similar Documents

Publication Publication Date Title
US10698726B2 (en) Techniques for switching threads within routes
US7562029B2 (en) Integrated project management and development environment for determining the time expended on project tasks
US8566796B2 (en) Systems and methods for interactions with software probes
US20100146425A1 (en) Drag and drop target indication in a graphical user interface
US20070169004A1 (en) Automatic failure analysis of code development options
US8875165B2 (en) Computing device having a DLL injection function, and DLL injection method
CN106547698A (zh) 覆盖率数据的处理方法、装置和服务器
CN102902515A (zh) 一种软件窗口的处理方法和装置
CN105912375A (zh) 将应用程序部署至服务器的方法及装置
CN105930739A (zh) 一种防止文件被删除的方法及终端
CN104680042B (zh) 一种虚拟机性能分析的方法及系统
CN103514405B (zh) 一种缓冲区溢出的检测方法及系统
CN107832613A (zh) 一种计算机病毒处理方法
CN110414237A (zh) 一种基于终端设备的自动化基线检查方法
US20090199126A1 (en) Method for automatically organizing toolbars for a software application
US8418122B2 (en) Incorporating functionality from an object file into an existing binary file
US10394702B2 (en) Blocking a selected port prior to installation of an application
CN108242021A (zh) 一种账务数据的处理系统、方法及装置
US7293266B2 (en) Plurality of loader modules with a CO- ordinator module where selected loader module executes and each loader module execute
KR20180058579A (ko) 액티비티 스택에 기반한 테스트 시나리오 생성 방법
CN105809027B (zh) 应用程序的权限控制方法及装置
CN102970298A (zh) 一种防止泄密的方法、设备及系统
CN107798244A (zh) 一种检测远程代码执行漏洞的方法及装置
US6983453B2 (en) Method and system for obtaining performance data from software compiled with or without trace hooks
CN107451435B (zh) 一种硬件加密机的管控方法、管控机及管控系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant after: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

Address before: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant before: BEIJING SHENSI SHUDUN TECHNOLOGY Co.,Ltd.

COR Change of bibliographic data
CB02 Change of applicant information

Address after: 100193 Beijing, Haidian District, East West Road, No. 10, East Hospital, building No. 5, floor 5, layer 510

Applicant after: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

Address before: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee after: Beijing Shendun Technology Co.,Ltd.

Address before: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder