CN103177210A - 一种在Android中植入动态污点分析模块的方法 - Google Patents
一种在Android中植入动态污点分析模块的方法 Download PDFInfo
- Publication number
- CN103177210A CN103177210A CN201310112042XA CN201310112042A CN103177210A CN 103177210 A CN103177210 A CN 103177210A CN 201310112042X A CN201310112042X A CN 201310112042XA CN 201310112042 A CN201310112042 A CN 201310112042A CN 103177210 A CN103177210 A CN 103177210A
- Authority
- CN
- China
- Prior art keywords
- application program
- stain
- analysis module
- pitching pile
- android
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种在Android中植入动态污点分析模块的方法,该方法对Android***的***类库和应用程序进行静态插桩,在插桩后的应用程序装载过程中,通过重定向虚拟机启动函数的方法重构执行环境,使插桩后的应用程序能够引用插桩后的***类库,在插桩后的应用程序运行过程中,动态污点分析模块同步运行,实施动态污点跟踪分析。本发明无需修改Android***源代码和***架构、无需刷机及ROOT目标终端设备,便可以在Android***平台上植入具有污点跟踪功能的动态污点分析模块,对敏感信息操作进行监控分析。
Description
技术领域
本发明涉及一种动态污点分析方法,特别是关于一种可直接在Android中植入动态污点分析模块的方法。
背景技术
动态污点分析技术是一种有效而实用的信息流分析技术。利用动态污点分析技术可以较为准确地监控应用程序在运行过程中的信息流,例如跟踪是否有敏感数据从预设的污点源传播至预设的安全敏感操作点。动态污点分析技术通常由三个关键技术环节构成:污点引入、污点传播和污点检验。污点引入是指在从预设的污点源读取数据时,需要为所读取的数据设置相应的污点值。污点传播是指在应用程序处理污点数据的过程中,依据设定的策略传播污点值。污点检验是指在预设的安全敏感操作点检验所操作数据是否是污点数据。
动态污点分析技术现已被广泛用于未知漏洞检测、恶意软件分析、测试用例生成等安全研究领域。在Android***(安卓***)平台上,动态污点分析技术的一个典型应用场景就是对敏感信息操作的监控分析。在这一应用场景下,预设的污点源是用户的敏感信息,主要包括设备标识符、手机号码、地理位置、联系人列表和短信消息等;预设的安全敏感操作点是将信息传输出终端设备的操作,主要包括:网络通信、短信通讯等。通过动态污点分析技术实施对敏感信息操作的监控分析,能够有效地减轻敏感信息泄漏给用户带来的威胁和隐患。
现有的Android***平台上的动态污点分析技术通常采用动态插桩的方法,将具有污点跟踪功能的动态污点分析模块******虚拟机或模拟器中。这些方法需要修改Android***源代码或改变Android***架构,如需要配置繁琐的运行环境、编译源代码、刷机以及ROOT目标终端设备等操作,这些对于普通用户而言过于复杂和专业,从而导致动态污点分析技术难以应用在普通用户的Android***终端设备上。
发明内容
针对上述问题,本发明的目的是提供一种简单易行的在Android中植入动态污点分析模块的方法。
为了解决上述技术问题,本发明采取以下技术方案:一种在Android中植入动态污点分析模块的方法,包括以下步骤:1)对***类库进行静态插桩,将动态污点分析模块直接******类库文件中,生成插桩后的***类库;2)对应用程序进行静态插桩,将动态污点分析模块直接***应用程序文件中,生成插桩后的应用程序;3)在插桩后的应用程序装载过程中,通过重定向虚拟机启动函数的方法重构执行环境,使插桩后的应用程序能够引用插桩后的***类库;4)在插桩后的应用程序运行过程中,动态污点分析模块同步运行,实施动态污点跟踪分析,例如跟踪是否有敏感数据从预设的污点源传播至预设的安全敏感操作点。
上述步骤1)包括以下步骤:1.1)从Android***终端设备中导出***类库的压缩包和代码文件;1.2)在***类库的代码文件中直接***动态污点分析模块的代码文件;1.3)将***动态污点分析模块代码文件后的***类库的代码文件重新加入***类库的压缩包中;1.4)将***类库的压缩包重新导入Android***终端设备。
上述步骤2)包括以下步骤:2.1)解包应用程序;2.2)在解包后的应用程序的代码文件中直接***动态污点分析模块的代码文件;2.3)在应用程序的配置文件中声明动态污点分析模块的相关组件;2.4)将应用程序文件目录重新打包并签名,生成插桩后的应用程序。
上述步骤3)包括以下步骤:3.1)重定向虚拟机启动函数,添加设定的启动参数;3.2)重新启动虚拟机,指定经步骤1)插桩后的***类库所在路径作为***类的搜索路径;3.3)使用重新启动的虚拟机重新装载经步骤2)插桩后的应用程序,使重新装载的插桩后的应用程序能引用插桩后的***类库。
上述步骤4)包括以下步骤:4.1)当应用程序从预设的污点源读取数据时,为读取的数据设置相应的污点值;4.2)在应用程序处理污点数据的过程中,依据设定的策略传播污点值;4.3)当应用程序执行预设的安全敏感操作时,检验操作数据是否是污点数据。
本发明由于采取以上技术方案,其具有以下优点:1、本发明无需修改Android***源代码和***架构、无需刷机及ROOT目标终端设备,便可以在Android***平台上植入运行具有污点跟踪功能的动态污点分析模块。本发明可广泛用于各种Android***平台终端加载动态污点分析模块,对敏感信息操作进行监控分析,为用户提供强有力的隐私信息保护,大大减小隐私信息泄漏给用户造成的危害及损失。
附图说明
图1是本发明的流程示意图
图2是本发明对***类库进行静态插桩的流程示意图
图3是本发明对应用程序进行静态插桩的流程示意图
图4是本发明重构执行环境的流程示意图
图5是本发明实施动态污点跟踪分析的流程示意图
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
本发明的基本思想是对Android***的***类库和应用程序进行静态插桩,将具有污点跟踪功能的动态污点分析模块直接***到***类库文件和应用程序文件中,动态污点分析模块将在插桩后的应用程序和插桩后的***类库文件的运行过程中同步运行,以实现动态污点跟踪分析。
如图1所示,本发明包括以下步骤:
1)对***类库进行静态插桩,将动态污点分析模块直接******类库文件中,生成插桩后的***类库;
2)对应用程序进行静态插桩,将动态污点分析模块直接***应用程序文件中,生成插桩后的应用程序;
3)在插桩后的应用程序装载过程中,通过重定向虚拟机启动函数的方法重构执行环境,使插桩后的应用程序能够引用插桩后的***类库;
4)在插桩后的应用程序运行过程中,动态污点分析模块同步运行,实施动态污点跟踪分析,例如跟踪是否有敏感数据从预设的污点源传播至预设的安全敏感操作点。
如图2所示,上述步骤1)可以包括以下步骤:
1.1)从Android***终端设备中导出***类库的压缩包和代码文件;
1.2)在***类库的代码文件中直接***动态污点分析模块的代码文件;
1.3)将***动态污点分析模块代码文件后的***类库的代码文件重新加入***类库的压缩包中;
1.4)将***类库的压缩包重新导入Android***终端设备。
如图3所示,上述步骤2)可以包括以下步骤:
2.1)解包应用程序,解包后的应用程序文件目录中包含应用程序的代码文件、配置文件等;
2.2)在解包后的应用程序的代码文件中直接***动态污点分析模块的代码文件;
2.3)在应用程序的配置文件中声明动态污点分析模块的相关组件;
2.4)将应用程序文件目录重新打包并签名,生成插桩后的应用程序。
如图4所示,上述步骤3)可以包括以下步骤:
3.1)重定向虚拟机启动函数,添加设定的启动参数;
3.2)重新启动虚拟机,指定经步骤1)插桩后的***类库所在路径作为***类的搜索路径;
3.3)使用重新启动的虚拟机重新装载经步骤2)插桩后的应用程序,使重新装载的插桩后的应用程序能引用插桩后的***类库。
如图5所示,上述步骤4)可以包括以下步骤:
4.1)当应用程序从预设的污点源读取数据时,为读取的数据设置相应的污点值;
4.2)在应用程序处理污点数据的过程中,依据设定的策略传播污点值;
4.3)当应用程序执行预设的安全敏感操作时,检验操作数据是否是污点数据。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可以通过程序指令相关硬件运作完成,程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件或软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,凡是在本发明技术方案的基础上进行的等同变换和改进,均不应排除在本发明的保护范围之外。
Claims (7)
1.一种在Android中植入动态污点分析模块的方法,包括以下步骤:
1)对***类库进行静态插桩,将动态污点分析模块直接******类库文件中,生成插桩后的***类库;
2)对应用程序进行静态插桩,将动态污点分析模块直接***应用程序文件中,生成插桩后的应用程序;
3)在插桩后的应用程序装载过程中,通过重定向虚拟机启动函数的方法重构执行环境,使插桩后的应用程序能够引用插桩后的***类库;
4)在插桩后的应用程序运行过程中,动态污点分析模块同步运行,实施动态污点跟踪分析,例如跟踪是否有敏感数据从预设的污点源传播至预设的安全敏感操作点。
2.如权利要求1所述的一种在Android中植入动态污点分析模块的方法,其特征在于,所述步骤1)包括以下步骤:
1.1)从Android***终端设备中导出***类库的压缩包和代码文件;
1.2)在***类库的代码文件中直接***动态污点分析模块的代码文件;
1.3)将***动态污点分析模块代码文件后的***类库的代码文件重新加入***类库的压缩包中;
1.4)将***类库的压缩包重新导入Android***终端设备。
3.如权利要求1所述的一种在Android中植入动态污点分析模块的方法,其特征在于,所述步骤2)包括以下步骤:
2.1)解包应用程序;
2.2)在解包后的应用程序的代码文件中直接***动态污点分析模块的代码文件;
2.3)在应用程序的配置文件中声明动态污点分析模块的相关组件;
2.4)将应用程序文件目录重新打包并签名,生成插桩后的应用程序。
4.如权利要求2所述的一种在Android中植入动态污点分析模块的方法,其特征在于,所述步骤2)包括以下步骤:
2.1)解包应用程序;
2.2)在解包后的应用程序的代码文件中直接***动态污点分析模块的代码文件;
2.3)在应用程序的配置文件中声明动态污点分析模块的相关组件;
2.4)将应用程序文件目录重新打包并签名,生成插桩后的应用程序。
5.如权利要求1或2或3或4所述的一种在Android中植入动态污点分析模块的方法,其特征在于,所述步骤3)包括以下步骤:
3.1)重定向虚拟机启动函数,添加设定的启动参数;
3.2)重新启动虚拟机,指定经步骤1)插桩后的***类库所在路径作为***类的搜索路径;
3.3)使用重新启动的虚拟机重新装载经步骤2)插桩后的应用程序,使重新装载的插桩后的应用程序能引用插桩后的***类库。
6.如权利要求1或2或3或4所述的一种在Android中植入动态污点分析模块的方法,其特征在于,所述步骤4)包括以下步骤:
4.1)当应用程序从预设的污点源读取数据时,为读取的数据设置相应的污点值;
4.2)在应用程序处理污点数据的过程中,依据设定的策略传播污点值;
4.3)当应用程序执行预设的安全敏感操作时,检验操作数据是否是污点数据。
7.如权利要求5所述的一种在Android中植入动态污点分析模块的方法,其特征在于,所述步骤4)包括以下步骤:
4.1)当应用程序从预设的污点源读取数据时,为读取的数据设置相应的污点值;
4.2)在应用程序处理污点数据的过程中,依据设定的策略传播污点值;
4.3)当应用程序执行预设的安全敏感操作时,检验操作数据是否是污点数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310112042.XA CN103177210B (zh) | 2013-04-02 | 2013-04-02 | 一种在Android中植入动态污点分析模块的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310112042.XA CN103177210B (zh) | 2013-04-02 | 2013-04-02 | 一种在Android中植入动态污点分析模块的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103177210A true CN103177210A (zh) | 2013-06-26 |
CN103177210B CN103177210B (zh) | 2015-07-29 |
Family
ID=48637057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310112042.XA Active CN103177210B (zh) | 2013-04-02 | 2013-04-02 | 一种在Android中植入动态污点分析模块的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103177210B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473488A (zh) * | 2013-09-18 | 2013-12-25 | 浙江大学城市学院 | 一种android应用程序防盗版的方法及*** |
CN103544415A (zh) * | 2013-10-25 | 2014-01-29 | 苏州通付盾信息技术有限公司 | 一种移动平台应用软件的加固方法 |
CN103714288A (zh) * | 2013-12-26 | 2014-04-09 | 华中科技大学 | 一种数据流跟踪方法 |
CN103729295A (zh) * | 2013-12-31 | 2014-04-16 | 北京理工大学 | 一种污点传播路径分析方法 |
CN104102880A (zh) * | 2014-06-30 | 2014-10-15 | 华中科技大学 | 一种检测Android权限提升攻击的应用程序重写方法和*** |
CN104731654A (zh) * | 2015-04-03 | 2015-06-24 | 南京大学 | 一种针对安卓应用的迁移重构及支持*** |
WO2015192637A1 (zh) * | 2014-06-17 | 2015-12-23 | 北京奇虎科技有限公司 | 软件安装包的加固保护方法和装置 |
WO2016033966A1 (zh) * | 2014-09-01 | 2016-03-10 | 中兴通讯股份有限公司 | 应用数据的保护方法及装置 |
CN105740701A (zh) * | 2016-02-01 | 2016-07-06 | 中国人民大学 | 一种Android平台应用执行环境重构方法及装置 |
CN106446672A (zh) * | 2016-07-25 | 2017-02-22 | 中国科学院大学 | 一种Android第三方类库权限隔离方法及装置 |
CN106484490A (zh) * | 2015-09-02 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种应用程序的跟踪分析方法和装置 |
CN106778328A (zh) * | 2016-11-23 | 2017-05-31 | 中国人民解放军信息工程大学 | 一种敏感信息安全保护方法及*** |
CN107229866A (zh) * | 2016-03-23 | 2017-10-03 | 全球能源互联网研究院 | 一种检验与监控byod环境下移动应用安全的方法 |
CN109240700A (zh) * | 2018-07-06 | 2019-01-18 | 北京大学 | 关键代码定位方法与*** |
CN112068932A (zh) * | 2020-09-01 | 2020-12-11 | 北京指掌易科技有限公司 | 应用程序的集成、监控方法、装置、***、设备及介质 |
CN112926058A (zh) * | 2021-03-25 | 2021-06-08 | 支付宝(杭州)信息技术有限公司 | 代码处理方法、污点分析方法和装置 |
CN113328914A (zh) * | 2021-05-31 | 2021-08-31 | 山石网科通信技术股份有限公司 | 工控协议的模糊测试方法、装置、存储介质及处理器 |
CN113778838A (zh) * | 2020-06-09 | 2021-12-10 | 中国电信股份有限公司 | 二进制程序动态污点分析方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521543A (zh) * | 2011-12-23 | 2012-06-27 | 中国人民解放军国防科学技术大学 | 一种基于动态污点分析进行消息语义解析的方法 |
CN102722434A (zh) * | 2012-05-24 | 2012-10-10 | 兰雨晴 | 一种针对Linux进程调度的性能测试方法和工具 |
-
2013
- 2013-04-02 CN CN201310112042.XA patent/CN103177210B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521543A (zh) * | 2011-12-23 | 2012-06-27 | 中国人民解放军国防科学技术大学 | 一种基于动态污点分析进行消息语义解析的方法 |
CN102722434A (zh) * | 2012-05-24 | 2012-10-10 | 兰雨晴 | 一种针对Linux进程调度的性能测试方法和工具 |
Non-Patent Citations (3)
Title |
---|
EDWARD J. SCHWARTZ等: "" All You Ever Wanted to Know About Dynamic Taint Analysis and Forward Symbolic Execution"", 《2010 IEEE SYMPOSIUM ON SECURITY AND PRIVACY》 * |
HYUNG CHAN KIM等: ""Capturing Information Flow with Concatenated Dynamic Taint Analysis"", 《2009 INTERNATIONAL CONFERENCE ON AVAILABILITY, RELIABILITY AND SECURITY》 * |
YAJIN ZHOU等: ""Dissecting Android Malware: Characterization and Evolution"", 《2012 IEEE SYMPOSIUM ON SECURITY AND PRIVACY》 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473488B (zh) * | 2013-09-18 | 2016-04-06 | 浙江大学城市学院 | 一种android应用程序防盗版的方法及*** |
CN103473488A (zh) * | 2013-09-18 | 2013-12-25 | 浙江大学城市学院 | 一种android应用程序防盗版的方法及*** |
CN103544415A (zh) * | 2013-10-25 | 2014-01-29 | 苏州通付盾信息技术有限公司 | 一种移动平台应用软件的加固方法 |
CN103714288A (zh) * | 2013-12-26 | 2014-04-09 | 华中科技大学 | 一种数据流跟踪方法 |
CN103714288B (zh) * | 2013-12-26 | 2016-05-25 | 华中科技大学 | 一种数据流跟踪方法 |
CN103729295A (zh) * | 2013-12-31 | 2014-04-16 | 北京理工大学 | 一种污点传播路径分析方法 |
WO2015192637A1 (zh) * | 2014-06-17 | 2015-12-23 | 北京奇虎科技有限公司 | 软件安装包的加固保护方法和装置 |
CN104102880A (zh) * | 2014-06-30 | 2014-10-15 | 华中科技大学 | 一种检测Android权限提升攻击的应用程序重写方法和*** |
CN104102880B (zh) * | 2014-06-30 | 2016-10-05 | 华中科技大学 | 一种检测Android权限提升攻击的应用程序重写方法和*** |
WO2016033966A1 (zh) * | 2014-09-01 | 2016-03-10 | 中兴通讯股份有限公司 | 应用数据的保护方法及装置 |
CN104731654A (zh) * | 2015-04-03 | 2015-06-24 | 南京大学 | 一种针对安卓应用的迁移重构及支持*** |
CN104731654B (zh) * | 2015-04-03 | 2018-03-27 | 南京大学 | 一种针对安卓应用的迁移重构及支持*** |
CN106484490A (zh) * | 2015-09-02 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种应用程序的跟踪分析方法和装置 |
CN105740701A (zh) * | 2016-02-01 | 2016-07-06 | 中国人民大学 | 一种Android平台应用执行环境重构方法及装置 |
CN107229866A (zh) * | 2016-03-23 | 2017-10-03 | 全球能源互联网研究院 | 一种检验与监控byod环境下移动应用安全的方法 |
CN106446672A (zh) * | 2016-07-25 | 2017-02-22 | 中国科学院大学 | 一种Android第三方类库权限隔离方法及装置 |
CN106778328A (zh) * | 2016-11-23 | 2017-05-31 | 中国人民解放军信息工程大学 | 一种敏感信息安全保护方法及*** |
CN106778328B (zh) * | 2016-11-23 | 2019-12-10 | 中国人民解放军信息工程大学 | 一种敏感信息安全保护方法及*** |
CN109240700A (zh) * | 2018-07-06 | 2019-01-18 | 北京大学 | 关键代码定位方法与*** |
CN109240700B (zh) * | 2018-07-06 | 2021-04-23 | 北京大学 | 关键代码定位方法与*** |
CN113778838A (zh) * | 2020-06-09 | 2021-12-10 | 中国电信股份有限公司 | 二进制程序动态污点分析方法及装置 |
CN113778838B (zh) * | 2020-06-09 | 2024-01-26 | 中国电信股份有限公司 | 二进制程序动态污点分析方法及装置 |
CN112068932A (zh) * | 2020-09-01 | 2020-12-11 | 北京指掌易科技有限公司 | 应用程序的集成、监控方法、装置、***、设备及介质 |
CN112926058A (zh) * | 2021-03-25 | 2021-06-08 | 支付宝(杭州)信息技术有限公司 | 代码处理方法、污点分析方法和装置 |
CN113328914A (zh) * | 2021-05-31 | 2021-08-31 | 山石网科通信技术股份有限公司 | 工控协议的模糊测试方法、装置、存储介质及处理器 |
CN113328914B (zh) * | 2021-05-31 | 2022-12-13 | 山石网科通信技术股份有限公司 | 工控协议的模糊测试方法、装置、存储介质及处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN103177210B (zh) | 2015-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103177210B (zh) | 一种在Android中植入动态污点分析模块的方法 | |
KR101246623B1 (ko) | 악성 애플리케이션 진단 장치 및 방법 | |
US10481964B2 (en) | Monitoring activity of software development kits using stack trace analysis | |
US20160378989A1 (en) | Apparatus and method for monitoring android platform-based application | |
CN107451474B (zh) | 用于终端的软件漏洞修复方法和装置 | |
CN104598274B (zh) | 一种自动插桩编译安装方法及*** | |
US10698797B2 (en) | Mobile application program testing method, server, terminal, and storage medium | |
CN104765612A (zh) | 一种访问可信执行环境、可信应用的***及方法 | |
CN107273142B (zh) | 程序更新方法、程序运行方法及装置 | |
CN108536451B (zh) | 应用程序的埋点注入方法和装置 | |
CN110414261A (zh) | 一种数据脱敏方法、装置、设备及可读存储介质 | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN103577324A (zh) | 移动应用中隐私信息泄露的静态检测方法 | |
CN104331662A (zh) | Android恶意应用检测方法及装置 | |
WO2015017458A1 (en) | Enabling interoperability between software applications by utilizing partial binaries | |
KR20160090230A (ko) | 동일한 애플리케이션의 복수 인스턴스를 실행하는 방법 및 그 전자 장치 | |
CN110659031A (zh) | 应用程序的编译方法、装置、电子设备及存储介质 | |
CN107832059A (zh) | 一种基于Makefile的代码静态分析方法和装置 | |
US8959485B2 (en) | Security protection domain-based testing framework | |
CN105094878A (zh) | 一种集成***库文件的方法和装置 | |
KR101477050B1 (ko) | 메모리 덤프 기법을 이용한 어플리케이션의 실행코드 추출 방법 | |
CN103198244A (zh) | 保护动态链接库的方法 | |
CN109947407B (zh) | 一种数据获取方法及装置 | |
Ascia et al. | Making android apps data-leak-safe by data flow analysis and code injection | |
CN106778301A (zh) | 基于cocos2d‑x的可靠的跨平台数据存储方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |