CN110084040A - Android重打包应用的恶意代码定位装置 - Google Patents

Android重打包应用的恶意代码定位装置 Download PDF

Info

Publication number
CN110084040A
CN110084040A CN201910288263.XA CN201910288263A CN110084040A CN 110084040 A CN110084040 A CN 110084040A CN 201910288263 A CN201910288263 A CN 201910288263A CN 110084040 A CN110084040 A CN 110084040A
Authority
CN
China
Prior art keywords
android
code
packet application
sensitive api
packet
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.)
Withdrawn
Application number
CN201910288263.XA
Other languages
English (en)
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.)
Nanjing Post and Telecommunication University
Original Assignee
Nanjing Post and Telecommunication University
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 Nanjing Post and Telecommunication University filed Critical Nanjing Post and Telecommunication University
Priority to CN201910288263.XA priority Critical patent/CN110084040A/zh
Publication of CN110084040A publication Critical patent/CN110084040A/zh
Withdrawn legal-status Critical Current

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种Android重打包应用的恶意代码定位装置,所述装置包括:位置确定单元,适于当确定Android重打包应用中存在对预设的敏感API的调用时,确定所述敏感API在所述Android重打包应用中的位置;代码确定单元,适于基于所确定的所述敏感API在所述Android重打包应用中的位置和所述Android重打包应用中对所确定的敏感API的调用路径,确定所述Android重打包应用中存在的可疑代码;检测单元,适于单独执行所确定的可疑代码,以检测所述可疑代码是否为恶意代码。上述的方案,可以准确地确定Android重打包应用中存在的恶意代码。

Description

Android重打包应用的恶意代码定位装置
技术领域
本发明涉及计算机安全技术领域,特别是涉及一种Android重打包应用的恶意代码定位装置。
背景技术
移动互联网将移动通信和互联网二者合二为一,是互联网的技术、平台、商业模式和应用与移动通信技术结合并实践的活动的总称。近年来,随着互联网技术的不断发展和制造成本的降低,以智能手机为代表的移动终端设备逐渐深入人们的生活。
移动互联网技术在给我们带来便利的同时,也带来了各种隐患。尤其是在Android操作系统推出以后,凭借其开放、便于开发等特点,迅速占领了移动操作系统的半壁江山,但这也使其成为手机恶意程序攻击的目标。2018年度CVE Details报告显示,Android系统以611个漏洞位居产品漏洞数量榜前列。360互联网安全中心发布的《2018年Android恶意软件专题报告》中也指出,2018全年累计监测移动端恶意软件感染量约为1.1亿人次,平均每日恶意软件感染量高达29.2万人次。由于Android恶意应用造成的损失越来越大。因此,如何高效准确地分辨出应用中存在的威胁,在当前具有重要的研究意义。
但是,现有的Android重打包应用中恶意代码的定位方法存在着准确性低的问题。
发明内容
本发明解决的技术问题是如何准确地确定Android重打包应用中恶意代码。
为了达到上述目的,本发明实施例提供了一种Android重打包应用的恶意代码定位装置,所述装置包括:
位置确定单元,适于当确定Android重打包应用中存在对预设的敏感API的调用时,确定所述敏感API在所述Android重打包应用中的位置;
代码确定单元,适于基于所述敏感API在所述Android重打包应用中的位置和所述Android重打包应用中对所确定的敏感API的调用路径,确定所述Android重打包应用中存在的可疑代码;
检测单元,适于单独执行所确定的可疑代码,以确定所述可疑代码是否为恶意代码。
可选地,所述位置确定单元,适于对比Android重打包应用与原版Android应用的java代码,找出Android重打包应用中的新增代码模块;当确定所述新增代码模块中存在对所述敏感API的调用时,将存在对敏感API的调用的新增代码进行记录,作为敏感API在所述Android重打包应用中的位置。
可选地,所述代码确定单元,适于生成所述Android重打包应用的函数调用关系图;对所述Android重打包应用的函数调用图进行遍历,确定对所述敏感API的调用路径;当所确定的对所述敏感API的调用路径的终点为所述敏感API在所述Android重打包应用中的位置时,将对所述敏感API的调用路径对应的程序代码作为所述可疑代码。
可选地,所述代码确定单元,适于将所述Android重打包应用的安装包转换为对应的中间码文件;对转换得到的中间码文件进行分析,获取其中存在的函数调用关系;采用所获取的函数调用关系,生成所述重打包程序的函数调用图。
可选地,所述中间码文件为jimple中间码文件。
可选地,所述检测单元,适于基于所确定的可疑代码的执行行为特征,确定所述可疑代码是否为恶意代码。
可选地,所述敏感API包括以下至少一项:
恶意扣费类敏感API;
信息窃取类敏感API;
远程控制类敏感API;
恶意传播类敏感API;
资费消耗类敏感API。
与现有技术相比,本发明的有益效果为:
上述的方案,当确定Android重打包应用中存在对预设的敏感API的调用时,确定所述敏感API在所述Android重打包应用中的位置,并基于所述Android重打包应用中对所确定的敏感API的调用路径,确定所述Android重打包应用中存在的可疑代码,再通过单独执行所确定的可疑代码,以检测所述可疑代码是否为恶意代码,采用动态与静态相结合的模式,从静态的角度得到Android重打包应用程序的恶意代码调用路径,并通过完整地执行恶意代码调用路径,确保恶意行为分析的完整性,故可以提高Android重打包应用程序中恶意代码定位的准确性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种Android重打包应用的恶意代码定位方法的流程示意图;
图2示出了原版应用程序Ori中的三个Activity组成的调用关系;
图3示出了Android重打包应用Mal的函数调用关系图中所有调用了malciousMethod()方法的调用路径示意图;
图4是本发明实施例的一种Android重打包应用的恶意代码定位装置的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本发明实施例中有关方向性指示(诸如上、下、左、右、前、后等)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
如背景技术所述,现有技术主要通过特征匹配的方式进行恶意代码定位,但需要事先提取恶意代码的特征,若特征未知,则会产生漏报。
本发明的技术方案通过当确定Android重打包应用中存在对预设的敏感API的调用时,确定所述敏感API在所述Android重打包应用中的位置,并基于所述Android重打包应用中对所确定的敏感API的调用路径,确定所述Android重打包应用中存在的可疑代码,再通过单独执行所确定的可疑代码,以检测所述可疑代码是否为恶意代码,采用动态与静态相结合的模式,从静态的角度得到Android重打包应用程序的恶意代码调用路径,并通过完整地执行恶意代码调用路径,确保恶意行为分析的完整性,故可以提高Android重打包应用程序中恶意代码定位的准确性。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明实施例的一种Android重打包应用的恶意代码定位方法的流程示意图。参见图1,一种Android重打包应用的恶意代码定位方法,具体可以包括如下的步骤:
步骤S101:当确定Android重打包应用中存在对预设的敏感API的调用时,确定所述敏感API在所述Android重打包应用中的位置。
在具体实施中,所述敏感应用程序接口(敏感API)为一些常见的恶意程序倾向于调用的应用程序接口。其中,一些常见的恶意程序按照行为划分为隐私窃取、远程控制、恶意扣费、恶意传播、资费消耗、系统破坏、流氓行为和数据破坏八类。在本发明一实施例中,所述敏感API包括五种最常见的恶意程序倾向于调用的API,例举如下:
(1)恶意扣费类敏感API,如sendTextMessage()、abortBroadcast()、undle.get(“pdus”)、registerReceiver()、setPriority()和sendTextMessage()等。
(2)信息窃取类敏感API,如getContentResolver()、query()和Socket()等。
(3)远程控制行为类敏感API,如:getContentResolver()、query()、sendTextMessage()、Socket()和getAssets()等。
(4)恶意传播类敏感API,如getContentResolver()、query()sendTextMessage()Socket()、getAssets()和Runtime.getRuntime().exec()等。
(5)资费消耗类敏感API,如sendTextMessage()、abortBroadcast()、bundle.get(“pdus”)、registerReceiver()、setPriority()、sendTextMessage()等。
在具体实施中,在判断Android重打包应用中是否存在对预设的敏感API的调用时,可以首先反编译重打包应用程序以及原版应用程序的安装包,如采用反编译工具(如jadx、jd-gui等)反编译重打包应用程序以及原版应用程序的安装包,再通过对比Android重打包应用与原版Android应用的java代码,如字符串比对的方式等,查找所述Android重打包应用中是否存在对应的对预设的敏感API的调用。
其中,当所述Android重打包应用中是否存在对应的对预设的敏感API的调用时,通过对比Android重打包应用与原版Android应用的java代码,找到Android重打包应用中的新增代码模块;之后,再判断找出的新增代码模块中是否存在对预设的敏感API的调用,当确定新增代码模块中存在对预设的敏感API的调用时,则将该新增代码模块作为敏感API在所述Android重打包应用中的位置。
步骤S102:基于所述敏感API在所述Android重打包应用中的位置和所述Android重打包应用中对所确定的敏感API的调用路径,确定所述Android重打包应用中存在的可疑代码。
在具体实施中,在基于所述Android重打包应用中对所确定的敏感API的调用路径,确定所述Android重打包应用中存在的可疑代码时,可以首先生成所述Android重打包应用的函数调用关系图,再通过对所述Android重打包应用的函数调用图进行遍历,确定对所述敏感API的调用路径,并将所确定的对所述敏感API的调用路径对应的程序代码作为所述可疑代码。
在本发明一实施例中,在生成所述Android重打包应用的函数调用关系图时,首先,将所述Android重打包应用的安装包转换为对应的中间码文件,如采用soot工具对Android重打包应用的安装包文件进行转化,得到对应的jimple中间码。接着,对转换得到的中间码文件进行分析,得到其中存在的函数调用关系,如通过对jimple中间码中的invoke语句的记录以及对Android应用程序中的Intent进行追踪,得到程序中某个方法会调用哪些方法或者组件,由此得到重打包应用程序的函数调用图。
在具体实施中,在基于所述敏感API在所述Android重打包应用中的位置和所述Android重打包应用中对所确定的敏感API的调用路径,确定所述Android重打包应用中存在的可疑代码时,首先对所述Android重打包应用的函数调用图进行遍历,确定对所述敏感API的调用路径。接着,对所述敏感API的调用路径的终点是否为之前所确定的所述敏感API在所述Android重打包应用中的位置。其中,当所确定的对所述敏感API的调用路径的终点为所述敏感API在所述Android重打包应用中的位置时,将对所述敏感API的调用路径对应的程序代码作为所述可疑代码。
步骤S103:单独执行所确定的可疑代码,以检测所述可疑代码是否为恶意代码。
在具体实施中,通过单独执行所确定的可疑代码,获取该可疑代码的执行行为内容,以确定所述可疑代码是否具备恶意执行行为模型,从而确定该可疑代码是否为恶意代码。
在本发明一实施例中,单独执行所确定的可疑代码,以检测所述可疑代码是否为恶意代码时,可以首先创建一个空白的Android应用程序,将找出的恶意代码以及执行这段代码需要的xml文件和资源文件添加入该空白Android应用程序中,再选择一种方式执行恶意代码(如设置按钮监听器来触发恶意代码的执行),观察其执行行为的行为特征,并根据其特征,判断其敏感API的调用是否为恶意调用。
下面将结合具体的实例,对本发明实施例中的Android重打包应用的恶意代码定位方法做解释。
假设有一Android恶意重打包应用(APP)和原版应用,Android恶意重打包应用的名称为Mal,原版应用的名字为Ori。其中,Ori由三个Activity组成:
com.example.testapplication.MainActivity组件;
com.example.testapplication.DisplayMainActivity组件;
com.example.impicitcall.AnotherActivity组件。
其中,com.example.testapplication.MainActivity是应用的入口Activity组件。
图2示出了Ori中上述的三个Activity组成的调用关系。其中:
com.example.testapplication.MainActivity组件通过Intent的显示调用方式调用com.example.testapplication.DisplayMainActivity组件,代码如下:
Intent intent=new Intent(MainActivity.this,DisplayActivity.
class);
然后,再调用startActivity()方法发送Intent,代码如下:
startActivity(intent);
com.example.testapplication.MainActivity组件又通过Intent的隐式调用方式调用com.example.impicitcall.AnotherActivity组件。其中,com.example.testapplication.MainActivity组件的Intent设置代码如下:
Intent intent=new Intent();
intent.setAction("com.example.testapplication.testImplicitCall");
intent.addCategory("com.example.testapplication.category");
通过setAction()方法和addCategory()方法给intent添加Action属性和Category属性,然后再调用startActivity()方法发送Intent:
startActivity(intent);
因为AnotherActivity在Android应用程序中的AndroidManifest文件中添加了intent-fileter,其中设置了如下语句:
在AnotherActivity的onCreate()方法中,使用下列语句实现Intent的接收:Intent intent=getIntent();这样,AnotherActivity就可以被MainActivity通过Intent隐式调用了。
通过上述的分析可知,Android恶意重打包应用Mal并未对原版应用Ori的结构进行修改,只是在com.example.impicitcall.AnotherActivity组件添加了方法malciousMethod(),并在onCreate()方法中调用了malciousMethod()方法,且malciousMethod()方法调用了敏感API。
本发明实施例中提供的Android重打包应用的恶意代码定位方法的目标是定位上述的实例中的malciousMethod()的调用路径,并把调用路径单独执行,获悉其行为的内容,以精确判断其是否为恶意代码,具体地:
首先,总结恶意APP经常调用的敏感API。
接着,使用反编译工具(如jadx等)反编译出Ori和Mal的Java代码及各种资源文件。
之后,通过对从Ori中反编译出来的Java文件和Mal中反编译出来的Java文件进行比较,发现原版应用Ori中没有malciousMethod()方法,而且malciousMethod()方法还调用了我们总结出来的敏感API,所以将其作为恶意调用嫌疑对象。
然后,将Mal的apk文件解析为jimple文件,即把classes.dex中的Java代码解析为jimple文件。
接着,生成Mal的函数调用图(即方法调用图)。
其中,Android重打包应用中函数的调用关系包括以下两种类型:
情况一:通过对象调用或者静态调用。例如,下面的语句:
intent.setAction("com.example.testapplication.testImplicitCall");
其jimple格式为:
virtualinvoke$r7.<android.content.Intent:android.content.IntentsetAction(java.lang.String)>("com.example.testapplication.testImplicitCall");
可以看出其中的“android.content.Intent”表明对象$r7的类,“android.content.Intent”表明setAction()方法的返回值是Intent。setAction后面的括号里的java.lang.String表示的是setAction()方法的形式参数,最后的小括号里是方法的实际参数。由此可见,jimple将Java代码解析得十分详细。
通过继续前往android.content.Intent.jimple文件中查找setAction()方法的内容,获悉setAction()方法调用了哪些方法。以此类推,便可以最终生成函数调用关系图。当然,此处的setAction()方法是Android的jar包里的方法,相当于一个API,是不会生成一个jimple文件的,所以已经无法也没有必要获悉setAction()调用了哪些其他方法了。
情况二:通过Intent调用其他组件。
Intent调用又包括显示调用和隐式调用两种方式。显示调用,如MainActivity调用DisplayActivity;隐式调用,如MainActivity调用AnotherActivity。
Intent调用中的显示调用以MainActivity调用DisplayActivity为例,Intent的设置语句为:
Intent intent=new Intent(MainActivity.this,DisplayActivity.class);
其jimple格式为:
$r7=new android.content.Intent;
$r2=$r0.<com.example.testapplication.MainActivity$1:
com.example.testapplication.MainActivity this$0>;
specialinvoke$r7.<android.content.Intent:void
<init>(android.content.Context,java.lang.Class)>($r2,class
"Lcom/example/testapplication/DisplayActivity;");
通过上述的代码可知,原代码中的DisplayActivity.class被解析为"L+DisplayActivity的路径"。根据com.example.testapplication.DisplayMainActivity组件的路径,可以找到jimple文件中的com.example.testapplication.DisplayActivity.jimple文件。然后,通过分析com.example.testapplication.DisplayMainActivity组件的jimple文件就可以知道com.example.testapplication.DisplayMainActivity组件的生命周期函数都调用了哪些方法。依此类推,可以回溯生成组件调用路径。
Intent的隐式调用以MainActivity调用AnotherActivity为例,Intent设置语句为:
Intent intent=new Intent();
intent.setAction("com.example.testapplication.testImplicitCall");
intent.addCategory("com.example.testapplication.category");
其jimple格式为:
$r7=new android.content.Intent;
specialinvoke$r7.<android.content.Intent:void<init>()>();
virtualinvoke$r7.<android.content.Intent:android.content.Intent
setAction(java.lang.String)>("com.example.testapplication.tes
tImplicitCall");
virtualinvoke$r7.<android.content.Intent:android.content.Intent
addCategory(java.lang.String)>("com.example.testapplication.category");
通过上述jimple代码可以获取Intent对象$r7的Action属性和Category属性信息。然后,从AndroidManifest文件中找到intent-filter符合条件的组件。从上文可以知道,com.example.impicitcall.AnotherActivity组件的intent-filter是符合条件的,这样便寻找到该Intent会调用的组件。
根据情况,反复使用上述情况一、情况二的函数调用关系的确定方法,就可以生成整个Mal应用程序的函数调用关系图。
接着,根据筛选出来的敏感API,即malciousMethod()方法,通过遍历整个Mal应用程序的函数调用关系图,可以得到所有调用了malciousMethod()方法的路径,所得到的路径如图3所示。
最后,把上一步提取出来的敏感API调用路径对应的程序代码单独提取出来并单独执行,再通过对其执行行为内容进行分析,判断其是否为恶意调用。当确定所提取的敏感API调用路径对应的程序代码的执行行为为预设的恶意行为模式时,可以确定该可疑代码为恶意代码。
上述对本发明实施例中的方法进行了详细的描述,下面将对上述的方法对应的装置进行介绍。
图4示出了本发明实施例中的一种Android重打包应用的恶意代码定位装置的结构示意图。参见图4,一种Android重打包应用的恶意代码定位装置40,可以包括位置确定单元401、代码确定单元402和检测单元403,其中:
所述位置确定单元401,适于当确定Android重打包应用中存在对预设的敏感API的调用时,确定所述敏感API在所述Android重打包应用中的位置;
所述代码确定单元402,适于基于所述敏感API在所述Android重打包应用中的位置和所述Android重打包应用中对所确定的敏感API的调用路径,确定所述Android重打包应用中存在的可疑代码;
所述检测单元403,适于单独执行所确定的可疑代码,以确定所述可疑代码是否为恶意代码。
在本发明一实施例中,所述位置确定单元401,适于对比Android重打包应用与原版Android应用的java代码,找出Android重打包应用中的新增代码模块;当确定所述新增代码模块中存在对所述敏感API的调用时,将存在对敏感API的调用的新增代码进行记录,作为敏感API在所述Android重打包应用中的位置。
在本发明另一实施例中,所述代码确定单元402,适于生成所述Android重打包应用的函数调用关系图;对所述Android重打包应用的函数调用图进行遍历,确定对所述敏感API的调用路径;当所确定的对所述敏感API的调用路径的终点为所述敏感API在所述Android重打包应用中的位置时,将对所述敏感API的调用路径对应的程序代码作为所述可疑代码。
在本发明又一实施例中,所述代码确定单元403,适于将所述Android重打包应用的安装包转换为对应的中间码文件;对转换得到的中间码文件进行分析,获取其中存在的函数调用关系;采用所获取的函数调用关系,生成所述重打包程序的函数调用图。其中,所述中间码文件可以为jimple中间码文件。
在本发明一实施例中,所述检测单元403,适于基于所确定的可疑代码的执行行为特征,确定所述可疑代码是否为恶意代码。
在具体实施中,所述敏感API可以包括恶意扣费类敏感API、信息窃取类敏感API、远程控制类敏感API、恶意传播类敏感API和资费消耗类敏感API中至少一项。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行所述的Android重打包应用的恶意代码定位方法的步骤。其中,所述Android重打包应用的恶意代码定位方法请参见前述部分的详细介绍,不再赘述。
本发明实施例还提供了一种终端,包括存储器和处理器,所述存储器上储存有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行所述的Android重打包应用的恶意代码定位方法的步骤。其中,所述Android重打包应用的恶意代码定位方法请参见前述部分的详细介绍,不再赘述。
采用本发明实施例中的上述的方案,当确定Android重打包应用中存在对预设的敏感API的调用时,确定所述敏感API在所述Android重打包应用中的位置,并基于所述Android重打包应用中对所确定的敏感API的调用路径,确定所述Android重打包应用中存在的可疑代码,再通过单独执行所确定的可疑代码,以检测所述可疑代码是否为恶意代码,采用动态与静态相结合的模式,从静态的角度得到Android重打包应用程序的恶意代码调用路径,并通过完整地执行恶意代码调用路径,确保恶意行为分析的完整性,故可以提高Android重打包应用程序中恶意代码定位的准确性。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,本发明要求保护范围由所附的权利要求书、说明书及其等效物界定。

Claims (7)

1.一种Android重打包应用的恶意代码定位装置,其特征在于,包括:
位置确定单元,适于当确定Android重打包应用中存在对预设的敏感API的调用时,确定所述敏感API在所述Android重打包应用中的位置;
代码确定单元,适于基于所述敏感API在所述Android重打包应用中的位置和所述Android重打包应用中对所确定的敏感API的调用路径,确定所述Android重打包应用中存在的可疑代码;
检测单元,适于单独执行所确定的可疑代码,以确定所述可疑代码是否为恶意代码。
2.根据权利要求1所述的Android重打包应用的恶意代码定位装置,其特征在于,所述位置确定单元,适于对比Android重打包应用与原版Android应用的java代码,找出Android重打包应用中的新增代码模块;当确定所述新增代码模块中存在对所述敏感API的调用时,将存在对敏感API的调用的新增代码进行记录,作为敏感API在所述Android重打包应用中的位置。
3.根据权利要求2所述的Android重打包应用的恶意代码定位装置,其特征在于,所述代码确定单元,适于生成所述Android重打包应用的函数调用关系图;对所述Android重打包应用的函数调用图进行遍历,确定对所述敏感API的调用路径;当所确定的对所述敏感API的调用路径的终点为所述敏感API在所述Android重打包应用中的位置时,将对所述敏感API的调用路径对应的程序代码作为所述可疑代码。
4.根据权利要求2所述的Android重打包应用的恶意代码定位装置,其特征在于,所述代码确定单元,适于将所述Android重打包应用的安装包转换为对应的中间码文件;对转换得到的中间码文件进行分析,获取其中存在的函数调用关系;采用所获取的函数调用关系,生成所述重打包程序的函数调用图。
5.根据权利要求4所述的Android重打包应用的恶意代码定位装置,其特征在于,所述中间码文件为jimple中间码文件。
6.根据权利要求1所述的Android重打包应用的恶意代码定位装置,其特征在于,所述检测单元,适于基于所确定的可疑代码的执行行为特征,确定所述可疑代码是否为恶意代码。
7.根据权利要求1至6任一项所述的Android重打包应用的恶意代码定位装置,其特征在于,所述敏感API包括以下至少一项:
恶意扣费类敏感API;
信息窃取类敏感API;
远程控制类敏感API;
恶意传播类敏感API;
资费消耗类敏感API。
CN201910288263.XA 2019-04-11 2019-04-11 Android重打包应用的恶意代码定位装置 Withdrawn CN110084040A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910288263.XA CN110084040A (zh) 2019-04-11 2019-04-11 Android重打包应用的恶意代码定位装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910288263.XA CN110084040A (zh) 2019-04-11 2019-04-11 Android重打包应用的恶意代码定位装置

Publications (1)

Publication Number Publication Date
CN110084040A true CN110084040A (zh) 2019-08-02

Family

ID=67414775

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910288263.XA Withdrawn CN110084040A (zh) 2019-04-11 2019-04-11 Android重打包应用的恶意代码定位装置

Country Status (1)

Country Link
CN (1) CN110084040A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111865910A (zh) * 2020-06-09 2020-10-30 北京邮电大学 一种针对应用恶意代码检测与定位的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111865910A (zh) * 2020-06-09 2020-10-30 北京邮电大学 一种针对应用恶意代码检测与定位的方法

Similar Documents

Publication Publication Date Title
US12032691B2 (en) Behavioral threat detection engine
Carmony et al. Extract Me If You Can: Abusing PDF Parsers in Malware Detectors.
US9973517B2 (en) Computing device to detect malware
Jueckstock et al. Visiblev8: In-browser monitoring of javascript in the wild
Baliga et al. Detecting kernel-level rootkits using data structure invariants
Liu et al. {FANS}: Fuzzing android native system services via automated interface analysis
US9135443B2 (en) Identifying malicious threads
Canfora et al. Acquiring and analyzing app metrics for effective mobile malware detection
US20110307956A1 (en) System and method for analyzing malicious code using a static analyzer
CN105491053A (zh) 一种Web恶意代码检测方法及系统
Gianazza et al. Puppetdroid: A user-centric ui exerciser for automatic dynamic analysis of similar android applications
Li et al. Opcode sequence analysis of Android malware by a convolutional neural network
CN101964026A (zh) 网页挂马检测方法和系统
US9990500B2 (en) Determining application vulnerabilities
CN104392177A (zh) 基于安卓平台的病毒取证系统及其方法
CN104866764B (zh) 一种基于对象引用图的Android手机恶意软件检测方法
CN105740711A (zh) 一种基于内核对象行为本体的恶意代码检测方法及系统
Qin et al. Nsfuzz: Towards efficient and state-aware network service fuzzing
CN107103237A (zh) 一种恶意文件的检测方法及装置
US20240241954A1 (en) Method of detecting android malware based on heterogeneous graph and apparatus thereof
WO2021146988A1 (en) Method and apparatus for protecting smart contracts against attacks
CN114091031A (zh) 基于白规则的类加载防护方法及装置
CN111428239A (zh) 一种恶意挖矿软件的检测方法
CN116450533B (zh) 用于应用程序的安全检测方法、装置、电子设备和介质
CN110084040A (zh) Android重打包应用的恶意代码定位装置

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
WW01 Invention patent application withdrawn after publication

Application publication date: 20190802

WW01 Invention patent application withdrawn after publication