CN109784048B - 一种基于程序图的栈缓冲区溢出脆弱性检测方法 - Google Patents

一种基于程序图的栈缓冲区溢出脆弱性检测方法 Download PDF

Info

Publication number
CN109784048B
CN109784048B CN201811514895.5A CN201811514895A CN109784048B CN 109784048 B CN109784048 B CN 109784048B CN 201811514895 A CN201811514895 A CN 201811514895A CN 109784048 B CN109784048 B CN 109784048B
Authority
CN
China
Prior art keywords
function
vulnerability
node
variable
nodes
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
CN201811514895.5A
Other languages
English (en)
Other versions
CN109784048A (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.)
Tianhang Changying Jiangsu Technology Co ltd
Original Assignee
Tianhang Changying Jiangsu 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 Tianhang Changying Jiangsu Technology Co ltd filed Critical Tianhang Changying Jiangsu Technology Co ltd
Priority to CN201811514895.5A priority Critical patent/CN109784048B/zh
Publication of CN109784048A publication Critical patent/CN109784048A/zh
Application granted granted Critical
Publication of CN109784048B publication Critical patent/CN109784048B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明公开了一种基于程序图的栈缓冲区溢出脆弱性检测方法,1对源代码静态分析后构造相应程序图;2遍历程序图寻找危险函数,得到溢出点位置;3在溢出点比较函数操作的缓冲区空间与所要覆盖空间的大小计算地址偏移;4判断是否出现地址偏移而得到脆弱性检测结果。其中所述的危险函数主要针对Strncpy()、Memcpy()和Gets()三种危险函数,对于Strncpy()和Memcpy()函数,获取函数操作的缓冲区空间O和覆盖空间C,对于Gets()函数只需获取函数的缓冲区空间O;对于Strncpy函数,如果复制长度n<O,则没有脆弱性,如果n>O且O<C,则有脆弱性;对于Memcpy函数,如果复制长度n<O,则没有脆弱性,如果n<O且O<C,则有脆弱性;对于Gets函数,如果O=[0,∞],则有脆弱性。

Description

一种基于程序图的栈缓冲区溢出脆弱性检测方法
技术领域
本发明属于信息安全技术领域,涉及一种基于程序图的栈缓冲区溢出脆弱性检测方法。
背景技术
随着计算机技术的不断发展,各行各业对软件的需求越来越大,越来越多的人享受着信息系统带来的方便快捷。在信息技术不断发展过程中不可避免要面对的问题就是软件漏洞。在软件开发过程中开发人员都会犯一些错误,有些错误致命如果不及时找出来会造成很严重地后果。在目前所有的软件漏洞中,缓冲区溢出是很常见的安全漏洞之一。因此,软件脆弱性成因分析日益成为信息安全领域关注的重点。
缓冲区溢出产生的主要原因是向固定长度大的缓冲区中写入超出其预分配长度的内容,造成缓冲区中数据的溢出从而导致缓冲区的结构被破坏。攻击者借此构造假数据导致原有程序改变,最终获取控制权。1988年第一个蠕虫病毒在极短的时间内攻击了几百台电脑造成了巨大的影响。2001年名为CodeRed的病毒导致了30多万台运行Windows的计算机受到攻击,造成了巨大的经济损失。此外,还有很多利用Shellcode进行远程溢出攻击的案例。目前公共漏洞库(CVE)组织已经形成了一批在国际上颇具影响力的标准。美国国家漏洞库(NVD)对漏洞进行了统一命名、分类和描述,严格兼容CVE,构建了全方位、多渠道的漏洞发布机制和标准化的漏洞修复模式。
C和C++语言的使用经常导致缓冲区溢出漏洞。目前,静态和动态技术是检测缓冲区溢出漏洞的主要技术。静态检测技术是指不运行被测程序本身,仅仅通过分析或检测源代码的语法和结构等来检测程序的准确性。也就是说在程序执行之前完成漏洞的检测;动态检测技术是指通过运行被测程序,检查运行结果与预期结果的差异并分析运行效率等性能。也就是说通过运行代码来检测代码的动态行为和运行结果的准确性。但一般来说,静态检测更加的方便快捷,无需执行程序,可在开发前期检测漏洞,因此缓冲区溢出漏洞的静态检测是测试者用得比较多的。但由于大多数静态分析工具建模不够精确,导致了缓冲区溢出漏洞检测的结果中存在较高的漏报率和误报率。在C和C++语言中,一些拷贝函数和常见的外部输入函数在分配内存和输入长度是容易产生缓冲区溢出。
发明内容
本文发明了一种基于程序图的栈缓冲区溢出脆弱性检测方法。首先对源代码进行静态分析后构造相应的程序图。遍历生成的程序图寻找到危险函数,得到溢出点位置。并且通过比较函数操作的缓冲区空间与所要覆盖空间的大小计算地址的偏移。最后通过判断是否出现地址偏移而得到脆弱性检测的结果。
本发明的技术方案如下:
步骤1,对源代码进行静态分析后构造相应的程序图;
步骤2,遍历生成的程序图寻找到危险函数,得到溢出点位置;
步骤3,在溢出点比较函数操作的缓冲区空间与所要覆盖空间的大小计算地址的偏移;
步骤4,通过判断是否出现地址偏移而得到脆弱性检测的结果。
进一步方案,上述步骤1的具体步骤如下:
步骤1.1,对源代码进行控制流分析获得控制流信息和程序图有向边的信息,再对源代码进行数据流分析获得数据流信息和程序图节点的信息,推断代码中变量间的关系及实际特征;
步骤1.2,通过对源代码的控制流信息和数据流信息进行分析获取源代码中变量的初始化和被函数调用的信息,得到变量间的关系和变量与调用函数之间的关系;
步骤1.3,将变量的初始化和使用作为属性节点,按照控制流信息的顺序构造源代码的程序图。
进一步方案,上述步骤2的具体步骤如下:
步骤2.1,通过TRAVERSAL方法遍历程序图,返回的节点是图中所有变量的初始化节点和变量被调用节点;
步骤2.2,使用ToSet方法将变量初始化节点和变量被调用节点转换成节点集合,该节点集合包含了所有的变量初始化的节点和函数使用变量的节点;
步骤2.3,在节点集合中提取出调用变量的函数与危险函数集合Da比较得到源代码中存在的危险函数,得到溢出点位置。
进一步方案,上述步骤3的具体步骤如下:
步骤3.1,在溢出点位置找到变量的调用函数,通过与危险函数库的对比判断危险函数的类型。本发明主要说明“Strncpy()”“Memcpy()”和“Gets()”三种危险函数的脆弱性检测方法;
步骤3.2,分析“Strncpy()”“Memcpy()”和“Gets()”等危险函数类型的脆弱性成因。对于Strncpy()和Memcpy()函数,获取函数操作的缓冲区空间O和覆盖空间C,但对于Gets()函数只需要获取函数的缓冲区空间O;
进一步方案,上述步骤4的具体步骤如下:
步骤4.1,对于Strncpy函数,如果复制的长度n<O,则没有脆弱性。如果n>O且O<C,则存在脆弱性;
步骤4.2,对于Memcpy函数,如果复制的长度n<O,则没有脆弱性。如果n<O且O<C,则存在脆弱性;
步骤4.3,对于Gets函数,如果O=[0,∞],则存在脆弱性。
与现有技术相比,本发明的有益效果:
1、本发明提出了一种基于程序图的栈缓冲区溢出脆弱性检测方法,可以更好地适用于资源访问类软件脆弱性检测,提高检测效率。
2、在程序图的基础上提出了一个栈缓冲区溢出脆弱性检测方法,用于指导构建缓冲区溢出的脆弱性检测模型,使其能够更好地适用于缓冲区溢出脆弱性检测。
3、本发明有常见脆弱性的实例验证来证明此检测方法的准确性,目的是更加精准地检测到软件系统中的脆弱性,提高系统的安全性。
附图说明
图1一种基于程序图的栈缓冲区溢出脆弱性检测方法流程图
图2构造程序图流程图
图3寻找危险函数流程图
图4缓冲区空间与覆盖空间大小比较流程图
图5脆弱性判断流程图
图6根据代码构造的程序图
具体实施方式
为了更好地理解本发明一种基于程序图的栈缓冲区溢出脆弱性检测方法,下面结合附图和具体实施案例对本发明作进一步说明,须指出的是,所描述给出的实施案例旨在便于对本发明的理解,而对其没有任何限定要求。
本发明提出了一种基于程序图的栈缓冲区溢出脆弱性检测方法,可以更好地适用于资源访问类软件脆弱性检测,提高检测效率。
首先,定义本发明所涉及到的几个概念定义和计算公式如下。
定义1程序图:又称程序流程图,以图形的方式来表达代码的逻辑功能、数据在代码中的逻辑流向和逻辑变换的过程,是结构化系统分析方法用于表示代码的一种图示方法,是有向边和属性节点的集合。形如G=<V,λ>,V是程序图上属性节点的集合,λ是有向边的集合。
定义2危险函数:指一些危险的、使用时容易造成缓冲区溢出的函数如表1所示,主要存在于C/C++语言中。如一些拷贝函数Strncpy()、Memcpy()在分配内存空间时容易造成缓冲区的溢出,外部输入函数Gets()在输入长度时经常会造成缓冲区的溢出。
表1
定义3危险函数集:Da=<D,E>,其中D={d1,d2,d3,…,dm}是危险函数名集合,E={e1,e2,e3,…,em}是危险函数描述内容。
定义4图的遍历:是指从图中的任意节点出发,按照某种规则访问图中的所有节点,并且所有节点有且仅访问一遍。目前图遍历主要有深度优先遍历和广度优先遍历两种。深度优先遍历的思想是从图的某个节点出发,访问后选择一个与这个节点相邻且没有被访问过的节点访问,再从这个节点出发选择一个与它相邻且没有被访问的节点访问,以此类推继续直到所有节点都被访问到。广度优先遍历的基本思想是按层次的访问。
定义5 TRAVERSAL遍历:指图的深度优先向下遍历,返回的是节点的集合。形如:
TRAVERSALl(X)=∪v∈X{t:(v,t)∈λandλ((v,t))=1},表示TRAVERSAL遍历所返回的节点集合X中包含图的所有节点,t为节点的属性值。TRAVERSAL1表示TRAVERSAL遍历返回所有标签值为l的边。
定义6 ToSet操作:将多个元素转换成以这些元素为集合的操作。
定义7 Strncpy函数:是C语言的库函数之一,来自C语言标准库。形如char*strncpy(char*dest,const char*src,size n),把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,返回的是dest。
定义8 Memcpy函数:是C语言的库函数之一,来自C语言标准库。形如char*Memcpy(char*dest,const char*src,size n),把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,返回的是dest的指针。
定义9Gets函数:是C语言的库函数之一,来自C语言标准库。功能是从输入缓冲区中读取一个字符串存储到字符指针变量str所指向的内存空间。
如图1所示,本发明的一种基于程序图的栈缓冲区溢出脆弱性检测方法流程图,包括:
步骤1,对源代码进行静态分析后构造相应的程序图。
上述步骤1中,参照图2,构造相应的程序图的步骤如下:
步骤1.1,对源代码进行控制流分析获得控制流信息和程序图有向边λ的信息,再对源代码进行数据流分析获得数据流信息和程序图节点V的信息,推断代码中变量间的关系及实际特征;
步骤1.2,通过对源代码的控制流信息和数据流信息进行分析获取源代码中变量的初始化和被函数调用的信息,提取源代码的控制流信息、指针变量、内存块、常量和函数结构等数据信息,并得到变量间的关系和变量与调用函数之间的关系;
步骤1.3,给源代码中的每一行代码进行编号,在确定完程序图的开始节点和终止节点后分析每一行代码明确每一个变量的初始化节点、变量的使用节点和有向边。将这些节点和有向边作为属性节点和属性边构建源代码的程序图。可以比较全面地展示出代码的语法结构具有较高的遍历效率。
步骤2,遍历生成的程序图寻找到危险函数,得到溢出点位置。
上述步骤2中,参照图3,寻找危险函数得到溢出点位置的步骤如下:
步骤2.1,通过TRAVERSAL方法遍历程序图,返回的节点是图中所有变量的初始化节点和变量被调用节点。使用ToSet方法将变量初始化节点和变量被调用节点转换成节点集合,该节点集合包含了所有的变量初始化的节点和函数使用变量的节点;
步骤2.2,TRAVERSAL遍历结合ToSet方法的规则如下:
其中用于遍历程序图获得到所有变量的初始化节点。同理用于遍历程序图获得到所有变量的使用即被调用的节点。最后结合ToSet方法所有变量的初始化节点和被调用节点集中转换成节点集合。
步骤2.3,在节点集合中提取出调用变量的函数与危险函数集合Da比较得到源代码中存在的危险函数,得到溢出点位置。
上述步骤3中,参照图4,比较函数操作的缓冲区空间与覆盖空间大小的步骤如下:
步骤3.1,在溢出点位置找到变量的调用函数,通过与危险函数库的对比判断危险函数的类型。本发明主要说明“Strncpy()”“Memcpy()”和“Gets()”三种危险函数的脆弱性检测方法,Strncpy()、Memcpy()等一些拷贝函数在分配内存空间时容易造成缓冲区的溢出,而外部输入函数Gets()在输入长度时经常会造成缓冲区的溢出;
步骤3.2,对于Strncpy函数,函数操作的缓存区空间operate(dest)=[p1,q1],覆盖空间covered(src)=[i1,j1],其中p1,q1分别是缓冲区空间的初始地址和终止地址,i1,j1分别是覆盖空间的初始地址和终止地址。对于Memcpy函数,函数操作的缓存区空间operate(dest)=[p2,q2],覆盖空间covered(src)=[i2,j2],其中p2,q2分别是缓冲区空间的初始地址和终止地址,i2,j2分别是覆盖空间的初始地址和终止地址。对于Gets函数,函数操作的缓存区空间operate(dest)=[p3,q3],其中p3,q3分别是缓冲区空间的初始地址和终止地址。
上述步骤4中,参照图5,脆弱性判断的步骤如下:
步骤4.1,对于Strncpy函数,如果复制的长度n<p1-q1,则没有脆弱性。如果n>p1-q1且(p1-q1)<(i1-j1),则存在脆弱性;
步骤4.2,对于Memcpy函数,如果复制的长度n<p2-q2,则没有脆弱性。如果n<p2-q2且(p2-q2)<(i2-j2),则存在脆弱性;
步骤4.3,对于Gets函数,如果p3-q3=[0,∞],则存在脆弱性。
本发明分析给定的脆弱性代码,按照上面所描述的脆弱性检测方法进行脆弱性的验证。所要分析的代码如下所示。
(1)对上述所示代码进行分析后构造的程序图如图6所示;
(2)遍历图6所示程序图找到危险函数在代码的第6行;
(3)确定危险函数的类型是字符串类型中的Memcpy,操作的缓存区空间O=12,覆盖空间C=6;
(4)n=5<O-C=6并且O>C,所有该代码没有缓冲区溢出的脆弱性。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

Claims (2)

1.一种基于程序图的栈缓冲区溢出脆弱性检测方法,其特征在于,包括如下步骤:
步骤1,对源代码进行静态分析后构造相应的程序图;
步骤2,遍历生成的程序图寻找到危险函数,得到溢出点位置;
步骤3,在溢出点比较函数操作的缓冲区空间与所要覆盖空间的大小计算地址的偏移;
步骤4,通过判断是否出现地址偏移而得到脆弱性检测的结果;
所述步骤1的具体步骤如下:
步骤1.1,对源代码进行控制流分析获得控制流信息和程序图有向边的信息,再对源代码进行数据流分析获得数据流信息和程序图节点的信息,推断代码中变量间的关系及实际特征;
步骤1.2,通过对源代码的控制流信息和数据流信息进行分析获取源代码中变量的初始化信息和被函数调用的信息,提取源代码的控制流信息、指针变量、内存块、常量和函数结构数据信息,得到变量间的关系和变量与调用函数之间的关系;
步骤1.3,给源代码中的每一行代码进行编号,在确定完程序图的开始节点和终止节点后分析每一行代码,明确每一个变量的初始化节点、变量的使用节点和有向边;将初始化节点、变量的使用节点和有向边作为属性节点和属性边构建源代码的程序图;
所述步骤2的具体步骤如下:
步骤2.1,通过TRAVERSAL方法遍历程序图,返回的节点是程序图中所有变量的初始化节点和变量被调用节点;
步骤2.2,使用ToSet方法将变量初始化节点和变量被调用节点转换成节点集合,该节点集合包含了所有的变量初始化的节点和函数使用变量的节点;
步骤2.3,在节点集合中提取出调用变量的函数与危险函数集合Da比较得到源代码中存在的危险函数,得到溢出点位置;
所述TRAVERSAL遍历结合ToSet方法的具体规则如下:
其中用于遍历程序图获得所有变量的初始化节点;/>用于遍历程序图获得所有变量的使用即被调用的节点;最后结合ToSet方法所有变量的初始化节点和被调用节点集中转换成节点集合;
所述步骤3的具体步骤如下:
步骤3.1,在溢出点位置找到变量的调用函数,通过与危险函数库的对比判断危险函数的类型;
步骤3.2,分析危险函数类型的脆弱性成因;
所述步骤3.1的危险函数为“Strncpy()”“Memcpy()”和“Gets()”三种危险函数;
所述步骤3.2中,分析危险函数类型的脆弱性成因时:对于Strncpy()和Memcpy()函数,获取函数操作的缓冲区空间O和覆盖空间C,对于Gets()函数只需要获取函数的缓冲区空间O;具体地:
对于Strncpy函数,函数操作的缓存区空间operate(dest)=[p1,q1],覆盖空间covered(src)=[i1,j1],其中p1,q1分别是缓冲区空间的初始地址和终止地址,i1,j1分别是覆盖空间的初始地址和终止地址;对于Memcpy函数,函数操作的缓存区空间operate(dest)=[p2,q2],覆盖空间covered(src)=[i2,j2],其中p2,q2分别是缓冲区空间的初始地址和终止地址,i2,j2分别是覆盖空间的初始地址和终止地址;对于Gets函数,函数操作的缓存区空间operate(dest)=[p3,q3],其中p3,q3分别是缓冲区空间的初始地址和终止地址。
2.根据权利要求1所述的一种基于程序图的栈缓冲区溢出脆弱性检测方法,其特征在于,所述步骤4的具体步骤如下:
步骤4.1,对于Strncpy函数,如果复制的长度n<O,则没有脆弱性;如果n>O且O<C,则存在脆弱性;
步骤4.2,对于Memcpy函数,如果复制的长度n<O,则没有脆弱性;如果n<O且O<C,则存在脆弱性;
步骤4.3,对于Gets函数,如果O=[0,∞],则存在脆弱性。
CN201811514895.5A 2018-12-12 2018-12-12 一种基于程序图的栈缓冲区溢出脆弱性检测方法 Active CN109784048B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811514895.5A CN109784048B (zh) 2018-12-12 2018-12-12 一种基于程序图的栈缓冲区溢出脆弱性检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811514895.5A CN109784048B (zh) 2018-12-12 2018-12-12 一种基于程序图的栈缓冲区溢出脆弱性检测方法

Publications (2)

Publication Number Publication Date
CN109784048A CN109784048A (zh) 2019-05-21
CN109784048B true CN109784048B (zh) 2023-12-01

Family

ID=66496714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811514895.5A Active CN109784048B (zh) 2018-12-12 2018-12-12 一种基于程序图的栈缓冲区溢出脆弱性检测方法

Country Status (1)

Country Link
CN (1) CN109784048B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111062031A (zh) * 2019-10-31 2020-04-24 国家电网有限公司 基于数据流分析的缓冲区溢出分析方法及装置
CN113626805B (zh) * 2021-07-16 2022-05-03 中国科学院软件研究所 基于risc-v与不可执行内存的缓冲区溢出攻击防御方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017458A (zh) * 2007-03-02 2007-08-15 北京邮电大学 基于源代码静态分析的软件安全代码分析器及其检测方法
CN101908006A (zh) * 2010-07-30 2010-12-08 北京理工大学 一种基于gcc抽象语法树的缓冲区溢出漏洞检测方法
CN105159828A (zh) * 2015-08-25 2015-12-16 中国人民解放军信息工程大学 源代码级的上下文敏感性检测方法
CN105468965A (zh) * 2014-08-21 2016-04-06 西安慧泽知识产权运营管理有限公司 一种动态堆栈内存管理方法
CN105740149A (zh) * 2016-01-29 2016-07-06 中国人民解放军信息工程大学 基于脆弱性模型和符号执行结合的软件安全检测方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017458A (zh) * 2007-03-02 2007-08-15 北京邮电大学 基于源代码静态分析的软件安全代码分析器及其检测方法
CN101908006A (zh) * 2010-07-30 2010-12-08 北京理工大学 一种基于gcc抽象语法树的缓冲区溢出漏洞检测方法
CN105468965A (zh) * 2014-08-21 2016-04-06 西安慧泽知识产权运营管理有限公司 一种动态堆栈内存管理方法
CN105159828A (zh) * 2015-08-25 2015-12-16 中国人民解放军信息工程大学 源代码级的上下文敏感性检测方法
CN105740149A (zh) * 2016-01-29 2016-07-06 中国人民解放军信息工程大学 基于脆弱性模型和符号执行结合的软件安全检测方法

Also Published As

Publication number Publication date
CN109784048A (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
CN109426722B (zh) Sql注入缺陷检测方法、系统、设备及存储介质
CN110737899B (zh) 一种基于机器学习的智能合约安全漏洞检测方法
US10198580B2 (en) Behavior specification, finding main, and call graph visualizations
CN112035359B (zh) 程序测试方法、装置、电子设备及存储介质
US8589888B2 (en) Demand-driven analysis of pointers for software program analysis and debugging
JP2006523898A (ja) ソースコードの脆弱点の検出法および検出システム
CN109543410B (zh) 一种基于语义映射关联的恶意代码检测方法
CN107516040A (zh) 一种基于数据控制流图的脆弱性特征分析和获取方法
US10474657B2 (en) Augmenting relational databases via database structure graph
WO2022180702A1 (ja) 解析機能付与装置、解析機能付与プログラム及び解析機能付与方法
CN112511546A (zh) 基于日志分析的漏洞扫描方法、装置、设备和存储介质
CN114861194A (zh) 一种基于bgru与cnn融合模型的多类型漏洞检测方法
CN109784048B (zh) 一种基于程序图的栈缓冲区溢出脆弱性检测方法
CN115146282A (zh) 基于ast的源代码异常检测方法及其装置
CN111881300A (zh) 面向第三方库依赖的知识图谱构建方法及系统
CN112685738A (zh) 一种基于多级投票机制的恶意混淆脚本静态检测方法
CN114036531A (zh) 一种基于多尺度代码度量的软件安全漏洞检测方法
CN102141959A (zh) 一种受上下文无关文法约束的测试用例生成方法
CN113901463B (zh) 面向概念漂移的可解释Android恶意软件检测方法
CN112612716B (zh) 差异行代码覆盖率增强标记方法、系统、设备及存储介质
Chen et al. Black-box testing based on colorful taint analysis
Vahedi et al. Cloud based malware detection through behavioral entropy
CN114090461B (zh) 安卓应用升级的安全性补丁检测方法
Guo et al. An investigation of quality issues in vulnerability detection datasets
CN112580871B (zh) 一种特征筛选方法及其装置

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
TA01 Transfer of patent application right

Effective date of registration: 20231012

Address after: 518000 1002, Building A, Zhiyun Industrial Park, No. 13, Huaxing Road, Henglang Community, Longhua District, Shenzhen, Guangdong Province

Applicant after: Shenzhen Wanzhida Technology Co.,Ltd.

Address before: Zhenjiang City, Jiangsu Province, 212013 Jingkou District Road No. 301

Applicant before: JIANGSU University

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20231106

Address after: No. 301, Building 11, Phase II, Taicang University Science Park, No. 27 Zigang Road, Science and Education New City, Taicang City, Suzhou City, Jiangsu Province, 215000

Applicant after: Tianhang Changying (Jiangsu) Technology Co.,Ltd.

Address before: 518000 1002, Building A, Zhiyun Industrial Park, No. 13, Huaxing Road, Henglang Community, Longhua District, Shenzhen, Guangdong Province

Applicant before: Shenzhen Wanzhida Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant