CN103699820B - 用于相对跳转指令的混淆方法 - Google Patents

用于相对跳转指令的混淆方法 Download PDF

Info

Publication number
CN103699820B
CN103699820B CN201310727164.XA CN201310727164A CN103699820B CN 103699820 B CN103699820 B CN 103699820B CN 201310727164 A CN201310727164 A CN 201310727164A CN 103699820 B CN103699820 B CN 103699820B
Authority
CN
China
Prior art keywords
code
jump
jump instruction
relatively
instruction
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
CN201310727164.XA
Other languages
English (en)
Other versions
CN103699820A (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 CN201310727164.XA priority Critical patent/CN103699820B/zh
Publication of CN103699820A publication Critical patent/CN103699820A/zh
Application granted granted Critical
Publication of CN103699820B publication Critical patent/CN103699820B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种用于相对跳转指令的混淆方法,包括以下步骤:S1:将模拟跳转的专用代码附加到目标代码的末尾处,并记录下模拟跳转的专用代码的地址;S2:分析目标代码,搜索其中的相对跳转指令;S3:每找到一条相对跳转指令,就记录下该相对跳转指令的跳转距离和跳转条件;S4:构造出一段中转代码,中转代码包括:第一代码至第五代码;S5:将中转代码附加到目标代码的末尾处,并记录中转代码的地址;S6:将原相对跳转指令替换为跳转到中转代码的地址的指令,并返回步骤S2继续搜索相对跳转指令,直至搜索完毕。本发明的用于相对跳转指令的混淆方法,以弥补上述现有技术中存在的流程混淆的条件跳转目的地为静态、明文等弱点。

Description

用于相对跳转指令的混淆方法
技术领域
本发明涉及软件保护领域,尤其涉及一种用于相对跳转指令的混淆方法。
背景技术
高级语言中的控制转移结构,在编译后的目标代码中往往是用CPU的相对跳转指令实现,例如:
If(var==0)
{
Statement1;
}
对应的目标代码类似于:
Cmp var,0//比较指令,执行后比较的结果放到CPU的"标志位"
Jnz label1//条件相对跳转指令,如果标志位中的“Zero标志”未//设置则跳转;操作数是跳转的距离(Label1的地址减去//下一条指令地址)。
Statement1//如果比较的结果是“相等”,则Zero标志被设置,不//跳转,执行statement1对应的目标代码。
Label1://编译器内部创建出的标记,用来标识if块结束的位置。
由于编译器对于高级语言的常用控制结构(if,for,while等)产生的目标代码的模式基本是固定的,现已有很多的自动分析工具,可以从目标代码中反推出高级语言代码的流程。因此软件保护工具一般都有“流程混淆”功能(针对控制转移的特别处理,将跳转的模式打乱,使之不容易被分析),常见的方法是:
将一个跳转指令,变换为多次跳转来实现,或者加入一些虚假的分支来进一步复杂化。例如:(下面这段目标代码和上面列举的目标代码,从功能上是一致的)
Jmp label3//无条件跳转
Label2:
Jnz label1//原来的条件跳转
Statement1
Jmp label1
Label3:
Jz label2//虚假分支
Jnz label2//无论“Zero标志”为真或假,都会从Label2继续执行
Label1:
对于这种混淆手段,也已经有了自动化的分析方法,其原理是:各种CPU的相对跳转指令,其跳转的目的地都是静态的(也就是说在编译时就确定好了,只分析目标代码就可得知,不需要运行)。因为这些指令的操作数都是“相对偏移”,也就是跳转的距离,它不受链接和重定位的影响。
从任意一个指定的起始地址,可以逐条分析遇到的所有相对跳转指令,遇到一个就从它的跳转目的地继续分析,遇到条件跳转就创建分支逐个分析(两种可能,跳转或不跳转),最终形成一个图状结构,得到所有可能的跳转路径,再排除掉无用跳转和虚假分支,如a...-b-c...化简为a...-c...。
发明内容
本发明所要解决的技术问题是,提供一种用于相对跳转指令的混淆方法,以弥补上述现有技术中存在的流程混淆的条件跳转目的地为静态、明文等弱点。
为了解决上述技术问题,本发明提供了一种用于相对跳转指令的混淆方法,包括以下步骤:
S1:将模拟跳转的专用代码附加到目标代码的末尾处,并记录下所述模拟跳转的专用代码的地址;
S2:分析所述目标代码,搜索其中的相对跳转指令;
S3:每找到一条相对跳转指令,就记录下该相对跳转指令的跳转距离和跳转条件;
S4:构造出一段中转代码,所述中转代码包括:
用于压栈保存若干个寄存器的第一代码;
用于将经加密的所述模拟跳转的专用代码的地址随机放入一个所述寄存器的第二代码,及相应的一段固定的用于在运行时解密的第三代码;
用于将所述跳转距离和跳转条件加密和/或变换压栈的第四代码和跳转到寄存器的第五代码;
S5:将所述中转代码附加到所述目标代码的末尾处,并记录所述中转代码的地址;
S6:将原相对跳转指令替换为跳转到所述中转代码的地址的指令,并返回步骤S2继续搜索相对跳转指令,直至搜索完毕。
作为优选,所述模拟跳转的专用代码为预设的一段固定的代码。
作为优选,所述步骤S1中,所述记录的方法为采用文件方式记录。
作为优选,所述步骤S1中,所述记录的方法为采用变量方式记录。
作为优选,所述步骤S2具体为:将目标代码反汇编,按指令名称搜索其中的相对跳转指令,所述相对跳转指令包括无条件跳转指令和条件跳转指令。
作为优选,所述步骤S2通过使用反汇编工具和指令名称列表自动实现。
作为优选,步骤S3中所述记录下该相对跳转指令的跳转距离和跳转条件的方法为:采用两个变量分别记录所述跳转距离和跳转条件。
作为优选,所述步骤S4中的构造所述中转代码的方式具体为使用所述步骤S1中记录的模拟跳转的专用代码的地址和所述步骤S3中记录的跳转距离和跳转条件自动构造得出所述中转代码。
作为优选,对所述跳转距离和跳转条件进行加密的方法包括对称或非对称加密算法、自定义变换加密方法,或者异或加密方法。
与现有技术相比,本发明的用于相对跳转指令的混淆方法的有益效果在于:将跳转的距离加密和/或变换后存储,然后用专用代码来模拟跳转,这段专用代码的地址存放在寄存器中,然后使用间接调用指令来调用,可以弥补现有技术中流程混淆的弱点,增加破解和分析的难度,提高安全性。
附图说明
图1为本发明的实施例的用于相对跳转指令的混淆方法的流程示意图;
图2为本发明的一个实施例的用于相对跳转指令的混淆方法的整体流程示意图;
图3采用本发明的一个实施例的用于相对跳转指令的混淆方法处理前后的代码示意图。
具体实施方式
下面结合附图和具体实施例对本发明的实施例的用于相对跳转指令的混淆方法作进一步详细描述,但不作为对本发明的限定。
图1为本发明的实施例的用于相对跳转指令的混淆方法的流程示意图。如图1所示,本发明的实施例的用于相对跳转指令的混淆方法,包括以下步骤:
S1:将模拟跳转的专用代码附加到目标代码的末尾处,并记录下模拟跳转的专用代码的地址;
S2:分析目标代码,搜索其中的相对跳转指令;
S3:每找到一条相对跳转指令,就记录下该相对跳转指令的跳转距离和跳转条件;
S4:构造出一段中转代码,中转代码包括:
用于压栈保存若干个寄存器的第一代码;
用于将经加密的模拟跳转的专用代码的地址随机放入一个寄存器的第二代码,及相应的一段固定的用于在运行时解密的第三代码;
用于将跳转距离和跳转条件加密和/或变换压栈的第四代码和跳转到寄存器的第五代码;
S5:将中转代码附加到目标代码的末尾处,并记录中转代码的地址;
S6:将原相对跳转指令替换为跳转到中转代码的地址的指令,并返回步骤S2继续搜索相对跳转指令,直至搜索完毕。
通过本发明的用于相对跳转指令的混淆方法,将跳转的距离加密和/或变换后存储,然后用专用代码来模拟跳转,即模拟跳转的专用代码,这段模拟跳转的专用代码的地址存放在寄存器中,然后使用间接调用指令来调用,可以弥补现有技术中流程混淆的弱点,增加破解和分析的难度,提高安全性。
作为优选地方案,模拟跳转的专用代码为预设的一段固定的代码。
作为一种改进,本发明的用于相对跳转指令的混淆方法的步骤S1中,记录的方法包括采用变量或者文件方式记录。
作为进一步的改进,本发明的用于相对跳转指令的混淆方法的步骤S2具体为:将目标代码反汇编,按指令名称搜索其中的相对跳转指令,相对跳转指令包括无条件跳转指令和条件跳转指令。按名称搜素的无条件跳转指令例如为jmp;条件跳转指令例如为jnz/jg等。作为进一步的优选方案,步骤S2可以使用任何现有技术中通用的反汇编工具和指令名称列表自动实现。
作为更进一步的改进,本发明的用于相对跳转指令的混淆方法的步骤S3中记录下该相对跳转指令的跳转距离和跳转条件的方法为:采用两个变量分别记录跳转距离和跳转条件。例如,变量一记录跳转距离,变量二记录跳转条件。
作为另一种更优选的实施方案,本发明的用于相对跳转指令的混淆方法的步骤S4中,构造中转代码的方式具体为使用步骤S1中记录的模拟跳转的专用代码的地址和步骤S3中记录的跳转距离和跳转条件自动构造得出中转代码。并且进一步的,将跳转距离和跳转条件加密的方法包括对称或非对称加密算法、自定义变换加密方法,或者异或加密方法。
运行时,先跳转到模拟跳转的专用代码,之后再根据事先保存的跳转距离和跳转条件,跳转回原指令指定的位置。由于使用了寄存器跳转,其跳转目的地(模拟跳转的专用代码)不在指令操作数中直接给出,且寄存器中的值是加密后的,运行时解密,因此只有运行时才可知。另外由于跳转距离和跳转条件都是加密存储的,运行时再解密,这些信息也只有运行时才能获得。
图2为本发明的一个实施例的用于相对跳转指令的混淆方法的整体流程示意图;图3采用本发明的一个实施例的用于相对跳转指令的混淆方法处理前后的代码示意图。为了更加清楚地说明本发明的技术方案以及有益效果,以下通过一个具体实施方式进行进一步的说明。
如图2和图3所示,在本实施方式中,假定有如下目标代码:
Cmp var,0
Jnz label1
Statement1
Label1:
预设的“模拟跳转专用代码”如下(这是一段编译好的目标代码,下面伪代码只是为说明它的逻辑):
Simulate_jmp(retAddr,encryptedCondition,encryptedDistance)
{
Pop Rs;//恢复中转代码中可能用到的所有寄存器。
Decrypt(encryptedCondition);
if(ConditionSatisfied)
jmp retAddr+Decrypt(encryptedDistance);
else
jmp retAddr;
}
根据本发明的一个实施例,一种相对跳转的混淆方法,方法具体步骤包括:
1.将上述模拟跳转的专用代码附加到目标代码的最后,并用变量Simulate_Jmp记录它的位置。
2.分析目标代码,按指令名称搜索目标代码中的相对跳转指令;
3.搜索到jnz label1指令,就用变量Distance和Condition分别记录它的跳转距离和跳转条件。本实施例中即为记录下跳转条件“!Zero”和跳转距离“label的偏移。
4.将变量Simulate_Jmp的位置、Distance和Condition分别加密得到
encryptedSimulate_jmp,encryptedDistance,encryptedCondition。
从若干寄存器中随机选出一个R1,构造如下的中转代码:
Push encryptedDistance
Push encryptedCondition
Push Rs;//保存中转代码中可能用到的所有寄存器。
Mov R1,encryptedSimulate_jmp//把模拟跳转的代码地址赋给寄存器
Decrypt(R1);
Jmp R1//跳转到Simulate_jmp
5.将上述中转代码附加到目标代码的最后(即附加到“模拟跳转的专用代码”之后),并用变量Stub记录它的位置。
6.将原相对跳转指令替换为跳转到上述中转代码位置(jmp stub),转步骤2继续搜索。
Cmp var,0
Jmp stub//将原Jnz label1替换为跳转到中转代
Statement1
Label1:
本发明的用于相对跳转指令的混淆方法的有益效果在于:将跳转的距离加密和/或变换后存储,然后用专用代码来模拟跳转,这段专用代码的地址存放在寄存器中,然后使用间接调用指令来调用,可以弥补现有技术中流程混淆的弱点,增加破解和分析的难度,提高安全性。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。

Claims (9)

1.一种用于相对跳转指令的混淆方法,其特征在于,包括以下步骤:
S1:将模拟跳转的专用代码附加到目标代码的末尾处,并记录下所述模拟跳转的专用代码的地址;
S2:分析所述目标代码,搜索其中的相对跳转指令;
S3:每找到一条相对跳转指令,就记录下该相对跳转指令的跳转距离和跳转条件;
S4:从若干个寄存器中随机选出一个第一寄存器,构造出一段中转代码,所述中转代码包括:
用于压栈保存若干个寄存器的第一代码;
用于将经加密的所述模拟跳转的专用代码的地址随机放入所述第一寄存器的第二代码,及相应的一段固定的用于在运行时对所述第一寄存器中存储的内容进行解密、并将解密的结果存储在所述第一寄存器中的第三代码;
用于将所述跳转距离和跳转条件加密和/或变换压栈的第四代码和跳转到所述第一寄存器的第五代码;
S5:将所述中转代码附加到所述模拟跳转的专用代码之后,并记录所述中转代码的地址;
S6:将原相对跳转指令替换为跳转到所述中转代码的地址的指令,并返回步骤S2继续搜索相对跳转指令,直至搜索完毕。
2.根据权利要求1所述的用于相对跳转指令的混淆方法,其特征在于,所述模拟跳转的专用代码为预设的一段固定的代码。
3.根据权利要求1所述的用于相对跳转指令的混淆方法,其特征在于,所述步骤S1中,所述记录的方法为采用文件方式记录。
4.根据权利要求1所述的用于相对跳转指令的混淆方法,其特征在于,所述步骤S1中,所述记录的方法为采用变量方式记录。
5.根据权利要求1所述的用于相对跳转指令的混淆方法,其特征在于,所述步骤S2具体为:将目标代码反汇编,按指令名称搜索其中的相对跳转指令,所述相对跳转指令包括无条件跳转指令和条件跳转指令。
6.根据权利要求5所述的用于相对跳转指令的混淆方法,其特征在于,所述步骤S2通过使用反汇编工具和指令名称列表自动实现。
7.根据权利要求1所述的用于相对跳转指令的混淆方法,其特征在于,步骤S3中所述记录下该相对跳转指令的跳转距离和跳转条件的方法为:采用两个变量分别记录所述跳转距离和跳转条件。
8.根据权利要求1所述的用于相对跳转指令的混淆方法,其特征在于,所述步骤S4中的构造所述中转代码的方式具体为使用所述步骤S1中记录的模拟跳转的专用代码的地址和所述步骤S3中记录的跳转距离和跳转条件自动构造得出所述中转代码。
9.根据权利要求8所述的用于相对跳转指令的混淆方法,其特征在于,对所述跳转距离和跳转条件进行加密的方法包括对称或非对称加密算法、自定义变换加密方法,或者异或加密方法。
CN201310727164.XA 2013-12-25 2013-12-25 用于相对跳转指令的混淆方法 Active CN103699820B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310727164.XA CN103699820B (zh) 2013-12-25 2013-12-25 用于相对跳转指令的混淆方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310727164.XA CN103699820B (zh) 2013-12-25 2013-12-25 用于相对跳转指令的混淆方法

Publications (2)

Publication Number Publication Date
CN103699820A CN103699820A (zh) 2014-04-02
CN103699820B true CN103699820B (zh) 2017-02-15

Family

ID=50361347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310727164.XA Active CN103699820B (zh) 2013-12-25 2013-12-25 用于相对跳转指令的混淆方法

Country Status (1)

Country Link
CN (1) CN103699820B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104318134B (zh) * 2014-11-05 2017-06-06 北京深思数盾科技股份有限公司 一种数据保护方法
CN106096338B (zh) * 2016-06-07 2018-11-23 西北大学 一种具有数据流混淆的虚拟化软件保护方法
CN107480479B (zh) * 2017-08-15 2020-08-07 北京奇虎科技有限公司 应用程序的加固方法及装置、计算设备、计算机存储介质
CN108021790B (zh) * 2017-12-28 2020-09-08 江苏通付盾信息安全技术有限公司 文件保护方法、装置、计算设备及计算机存储介质
CN110210190A (zh) * 2019-05-30 2019-09-06 中国科学院信息工程研究所 一种基于二次汇编的代码混淆方法
CN110717150A (zh) * 2019-10-08 2020-01-21 北京顶象技术有限公司 代码保护方法、装置、保护设备及可读存储介质
CN112528241B (zh) * 2020-11-27 2021-09-14 北京深思数盾科技股份有限公司 一种代码混淆方法、代码混淆器以及计算机可读存储介质
CN112905242B (zh) 2021-03-23 2022-12-06 浙江大华技术股份有限公司 分支路径跳转方法、装置、存储介质及电子装置
CN113569269B (zh) * 2021-09-23 2022-12-27 苏州浪潮智能科技有限公司 一种代码混淆的加密方法、装置、设备及可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101872393A (zh) * 2009-04-23 2010-10-27 李嘉 一种Java程序防篡改响应方案
CN102047261A (zh) * 2008-05-30 2011-05-04 Nxp股份有限公司 改编和执行计算机程序的方法及其计算机体系结构
CN102930204A (zh) * 2012-09-20 2013-02-13 北京深思洛克软件技术股份有限公司 基于软件保护装置的软件加壳方法、系统及软件保护方法
CN103065069A (zh) * 2013-01-28 2013-04-24 电子科技大学 一种基于壳技术的软件保护方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005001679B4 (de) * 2005-01-13 2008-11-13 Infineon Technologies Ag Mikroprozessor-Einrichtung, und Verfahren zur Branch-Prediktion für conditional Branch-Befehle in einer Mikroprozessor-Einrichtung

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102047261A (zh) * 2008-05-30 2011-05-04 Nxp股份有限公司 改编和执行计算机程序的方法及其计算机体系结构
CN101872393A (zh) * 2009-04-23 2010-10-27 李嘉 一种Java程序防篡改响应方案
CN102930204A (zh) * 2012-09-20 2013-02-13 北京深思洛克软件技术股份有限公司 基于软件保护装置的软件加壳方法、系统及软件保护方法
CN103065069A (zh) * 2013-01-28 2013-04-24 电子科技大学 一种基于壳技术的软件保护方法

Also Published As

Publication number Publication date
CN103699820A (zh) 2014-04-02

Similar Documents

Publication Publication Date Title
CN103699820B (zh) 用于相对跳转指令的混淆方法
Yadegari et al. Symbolic execution of obfuscated code
CN105787305B (zh) 一种抵抗符号执行和污点分析的软件保护方法
Xu et al. VMHunt: A verifiable approach to partially-virtualized binary code simplification
US20050028002A1 (en) Method and apparatus to detect malicious software
Yadegari et al. Bit-level taint analysis
TW200837604A (en) Obfuscating computer program code
CN105912305A (zh) 微处理器以及相关的操作方法、以及加密方法
Kuang et al. Enhance virtual-machine-based code obfuscation security through dynamic bytecode scheduling
CN107408072A (zh) 用于随机化计算机指令集、存储器寄存器和指针的方法和装置
CN101866406A (zh) 一种栈溢出攻击防御方法
Cojocar et al. Instruction duplication: Leaky and not too fault-tolerant!
CN110050258A (zh) 具有自动模块化功能的安全专区保护的应用程序盗版防止
CN105843776A (zh) 微处理器与其中安全执行指令的方法
CN106055343A (zh) 一种基于程序演进模型的目标代码逆向工程系统
Kollenda et al. An exploratory analysis of microcode as a building block for system defenses
Lin et al. A value set analysis refinement approach based on conditional merging and lazy constraint solving
Wang et al. OFFDTAN: a new approach of offline dynamic taint analysis for binaries
CN106126225A (zh) 一种基于程序演进模型的目标代码逆向工程方法
Lee et al. VODKA: Virtualization obfuscation using dynamic key approach
Joshi et al. Trading off a vulnerability: does software obfuscation increase the risk of rop attacks
Yujia et al. A new compile-time obfuscation scheme for software protection
Jeong et al. A data type inference method based on long short-term memory by improved feature for weakness analysis in binary code
Zhu et al. Determining the image base of arm firmware by matching function addresses
Coleman et al. Malware Detection by Merging 1D CNN and Bi-directional LSTM Utilizing Sequential Data

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
C14 Grant of patent or utility model
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