CN111596926B - 数据取证分析方法、装置及电子设备 - Google Patents
数据取证分析方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111596926B CN111596926B CN202010291071.7A CN202010291071A CN111596926B CN 111596926 B CN111596926 B CN 111596926B CN 202010291071 A CN202010291071 A CN 202010291071A CN 111596926 B CN111596926 B CN 111596926B
- Authority
- CN
- China
- Prior art keywords
- component
- flow graph
- data
- inter
- program
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开一种数据取证分析方法、装置及电子设备,涉及网络安全领域。其中,数据取证分析方法包括:对应用程序进行反编译得到所述应用程序中包含的各组件;构建各所述组件分别对应的数据流图以及控制流图;预测各组件中包括的用于组件间通信的通信字段,根据所述通信字段对各所述组件进行排序;根据各所述组件的排序结果,以及与各所述组件对应的数据流图、控制流图构建所述应用程序对应的程序间数据流图和程序间控制流图;基于所述程序间数据流图和程序间控制流图生成数据取证分析报告,以用于数据库解密。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种数据取证分析方法、装置及电子设备。
背景技术
目前,Android智能手机已在全球智能手机市场中占有最大的市场份额,随之而来的是,如经济欺诈、走私等依托于智能手机中的应用程序实现的数字犯罪的数量也逐年攀升。
鉴于通过安装在智能手机中的应用程序处理的有关用户的大量个人信息存储在本地数据库中,因此,基于本地数据库的数据取证成为了智能手机取证分析中至关重要的步骤。
但是,在基于智能手机中的本地加密数据库进行取证分析时,存在加密数据库的加密机制取证分析问题,针对该问题,相关技术中所采用的加密数据库取证分析方法主要包括:手动逆向工程方法和动态分析方法。其中,手动逆向工程方法是通过反编译源代码,再通过人工查找数据库加密密钥,最后分析秘钥生成机制实现,但该方法的局限性在于:取证分析耗时长,且需要丰富的技术专长。而动态分析方法是将需要分析得到应用程序安装在测试手机或模拟手机环境中,再使用该应用程序跟踪、记录加密数据库运行过程实现,但该方法的局限性在于:很难触发数据库运行过程中的所有程序路径,导致无法找到加密数据库的所有加密方式。
发明内容
对于上述问题,本申请实施例提供了一种数据取证分析方法、装置及电子设备,以尽可能的搜索到加密数据库的所有加密路径,且耗时短,具体方案如下。
第一方面,本申请实施例提供一种数据取证分析方法,包括:对应用程序进行反编译得到所述应用程序中包含的各组件;构建各所述组件分别对应的数据流图以及控制流图;预测各组件中包括的用于组件间通信的通信字段,根据所述通信字段对各所述组件进行排序;根据各所述组件的排序结果,以及与各所述组件对应的数据流图、控制流图构建所述应用程序对应的程序间数据流图和程序间控制流图;基于所述程序间数据流图和程序间控制流图生成数据取证分析报告。
进一步,本申请的一种实施例中,根据所述通信字段对各所述组件进行排序的步骤,包括:根据所述通信字段确定组件意图以及意图过滤器;针对每个所述组件,计算所述组件的组件意图与其他组件分别对应的意图过滤器之间的匹配概率;按照匹配概率的大小对各所述组件进行排序。
进一步,本申请的一种实施例中,所述基于所述程序间数据流图生成数据取证分析报告的步骤之后,所述方法还包括:在所述数据流图中的各数据流节点携带有节点编号的情况下,根据所述节点编号查找所述程序间数据流图中的数据库加密指令;通过所述数据库加密指令跟踪各所述组件对应的数据流图,得到秘钥来源;基于所述程序间数据流图和所述秘钥来源生成所述数据取证分析报告。
进一步,本申请的一种实施例中,在所述秘钥来源为非变量的情况下,停止对各所述组件对应的数据流图的跟踪,并执行所述基于所述程序间数据流图和所述秘钥来源生成所述数据取证分析报告的步骤。
进一步,本申请的一种实施例中,在所述秘钥来源为变量的情况下,则继续执行通过所述数据库加密指令跟踪各所述组件对应的数据流图,得到秘钥来源的步骤,直到跟踪到的秘钥来源为非变量,则执行基于所述程序间数据流图和所述秘钥来源生成所述数据取证分析报告的步骤。
第二方面,本申请实施例还提供一种数据取证分析装置,包括:反编译模块,用于对应用程序进行反编译得到所述应用程序中包含的各组件;第一构建模块,用于构建各所述组件分别对应的数据流图以及控制流图;预测模块,用于预测各组件中包括的用于组件间通信的通信字段,根据所述通信字段对各所述组件进行排序;第二构建模块,用于根据各所述组件的排序结果,以及与各所述组件对应的数据流图、控制流图构建所述应用程序对应的程序间数据流图和程序间控制流图;报告生成模块,用于基于所述程序间数据流图和程序间控制流图生成数据取证分析报告。
进一步,本申请的一种实施例中,所述预测模块具体用于根据所述通信字段确定组件意图以及意图过滤器;以及针对每个所述组件,计算所述组件的组件意图与其他组件分别对应的意图过滤器之间的匹配概率;按照匹配概率的大小对各所述组件进行排序。
第三方面,本申请实施例还提供一种电子设备,包括:至少一个处理器;与所述处理器连接的至少一个存储器;其中,所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如上所述的方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述存储介质存储有计算机指令,所述计算机指令使所述计算机执行如上所述的方法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本申请给出的数据取证分析方法、装置及电子设备中,通过对应用程序进行反编译,得到应用程序中包括的各组件,进而通过预测各组件中的通信字段以及各组件中的数据流图以及控制流图,来构建多个可能的程序间数据流图和程序间控制流图,最后基于该程序间数据流图和程序间控制流图得到数据取证分析报告,以尽可能的搜索到所有可能的加密路径,缩短数据取证分析时长。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一示例性实施例提供的数据取证分析方法的流程示意图。
图2为本申请一示例性实施例提供的应用程序的组件调用关系示意图。
图3为本申请一示例性实施例提供的数据取证分析装置的框图。
图4为本申请一示例性实施例提供的电子设备的框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
如图1所示,为本申请的一个实施例提供的数据取证分析方法的流程示意图,该方法可以但不限于由运行有Android(安卓)***的电子设备执行,具体可由电子设备中的软件或硬件执行。本实施例中,电子设备可以是手机、IPAD、笔记本、可穿戴设备等。再次参阅图1,本实施例给出的数据取证方法可以包括如下步骤。
S110,对应用程序进行反编译得到所述应用程序中包含的各组件。
其中,应用程序(APK)是指需要进行加密数据取证分析时所涉及的应用,如微信、QQ、停车控制应用等,本实施例对此不做限制。
在此需要说明的是,Android***中的各组件均是以字符串操作对数据库进行加密,目前主要涉及两种加密方案:一种是基于秘钥的数据库加密机制,一种是基于密文的数据库加密机制。其中,基于秘钥的数据库加密机制是生成数据库加密密钥,然后使用该加密密钥并调用特定命令来对数据库进行加密;基于密文的数据库加密机制是将数据写入数据库之前对其进行加密,然后调用SQL(结构化查询语言,Structured Query Language)的insert命令,将已经加密的数据写入到数据库中。
基于此,为了能够探索Android***中的应用程序生成的加密数据库所涉及的所有可能的加密路径,本实施例可基于Amandroid平台对应用程序进行反编译,以获取构成应用程序的所有组件,进而基于各组件实现加密路径的取证分析。
S120,构建各所述组件分别对应的数据流图以及控制流图。
其中,与组件的反编译对应,S120中所述的数据流图(DFG)和控制流图(CFG)得到构建过程也可以但不限于基于Amandroid平台实现。
S130,预测各组件中包括的用于组件间通信的通信字段,根据所述通信字段对各所述组件进行排序。
其中,Android***是一种使用组件间通信(ICC)的***。例如,一个组件可以基于预设的通信字段向另一个组件发送意图。意图的目标可以在意图中显式指定,也可以隐式指定。因此,本实施例中,通过预测各组件中的通信字段,以将控件和数据从一个组件捕获到另一个组件,也就是,本实施例中可基于各组件的通信字段得到应用程序中各组件的高概率调用顺序。
实际应用中,可采用但不限于IC3工具进行通信字段的预测,本实施例中,通信字段可以是由字符、数字等构成的字符串。可选地,基于IC3工具进行预测得到的预测结果有两种类型,一种是可以确定的通信字段值,另一种是IC3无法准确预测的通信字段值,对此,可采用不同的符号进行表示,例如,对于不确定的值,可采用用符号“*”表示。
S140,根据各所述组件的排序结果,以及与各所述组件对应的数据流图、控制流图构建所述应用程序对应的程序间数据流图和程序间控制流图。
其中,排序结果表征了应用程序中包含的各组件的高概率调用顺序,那么,基于排序结果,以及各组件对应的数据流图以及控制流图预测,能够得到多个可能的程序间数据流图和程序间控制流图,以用于将应用程序的加密路径搜索到其派生数据库中,以确保尽可能的搜索到所有可能的加密路径。
S150,基于所述程序间数据流图(IDFG)和程序间控制流图(ICFG)生成数据取证分析报告。
其中,数据取证分析报告中包含有关应用程序加密数据库可能采用的程序路径的信息,以用于在后续数据库解密时,可通过反向报告中的程序路径获得了Android数据库密钥生成方法,并以此为基础对数据库进行解密。
应注意的是,在基于本实施例给出的数据取证分析报告进行分析以确定数据库加密方法和相应的数据库解密方案时,解密方法根据不同的加密方法而有所不同,对于数据库使用密钥加密的情况,可根据其数据源和报告中的生成方法来重新生成密钥,再使用生成的密钥来访问加密数据库。而对于在将数据写入数据库之前进行数据加密的情况,可以使用基于数据库加密方法的密钥从解密的数据库中依次检索解密的数据。
在前述给出的数据取证分析方法中,通过对应用程序进行反编译,得到应用程序中包括的各组件,进而通过预测各组件中的通信字段以及各组件中的数据流图以及控制流图,来构建多个可能的程序间数据流图和程序间控制流图,进而基于该程序间数据流图和程序间控制流图得到数据取证分析报告这一反向报告,以尽可能的搜索到所有可能的加密路径,为数据库解密提供可靠依据。
本申请的一个实施例中,考虑到Amandroid平台仅对字符串值执行恒定传播,并对字符串操作使用保守模型,从而可能导致不正确的字段(意图)解析,进而导致IDFG或ICFG可能不正确或不完整(例如,可能会丢失组件之间可能的通信)。换言之,ICC的匹配实质上是用于与目标组件的意图过滤器的字段进行通信的字段的匹配,因此,要预测ICC,则需要完成对意图(intent)和意图过滤器上的字段值的预测,例如可使用IC3工具,预测各组件的组件意图和意图过滤器的字段值。
但是,由于IC3工具无法准确预测出意图和意图过滤器上的所有字段值,因此,本实施例中基于IC3的预测结果,进一步使用概率模型计算出意图和意图过滤器上预测出的字段匹配的概率。其中,待匹配的意图和意图过滤器的相似字段数越多,匹配概率就越大。
由此,作为一种实现方式,S130中所述的根据所述通信字段对各所述组件进行排序的过程可以包括:根据所述通信字段确定组件意图以及意图过滤器;针对每个所述组件,计算所述组件的组件意图与其他组件分别对应的意图过滤器之间的匹配概率;按照匹配概率的大小对各所述组件进行排序。
示例性地,请结合参阅图2,假设图2为基于Android的停车场搜索应用程序的抽象表示,那么,该停车场搜索应用程序经反编译后可得到四个组件:list Activity、MapActivity、Dialog Activity(即图2中所示的Dial Activity)和desc Activity(即图2中所示的Desc Activity)。
首先,可通过IC3工具完成每个组件的通信字段(意图)及其过滤器字段的预测,例如,图2中所示的字段“action”、“categories”、“data”均为list Activity组件对应的通信字段,且各通信字段“action”、“categories”以及“data”分别对应的字段值为“view”、“default”、“geo”。
然后,根据前述的匹配概率计算公式计算得到各组件的意图与其他组件的意图过滤器之间的匹配概率,在此以list activity组件为例,分别计算组件listactivity的组件意图与其他组间的意图过滤器的匹配概率,具体如下。
由前述P1,1、P1,2、P1,3可以看出:list activity组件和desc Activity组件匹配的概率最高,那么,在构建停车场搜索应用程序对应的ICFG和IDFG时,需优先考虑组件匹配概率最高的DFG和CFG,再基于匹配概率最高的DFG和CFG计算ICFG和IDFG。
最后,根据计算得到匹配概率对各组件进行排序,根据排序结果生成Android应用程序组件的调用顺序,并替换Amandroid平台对ICC的分析的输出结果。其中,Amandroid平台用于组合每个组件的派生DFG和CFG来生成IDFG和ICFG。
由前述内容可以看出,本实施例中通过综合考虑IC3工具以及匹配概率,能够有效避免IDFG或ICFG可能不正确或不完整的问题出现,确保后续分析得到的加密路径的完整性。
进一步,本申请的一个实施例中,所述基于所述程序间数据流图生成数据取证分析报告的步骤,包括:在所述数据流图中的各数据流节点携带有节点编号的情况下,根据所述节点编号查找所述程序间数据流图中的数据库加密指令(如opencreatedatabase);通过所述数据库加密指令跟踪所述程序间数据流图中的各数据流图,得到秘钥来源;将所述秘钥来源写入所述数据取证分析报告中。
作为一种实现方式,在所述秘钥来源为非变量的情况下,如常量或者未携带参数的函数等,停止对各所述数据流图的跟踪,并执行所述基于所述程序间数据流图和所述秘钥来源生成所述数据取证分析报告的步骤。
作为另一种实现方式,在所述秘钥来源为变量的情况下,如变量或者携带有参数的函数等,则继续执行通过所述数据库加密指令跟踪所述程序间数据流图中的各数据流图,得到秘钥来源的步骤,直到跟踪到的秘钥来源为非变量,则执行基于所述程序间数据流图和所述秘钥来源生成所述数据取证分析报告的步骤。
示例性1,假设是基于密钥的数据库加密机制,且取证分析的目标是找到用于加密数据库的密钥的生成方法。其中,应用程序可使用密钥并结合命令opencreatedatabase(数据库文件,密码,null,钩子)来加密数据库,null表示计算中具有保留的值,用于指示指针不引用有效对象。钩子(Hook),是Windows消息处理机制的一个平台,钩子机制允许应用程序截获处理window消息或特定事件。
本实施例中,以IDFG为例,在进行加密路径分析时需要应用程序的DFG,IDFG和IR(中间态语言)。具体地,首先根据节点编号在IDFG中找到数据库加密指令,如opencreatedatabase,然后获得将invokeopencreatedatabase调用为invoke的函数,最后在DFG中跟踪密钥,以找到密钥来源。其中,假设秘钥来源为dd,那么,如果dd是常数,将停止跟踪并将其输出到数据取证分析报告中。如果dd的变量未知,则继续跟踪该变量以在DFG中找到其来源。如果dd是带有参数的函数,则将函数输出到数据取证分析报告中,并在DFG中继续跟踪参数的来源。如果dd是没有参数的函数,则将函数输出到数据取证分析报告中并停止跟踪。如果dd来自函数的参数,则将在IDFG中跟踪参数以查找函数的调用方,并在调用方的DFG中跟踪参数,由此,找到密钥来源及其生成方式,并生成数据取证分析报告,以为后续的数据解密提供参考。
示例2,如下述伪代码1所示的简化的微信应用,假设在应用程序的第597行对数据库进行加密。那么通过调用opendatabase()函数,在IDFG中搜索barr的来源,可以看出barr来自e.q的参数,因此,继续在IDFG中找到e.q的调用方b,在b的DFG中跟踪e.q的参数。其中,参见伪代码2,e.q参数来自两个变量device_id和j,因此,需分别跟踪device_id和j,发现device_id来自134行的p.getdeviceid()。j来自hey.uf()在第135行,.p.getdeviceid()是获取IMEI的函数,hey.uf()是获取unid的函数,由此,找到了简化的微信应用中用于加密数据库的密钥及其生成方式,并将结果输出到数据取证分析报告中。
伪代码1:
550public static e q(string str,string str2,boolen z)
551{
……
594sqlpool v0=new sqlpool(sqldatabase,sqlconfuguration,i);
595e evar=new e();
596barr=star2,getbytes();
597evar.tjr=v0.opendatabase(str3,barr,v1,null,268435712,evar);
……
604}
伪代码2:
132public Boolean b(string,str,long j,string str2)
133{
134device_id=p.getdevice_id();
135j=hey.uf()
136string substring=g.n(device_id+j).getbytes()).substring(0,7);
137this,tja=e.q(str,substring,false);
……
185}
需要说明的是,前述伪代码1和伪代码2中的数字即为节点编码,以用于数据库加密指令等的查找,实际应用中,节点编码可根据具体情况进行灵活设计。
此外,关于基于密文的数据库加密机制中找到用于加密数据库的密钥的生成方法,或基于ICFG的数据取证分析过程可参照示例1和示例2中的相关描述,本实施例在此不再赘述。但应注意的是,基于密文的数据库加密机制本质是Android应用程序使用SQL命令insert()将加密的数据(密文)写入到数据库中,因此这种加密取证分析的重点在于分析密文在写入到数据库之前相应应用程序加密机制的分析。
由前述给出的数据取证分析方法可以看出,本申请至少具有以下技术效果:
本申请给出的数据取证分析方法中,是一种针对安卓应用程序的静态分析方法,用以计算各组件中所有对象的指向信息,进而分析该指向信息在应用程序中经过的数据流,从而揭示待取证的秘钥信息、密文信息等在应用程序中的处理方式,从而解决了现有的数据取证方法中存在的组件间关系预测不精确、分析用时过长等问题。此外,本申请建立的程序间数据流图和程序间控制流程图还具有更高的精度。
如图3所示,为根据一示例性实施例示出的一种数据取证分析装置300的框图,该数据取证分析装置300可应用于终端设备。参照图3,数据取证分析装置300包括反编译模块310、第一构建模块320、预测模块330、第二构建模块340和报告生成模块350。
反编译模块310,用于对应用程序进行反编译得到所述应用程序中包含的各组件;第一构建模块320,用于构建各所述组件分别对应的数据流图以及控制流图;预测模块330,用于预测各组件中包括的用于组件间通信的通信字段,根据所述通信字段对各所述组件进行排序;第二构建模块340,用于根据各所述组件的排序结果,以及与各所述组件对应的数据流图、控制流图构建所述应用程序对应的程序间数据流图和程序间控制流图;报告生成模块350,用于基于所述程序间数据流图和程序间控制流图生成数据取证分析报告。
进一步,作为一种可能的实现方式,所述预测模块330具体用于根据所述通信字段确定组件意图以及意图过滤器;以及针对每个所述组件,计算所述组件的组件意图与其他组件分别对应的意图过滤器之间的匹配概率;按照匹配概率的大小对各所述组件进行排序。
关于本实施例中的装置300,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例给出的数据取证分析装置300至少具有以下技术效果。
通过对应用程序进行反编译,得到应用程序中包括的各组件,进而通过预测各组件中的通信字段以及各组件中的数据流图以及控制流图,来构建多个可能的程序间数据流图和程序间控制流图,进而基于该程序间数据流图和程序间控制流图得到数据取证分析报告这一反向报告,以尽可能的搜索到所有可能的加密路径,为数据库解密提供可靠依据。
请参阅图4,为根据一示例性实施例提供的一种电子设备400的框图,该电子设备400可至少包括处理器410,用于存储处理器410可执行指令的存储器420。其中,处理器410被配置为执行指令,以实现如上述实施例中的数据取证分析方法的全部步骤或部分步骤。
处理器410、存储器420之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,处理器410用于读/写存储器中存储的数据或程序,并执行相应地功能。
存储器420用于存储程序或者数据,如存储处理器410可执行指令。该存储器420可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read OnlyMemory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
进一步,作为一种可能的实现方式,电子设备400还可包括电源组件、多媒体组件、音频组件、输入/输出(I/O)接口、传感器组件以及通信组件等。
电源组件为电子设备400的各种组件提供电力。电源组件可以包括电源管理***,一个或多个电源、以及其他与为电子设备400生成、管理和分配电力相关联的组件。
多媒体组件包括在电子设备400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件包括一个前置摄像头和/或后置摄像头。当电子设备400处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当电子设备400处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器420或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
I/O接口为处理组件和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件包括一个或多个传感器,用于为电子设备400提供各个方面的状态评估。例如,传感器组件可以检测到电子设备400的打开/关闭状态,组件的相对定位,例如组件为电子设备400的显示器和小键盘,传感器组件还可以检测电子设备400或电子设备400一个组件的位置改变,用户与电子设备400接触的存在或不存在电子设备400方位或加速/减速和电子设备400的温度变化。传感器组件可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件被配置为便于电子设备400和其他设备之间有线或无线方式的通信。电子设备400可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备400可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
应当理解的是,图4所示的结构仅为电子设备400的结构示意图,该电子设备400还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由电子设备的处理器执行以完成上述数据取证分析方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据取证分析方法,其特征在于,包括:
对应用程序进行反编译得到所述应用程序中包含的各组件;
构建各所述组件分别对应的数据流图以及控制流图;
预测各所述组件中包括的用于组件间通信的通信字段;根据所述通信字段确定组件意图以及意图过滤器;针对每个所述组件,计算所述组件的组件意图与其他组件分别对应的意图过滤器之间的匹配概率;按照匹配概率的大小对各所述组件进行排序;
根据各所述组件的排序结果,以及与各所述组件对应的数据流图、控制流图构建所述应用程序对应的程序间数据流图和程序间控制流图;
基于所述程序间数据流图和程序间控制流图生成数据取证分析报告。
2.根据权利要求1所述的数据取证分析方法,其特征在于,根据所述通信字段对各所述组件进行排序的步骤,包括:
根据所述通信字段确定组件意图以及意图过滤器;
针对每个所述组件,计算所述组件的组件意图与其他组件分别对应的意图过滤器之间的匹配概率;
按照匹配概率的大小对各所述组件进行排序。
4.根据权利要求1所述的数据取证分析方法,其特征在于,基于所述程序间数据流图生成数据取证分析报告的步骤,包括:
在所述程序间数据流图中的各数据流节点携带有节点编号的情况下,根据所述节点编号查找所述程序间数据流图中的数据库加密指令;
通过所述数据库加密指令跟踪各所述组件对应的数据流图,得到秘钥来源;
基于所述程序间数据流图和所述秘钥来源生成所述数据取证分析报告。
5.根据权利要求4所述的数据取证分析方法,其特征在于,在所述秘钥来源为非变量的情况下,停止对各所述组件对应的数据流图的跟踪,并执行所述基于所述程序间数据流图和所述秘钥来源生成所述数据取证分析报告的步骤。
6.根据权利要求4所述的数据取证分析方法,其特征在于,在所述秘钥来源为变量的情况下,则继续执行通过所述数据库加密指令跟踪各所述组件对应的数据流图,得到秘钥来源的步骤,直到跟踪到的秘钥来源为非变量,则执行基于所述程序间数据流图和所述秘钥来源生成所述数据取证分析报告的步骤。
7.一种数据取证分析装置,其特征在于,包括:
反编译模块,用于对应用程序进行反编译得到所述应用程序中包含的各组件;
第一构建模块,用于构建各所述组件分别对应的数据流图以及控制流图;
预测模块,用于预测各组件中包括的用于组件间通信的通信字段;根据所述通信字段确定组件意图以及意图过滤器;针对每个所述组件,计算所述组件的组件意图与其他组件分别对应的意图过滤器之间的匹配概率;按照匹配概率的大小对各所述组件进行排序;
第二构建模块,用于根据各所述组件的排序结果,以及与各所述组件对应的数据流图、控制流图构建所述应用程序对应的程序间数据流图和程序间控制流图;
报告生成模块,用于基于所述程序间数据流图和程序间控制流图生成数据取证分析报告。
8.根据权利要求7所述的数据取证分析装置,其特征在于,所述预测模块具体用于根据所述通信字段确定组件意图以及意图过滤器;以及针对每个所述组件,计算所述组件的组件意图与其他组件分别对应的意图过滤器之间的匹配概率;按照匹配概率的大小对各所述组件进行排序。
9.一种电子设备,其特征在于,包括:
至少一个处理器;
与所述处理器连接的至少一个存储器;
其中,所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机指令,所述计算机指令使所述计算机执行如权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010291071.7A CN111596926B (zh) | 2020-04-14 | 2020-04-14 | 数据取证分析方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010291071.7A CN111596926B (zh) | 2020-04-14 | 2020-04-14 | 数据取证分析方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111596926A CN111596926A (zh) | 2020-08-28 |
CN111596926B true CN111596926B (zh) | 2023-02-07 |
Family
ID=72190690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010291071.7A Active CN111596926B (zh) | 2020-04-14 | 2020-04-14 | 数据取证分析方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111596926B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112580101B (zh) * | 2020-12-29 | 2023-08-08 | 厦门市美亚柏科信息股份有限公司 | 一种数据解密方法及终端 |
CN113885882B (zh) * | 2021-10-29 | 2023-03-07 | 四川效率源信息安全技术股份有限公司 | 一种还原iOS类型字符串的方法 |
CN114390012A (zh) * | 2021-12-15 | 2022-04-22 | 中国电子科技集团公司第三十研究所 | 一种基于逆向分析的旺信应用数据取证方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359352A (zh) * | 2008-09-25 | 2009-02-04 | 中国人民解放军信息工程大学 | 分层协同的混淆后api调用行为发现及其恶意性判定方法 |
WO2016101005A1 (en) * | 2014-12-23 | 2016-06-30 | University Of South Australia | Remote programmatic forensic data collection method and system |
CN106933642A (zh) * | 2015-12-29 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 应用程序的处理方法及处理装置 |
WO2017180666A1 (en) * | 2016-04-15 | 2017-10-19 | Sophos Limited | Forensic analysis of computing activity and malware detection using an event graph |
CN107832619A (zh) * | 2017-10-10 | 2018-03-23 | 电子科技大学 | Android平台下应用程序漏洞自动化挖掘***及方法 |
CN109145603A (zh) * | 2018-07-09 | 2019-01-04 | 四川大学 | 一种基于信息流的Android隐私泄露行为检测方法和技术 |
CN110008662A (zh) * | 2019-04-11 | 2019-07-12 | 北京字节跳动网络技术有限公司 | 应用程序的运行方法、装置、电子设备及可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140130153A1 (en) * | 2012-11-08 | 2014-05-08 | International Business Machines Corporation | Sound and effective data-flow analysis in the presence of aliasing |
US20180211046A1 (en) * | 2017-01-26 | 2018-07-26 | Intel Corporation | Analysis and control of code flow and data flow |
US10902121B2 (en) * | 2017-10-19 | 2021-01-26 | International Business Machines Corporation | Policy-based detection of anomalous control and data flow paths in an application program |
-
2020
- 2020-04-14 CN CN202010291071.7A patent/CN111596926B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359352A (zh) * | 2008-09-25 | 2009-02-04 | 中国人民解放军信息工程大学 | 分层协同的混淆后api调用行为发现及其恶意性判定方法 |
WO2016101005A1 (en) * | 2014-12-23 | 2016-06-30 | University Of South Australia | Remote programmatic forensic data collection method and system |
CN106933642A (zh) * | 2015-12-29 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 应用程序的处理方法及处理装置 |
WO2017180666A1 (en) * | 2016-04-15 | 2017-10-19 | Sophos Limited | Forensic analysis of computing activity and malware detection using an event graph |
CN107832619A (zh) * | 2017-10-10 | 2018-03-23 | 电子科技大学 | Android平台下应用程序漏洞自动化挖掘***及方法 |
CN109145603A (zh) * | 2018-07-09 | 2019-01-04 | 四川大学 | 一种基于信息流的Android隐私泄露行为检测方法和技术 |
CN110008662A (zh) * | 2019-04-11 | 2019-07-12 | 北京字节跳动网络技术有限公司 | 应用程序的运行方法、装置、电子设备及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
Android***恶意程序检测技术在电子取证中的应用;杨龙等;《中国司法鉴定》;20191115(第06期);全文 * |
跨即时通信平台的社交网络取证研究;李炳龙;《信息工程大学学报》;20170415;第18卷(第2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111596926A (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111596926B (zh) | 数据取证分析方法、装置及电子设备 | |
CN111178538B (zh) | 垂直数据的联邦学习方法及装置 | |
CN103942469A (zh) | 图片处理方法、装置及终端 | |
CN103914520B (zh) | 数据查询方法、终端设备和服务器 | |
US20220382884A1 (en) | Method and device for parsing shared password | |
CN109842612B (zh) | 基于图库模型的日志安全分析方法、装置及存储介质 | |
CN107659717B (zh) | 状态检测方法、装置和存储介质 | |
CN106778225A (zh) | 处理密码的方法和装置 | |
CN110929616B (zh) | 一种人手识别方法、装置、电子设备和存储介质 | |
CN104113588B (zh) | 一种互联网黄页的更新方法及装置 | |
JP2018521403A (ja) | バイナリ併合装置、その方法及び該コンピュータプログラム | |
CN109063181B (zh) | 数据配置方法、装置、服务器及存储介质 | |
CN114385487A (zh) | 一种执行时间的处理方法、装置及存储介质 | |
CN107580142B (zh) | 一种执行处理的方法和装置 | |
CN105589575A (zh) | 输入法调用方法及装置 | |
CN109842688B (zh) | 一种内容推荐方法、装置、电子设备及存储介质 | |
CN110070046B (zh) | 人脸图像识别方法及装置、电子设备和存储介质 | |
CN110457192A (zh) | 一种文件监控方法及装置、终端、存储介质 | |
CN107256151A (zh) | 页面渲染的处理方法、装置及终端 | |
CN114553552A (zh) | 数据加密方法和装置、数据解密方法和装置及存储介质 | |
CN108132885A (zh) | 数据获取方法、装置及电子设备 | |
CN111626398B (zh) | 运算方法、装置及相关产品 | |
CN110750448B (zh) | 基于符号执行的测试用例生成方法及装置 | |
CN113835820A (zh) | 图形码的显示方法及装置 | |
CN115438345A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |