关于Androi恶意应用检测的记录

1. 数据准备阶段

软件爬取

恶意应用,待定,从开源项目获取,或者自己搞

非恶意应用:从应用市场爬取,不过目前看来,爬四五个就会被限制,爬虫代码如下

# coding=utf-8
import urllib
import requests
import re
import time
import socket
#timeout = 5
#socket.setdefaulttimeout(timeout)
from bs4 import BeautifulSoup

def parser_apks(self, count=30):
    _root_url = "http://app.mi.com"  # 应用市场主页网址
    res_parser = {}
    # 设置爬取的页面,从第一页开始爬取,第一页爬完爬取第二页,以此类推
    page_num = 1
    while count:
        # 获取应用列表页面
        wbdata = requests.get("http://app.mi.com/catTopList/27?page=" + str(page_num)).text
        print("开始爬取第" + str(page_num) + "页")
        # 解析应用列表页面内容
        soup = BeautifulSoup(wbdata, "html.parser")
        links = soup.find_all("a", href=re.compile("/details?"), class_="", alt="")
        for link in links:
             # 获取应用详情页面的链接
            detail_link = urllib.parse.urljoin(_root_url, str(link["href"]))
            package_name = detail_link.split("=")[1]
            download_page = requests.get(detail_link).text
            #解析应用详情页面
            soup1 = BeautifulSoup(download_page, "html.parser")
            download_link = soup1.find(class_="download")["href"]
            #获取直接下载的链接
            download_url = urllib.parse.urljoin(_root_url, str(download_link))
            # 解析后会有重复的结果,通过判断去重
            if download_url not in res_parser.values():
                res_parser[package_name] = download_url
                count = count - 1
            if count == 0:
                break
        if count > 0:
            page_num = page_num + 1
    print("爬取apk数量为: " + str(len(res_parser)))
    return res_parser

def craw_apks(self, count=30, save_path="./apk/"):
    res_dic = parser_apks(count)

    for apk in res_dic.keys():
        print("正在下载应用: " + apk)
        request = urllib.request.urlretrieve(res_dic[apk], save_path + apk + ".apk")
        print("下载完成")
        time.sleep(5) #等待一会

if __name__ == "__main__":
    craw_apks(30)

IDE

android studio,打开并反编译一个apk,可以看到.xml文件的内容信息,使用的sdk,申请的权限信息等

Xposed使用教程

Xposed 插件开发之一: Xposed入门:https://blog.csdn.net/niubitianping/article/details/52571438

Xposed地址:https://github.com/rovo89/Xposed

Xposed框架实现Android中的Hook一个例子:https://www.jianshu.com/p/372630e37683

Xposed 的一个教程,从模拟器开始:https://juejin.im/entry/5900145b0ce463006146f26b

Android 神器 xposed 框架使用指南:https://blog.csdn.net/fuchaosz/article/details/53143216

xposed开发入门向之入门前准备工作 模拟器安装xposed框架:https://www.52pojie.cn/forum.php?mod=viewthread&tid=912109

Android Studio 3.0.1 编写 Xposed 插件入门记录:https://zhuanlan.zhihu.com/p/35003478

分析工具

DroidBox is developed to offer dynamic analysis of Android applications:https://github.com/pjlantz/droidbox

2. 特征工程

恶意特征

Android恶意软件特征及分类:http://www.voidcn.com/article/p-vmmybefx-cb.html

Android恶意软件检测研究与进展_彭国军:http://gb.oversea.cnki.net/KCMS/detail/detail.aspx?filename=WHDY201501003&dbcode=CJFD&dbname=CJFD2015

卿斯汉. Android安全研究进展[J].软件学报,2016, 27(1): 45-71.http://www.jos.org.cn/1000-9825/4914.html

QING Si-Han. Research Progress on Android Security[J]. Ruan Jian Xue Bao/ Journal of Software, 2016, 27(1): 45-71.http://www.jos.org.cn/1000-9825/4914.html 

特征选择

常用特征选择算法综述:https://www.cnblogs.com/heaad/archive/2011/01/02/1924088.html

特征选择及mRMR算法解析:https://www.jianshu.com/p/04d965e35b6d

 

3. 算法模型

xgboost教程

XGBOOST参数解析与示例:https://www.cnblogs.com/wj-1314/p/9402324.html

XGBOOST从原理到实战二分类 、多分类:https://blog.csdn.net/HHTNAN/article/details/81079257

手把手教写出XGBoost实战程序:https://juejin.im/post/5a1bb29e51882531ba10aa49

机器学习XGBoost算法使用:http://irory.me/blog/16

XGBoost使用教程(纯xgboost方法):https://blog.csdn.net/u011630575/article/details/79418138

XGBoost和LightGBM对GBDT的改进:https://www.jianshu.com/p/4ead72443a58

基于聚类和XGboost算法的心脏病预测:http://www.c-s-a.org.cn/html/2019/1/6729.html

相关项目

微软恶意软件分类挑战,malware-detection:https://github.com/dchad/malware-detection

用机器学习进行恶意软件检测——以阿里云恶意软件检测比赛为例:https://xz.aliyun.com/t/3704 代码地址:https://github.com/Rman0fCN/ML_Malware_detect

天池比赛实践——阿里云安全恶意程序检测(基于机器学习算法XGBoost): https://blog.csdn.net/weixin_41065383/article/details/89175233

3 安装环境

Mac 安装 adb (Android调试桥):https://blog.csdn.net/soindy/article/details/71700745

Android模拟器环境中安装和删除应用程序:https://blog.csdn.net/lincyang/article/details/5794565

Android模拟器下安装APP报INSTALL_FAILED_NO_MATCHING_ABIS错误解决方案:https://blog.csdn.net/stemq/article/details/51502759

不同的cpu架构会有指令集兼容性的问题,导致软件安装的时候不成功,用android stdio安装的时候发现,arm架构的模拟器启动起来特别慢,有可能是android版本问题。

4. 相关研究

多维敏感特征的Android恶意应用检测:http://www.jsjkx.com/CN/10.11896/j.issn.1002-137X.2019.02.015

恶意软件识别方法研究与应用_陈维http://cdmd.cnki.com.cn/Article/CDMD-10614-1017066685.htm

基于机器学习的高效恶意软件分类系统:http://blog.leanote.com/post/sixiao/%E8%AE%BA%E6%96%87

基于API序列特征和统计特征组合的恶意样本检测框架:http://jst.tsinghuajournals.com/CN/rhhtml/20180510.htm#outline_anchor_21

5. 一些检测网站

Hybrid Analysis 主要是静态和权限:https://www.hybrid-analysis.com/recent-submissions?filter=url&page=67&lang=zh

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值