一种基于硬件虚拟化的RISCV应用程序动态分析方法及装置

    公开(公告)号:CN116340082A

    公开(公告)日:2023-06-27

    申请号:CN202111581459.1

    申请日:2021-12-22

    Abstract: 本发明公开一种基于硬件虚拟化的RISCV应用程序动态分析方法及装置,包括:逆向RISCV上运行的操作系统内核,获取进程内核数据结构;基于硬件模拟器模拟RISCV CPU,并构建操作系统的基础进程列表;使用sptbr寄存器与进程内核数据结构,获取新进程的特征信息;依据基础进程列表对特征信息进行筛选,得到目标进程;基于目标进程的进程信息与动态运行过程信息进行API检测与指令分析,得到动态分析结果。本发明能够完整、透明的监控在RISCV CPU上程序的运行全过程,提供可配置的高效进程信息获取、API调用信息获取、指令执行信息获取,监控过程不依赖于系统接口,能够实现透明的进程监控,不影响被监控目标的运行过程。

    一种基于硬件虚拟化的RISCV内存溢出漏洞检测方法及装置

    公开(公告)号:CN114443418A

    公开(公告)日:2022-05-06

    申请号:CN202111600181.8

    申请日:2021-12-24

    Abstract: 本发明公开一种基于硬件虚拟化的RISCV内存溢出漏洞检测方法及装置,包括:获取操作系统内核的进程内核数据结构;基于硬件模拟器模拟RISCV CPU;构建操作系统的基础进程列表与内存区域占用记录表;使用sptbr寄存器与进程内核数据结构,获取新进程的特征信息;依据基础进程列表与特征信息得到目标进程;使用目标进程的API检测结果填充内存区域占用记录表内容,以得到内存区域列表;基于目标进程的指令分析结果,得到内存访问数据;比对内存访问数据与内存区域列表,得到溢出漏洞检测结果。本发明能够完整、透明的监控在RISCV CPU上二进制程序的运行全过程,提供内存溢出漏洞配置接口,实现透明的进程监控和内存溢出漏洞检测,提高了内存溢出漏洞检测能力和准确度。

    一种高效的软件程序释放后重用漏洞判定方法和装置

    公开(公告)号:CN111625833A

    公开(公告)日:2020-09-04

    申请号:CN202010285957.0

    申请日:2020-04-13

    Abstract: 本发明公开了一种高效的软件程序释放后重用漏洞判定方法和装置。本发明的主要方法为:(1)利用已知的漏洞触发样本使得程序在运行过程中发生崩溃,并记录从程序开始运行到崩溃发生时的所有执行过的指令;(2)根据程序运行过程中对于系统函数的调用情况,实时记录所有堆管理操作行为;(3)采用逆向动态污点传播技术,从程序崩溃时开始,向前回溯分析和崩溃指令相关的传播指令集;(4)进行关联分析,寻找到崩溃指令相关的对象赋值时刻,并以此为基础寻找对应的对象分配与释放周期,进而判定在崩溃发生时该对象是否已经释放,如果是则表明存在释放后重用漏洞。本发明有助于提高在实际环境中对于释放后重用漏洞的检测和防护能力。

    一种基于动态污点传播的程序异常分析方法

    公开(公告)号:CN109583200A

    公开(公告)日:2019-04-05

    申请号:CN201710894260.1

    申请日:2017-09-28

    Abstract: 本发明提供一种基于动态污点传播的程序异常分析方法,步骤包括:在虚拟化环境下动态运行目标程序,监控所述目标程序的目标进程并记录执行序列信息;将引起所述目标程序异常的输入数据标记为污点源,根据所述目标进程执行过的指令的指令语义进行污点传播分析,获得内存的污点状态信息;识别出所述目标程序运行过程中的内存访问异常,提取异常指令的异常位置,根据所述内存的污点状态信息检测所述异常位置的操作数和寄存器的污点状态;如果所述操作数和寄存器被污染,则通过污点回溯定位出错误点;否则对所述寄存器进行逆向切片分析,找出相关的数据链路,并在所述数据链路上的各个节点进行堆溢出检测、UAF检测,以及通过对比分析定位出错误点。

    一种基于动态特征的自定义堆管理函数的自动识别方法

    公开(公告)号:CN108469997A

    公开(公告)日:2018-08-31

    申请号:CN201711248935.1

    申请日:2017-12-01

    Abstract: 本发明公开了一种基于动态特征的自定义堆管理函数的自动识别方法,主要包括:1)基于动态执行二进制指令记录进行离线分析,通过call-ret匹配恢复函数边界信息;2)依次根据堆管理函数的返回值通常是堆指针、处理流程具有相似性、使用情况具有特点的动态特征,对候选函数进行筛选;3)对筛选出的自定义堆管理函数进行去重统计,实现自定义堆管理函数的自动识别。本发明实现了基于离线动态执行记录分析自动识别自定义的堆管理函数,识别准确性高、分析效率高。

    一种基于文件格式的Fuzz优化方法

    公开(公告)号:CN103425570A

    公开(公告)日:2013-12-04

    申请号:CN201210161219.0

    申请日:2012-05-22

    Abstract: 本发明涉及一种基于文件格式的Fuzz优化方法,其步骤包括:1)配置测试环境中原始样本文件、待测试目标程序和Fuzz线程参数;2)插入文件格式解析模块,所述解析模块用于样本文件的格式解析;3)对解析后的样本文件进行Fuzz操作并将结果保存至本地存储单元用于待测试目标程序的调用;4)在设定的Fuzz线程下,根据所述存储单元中样本文件参数执行目标程序,记录目标程序执行过程中产生的异常信息;5)遍历所述存储单元中所有样本文件,直至所有样本文件都参与过测试,完成全部测试。本发明在Fuzz位置的选取上,与样本文件的具体文件格式有很强的相关性;在Fuzz数据的产生上,对样本文件中各个域的具体类型有很强的针对性,进行软件漏洞挖掘能产生较高效率。

    一种基于硬件模拟器的恶意代码在线分析方法及系统

    公开(公告)号:CN102999719A

    公开(公告)日:2013-03-27

    申请号:CN201110278249.5

    申请日:2011-09-19

    Abstract: 本发明公开了一种基于硬件模拟器的恶意代码在线分析方法及系统,分析方法如下:1)用户通过浏览器提交待分析恶意代码样本;2)响应服务器响应用户的提交请求,存储待分析恶意代码样本,启动应用服务器;3)启动后的应用服务器将样本运行参数组织为配置文件;4)应用服务器按照配置文件将待分析恶意代码样本发送到对应的镜像系统中,然后在硬件模拟器中加载镜像系统并在镜像系统中运行恶意代码样本;5)样本运行结束后应用服务器生成样本分析报告。本发明的系统包括响应服务器,数据库服务器,文件服务器和至少一台应用服务器,所述应用服务器上包括硬件模拟器。本发明过程全自动化,极大地改善了恶意代码分析的便携性与效率性。

    一种基于硬件虚拟化的RISCV内存访问违例检测方法及装置

    公开(公告)号:CN116340081A

    公开(公告)日:2023-06-27

    申请号:CN202111579284.0

    申请日:2021-12-22

    Abstract: 本发明公开一种基于硬件虚拟化的RISCV内存访问违例检测方法及装置,包括:逆向RISCV上运行的操作系统内核,获取进程内核数据结构;基于硬件模拟器模拟RISCV CPU;构建操作系统的基础进程列表;使用sptbr寄存器与进程内核数据结构,获取新进程的特征信息;依据基础进程列表对特征信息进行筛选,得到目标进程;基于目标进程的进程信息与动态运行过程信息进行API检测与指令分析,将得到的内存访问数据与内存访问权限列表比对,得到违例检测结果。本发明能够完整、透明的监控在RISCV CPU上程序的运行全过程,提供可配置的内存违例访问配置接口,监控过程不依赖于系统提供的功能或接口,能够实现透明的进程监控和内存违例访问检测,提高了内存违例访问检测能力和准确度。

    一种基于动态特征的自定义堆管理函数的自动识别方法

    公开(公告)号:CN108469997B

    公开(公告)日:2021-10-26

    申请号:CN201711248935.1

    申请日:2017-12-01

    Abstract: 本发明公开了一种基于动态特征的自定义堆管理函数的自动识别方法,主要包括:1)基于动态执行二进制指令记录进行离线分析,通过call‑ret匹配恢复函数边界信息;2)依次根据堆管理函数的返回值通常是堆指针、处理流程具有相似性、使用情况具有特点的动态特征,对候选函数进行筛选;3)对筛选出的自定义堆管理函数进行去重统计,实现自定义堆管理函数的自动识别。本发明实现了基于离线动态执行记录分析自动识别自定义的堆管理函数,识别准确性高、分析效率高。

    一种基于动态污点传播的程序异常分析方法

    公开(公告)号:CN109583200B

    公开(公告)日:2021-04-27

    申请号:CN201710894260.1

    申请日:2017-09-28

    Abstract: 本发明提供一种基于动态污点传播的程序异常分析方法,步骤包括:在虚拟化环境下动态运行目标程序,监控所述目标程序的目标进程并记录执行序列信息;将引起所述目标程序异常的输入数据标记为污点源,根据所述目标进程执行过的指令的指令语义进行污点传播分析,获得内存的污点状态信息;识别出所述目标程序运行过程中的内存访问异常,提取异常指令的异常位置,根据所述内存的污点状态信息检测所述异常位置的操作数和寄存器的污点状态;如果所述操作数和寄存器被污染,则通过污点回溯定位出错误点;否则对所述寄存器进行逆向切片分析,找出相关的数据链路,并在所述数据链路上的各个节点进行堆溢出检测、UAF检测,以及通过对比分析定位出错误点。

Patent Agency Ranking