[发明专利]一种Android应用中恶意行为的动态检测方法有效
申请号: | 201510203050.4 | 申请日: | 2015-04-24 |
公开(公告)号: | CN104834859B | 公开(公告)日: | 2018-04-10 |
发明(设计)人: | 张卫丰;潘天昊 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 南京知识律师事务所32207 | 代理人: | 孙雪 |
地址: | 210003 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 android 应用 恶意 行为 动态 检测 方法 | ||
1.一种Android应用中恶意行为的动态检测方法,其特征在于,包括如下步骤:
将Android应用程序的APK包转换成为相应的Java代码的步骤;
对Android应用中的Java代码进行插桩操作的步骤:在需要提取信息的地方进行代码插桩,并将插桩完成的代码放入编译器编译,形成新的APK文件;同时通过代码分析工具强制执行所有条件语句,用以扩大代码的覆盖率;
运行上个步骤形成的新的APK文件,将因插桩获取的信息保存进数据库中,并提取需要的信息,再利用Java代码分析工具产生该Android应用程序对应的调用流图及其控制流图;对于数据库中的日志信息进行分析,通过分析其与用户行为是否匹配,来判断其是否属于恶意行为;
对于判定为恶意行为的,对其进行进一步分析,以确定该恶意行为具体的类型;
所述方法对于存在的恶意行为进行进一步分析的过程具体为:
获取分析后定位得到的恶意行为的程序段;
通过调用关系图以及控制流图,找到与该程序段相关的语句;
将这些语句以谓词逻辑的形式表示为相对应的逻辑表达式;
将所述逻辑表达式放入求解器中求解;
所述将Android应用程序的APK包转换成为相应的Java代码的步骤具体为,获取需要分析的Android应用程序的APK文件并对其进行反编译,获得反编译后的Java代码,之后将获取的Java代码放入转换器,将其转换为中间表示形式,以便后面的插桩工作。
2.根据权利要求1所述的方法,其特征是,使用soot工具对获取的java代码进行插桩,具体步骤为:
在eclipse中加入soot软件包;
将所获取的java代码通过soot工具转化为Jimple中间语言;
编写soot程序对获取的java程序进行插桩操作;
编写soot程序,遍历获取java包中的每一个类;
编写soot程序,遍历每一个类中的所有方法;
对于所述方法中的赋值语句,根据其中间表示方法格式的不同,插桩相应的代码;
对于所述方法中的条件语句,根据其中间表示方法格式的不同,插桩相应的代码,并强制执行每个条件;
对于所述方法中的循环语句,根据其中间表示方法格式的不同,插桩相应的代码。
3.根据权利要求2所述的方法,其特征是,分析数据库日志信息的过程具体为:
运行编写后的soot代码;
获取插桩后soot软件输出的信息;
通过插桩后获取的信息,使用soot软件,绘制出原java程序的调用关系图;
通过插桩后获取的信息,使用soot软件,绘制出原java程序的控制流图;
通过程序的调用关系图以及控制流图,与用户行为意图进行比较,以分析该程序是否存在恶意行为;
对于存在恶意行为的程序,分析出其包含恶意行为的程序段的位置。
4.根据权利要求1所述的方法,其特征是,插桩的位置选择为,在有发送短信或者有Http链接请求或者调用危险API的地方进行插桩。
5.根据权利要求1所述的方法,其特征是,将Android应用程序的APK包转换成为相应的Java代码的过程具体如下:
下载所需要分析Android应用的APK文件;
将APK文件后缀改为zip并解压,得到其中的classes.dex;
将classes.dex复制到dex2jar.bat所在目录;
在命令行下定位到dex2jar.bat所在目录,运行dex2jar.bat classes.dex,生成classes_dex2jar.jar;
进入jdgui文件夹中的jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar,查看源代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510203050.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:工业机器人实训系统
- 下一篇:一种教学用简易生产流水线模型