Android端恶意代码检测学习之路——(2)静态分析(apk数据集的获取)

上次只是搞了一个apk进行测试,那必是不得行啊!那不得需要良性以及恶意数据集吗?

良性apk

在网上找了很久,没有找到合适的,况且就算找到了,不能确定到底是不是良性,所以!我决定!写一个爬虫爬取豌豆荚apk(按照排行榜来顺序下载)。
在这里插入图片描述
可是我不会写爬虫啊!怎么办,学呗。不得不说,尚硅谷是有东西的,起码啊,我做出来了。

本来是通过内置下载器下载的,我嫌太慢看不到进度,就调用了迅雷。(我好聪明喔)

# name:dxw
# date:2022/9/29
import urllib.request
from lxml import etree
import re
from win32com.client import Dispatch

o = Dispatch("ThunderAgent.Agent64.1")
def create_request(page):
    if(page == 1):
        url = 'https://www.wandoujia.com/top/app'
    else:
        url = 'https://www.wandoujia.com/wdjweb/api/top/more?resourceType=0&page=' + str(page) + '&ctoken=dp8cuZotkOnxT7VfvNX9zQ5S'
    headers = {
    
    
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'
    }
    request = urllib.request.Request(url = url,headers = headers)
    return request

def getcontent(request):
    response = urllib.request.urlopen(request)
    content = response.read().decode('utf-8')
    return content

def down_load(content):
    tree = etree.HTML(content)
#下载地址//li/div/h2/a/@href
#名字//li/div/h2/a/@title
    num = 0
    name_list = tree.xpath('//li/div/h2/a/text()')
    id_list = tree.xpath('//li/@data-appid')
    for i in range(len(name_list)):
        name = name_list[i]
        load = 'https://www.wandoujia.com/apps/' + str(re.findall(r"\d+\.?\d*",id_list[i])[0]) + '/download/dot?ch=detail_normal_dl'
        print(name,load)
        o.AddTask(load,name + '.apk')
        o.CommitTasks()


if __name__=="__main__":
    start_page = int(input('请输入起始页码'))
    end_page = int(input('请输入结束页码'))

    for page in range(start_page,end_page+1):
        request = create_request(page)
        content = getcontent(request)  #获取网页源码
        down_load(content)

具体代码我就不讲了,去看尚硅谷,学不会的话你把我杀了。

但是这个代码有个弊端,可以看到这个排行榜,点击查看更多之后就是第二页
在这里插入图片描述
但是!第一页的最后三个在这个代码里会再次出现在第二页前三个。(我不知道我说清楚没)

我想去重,但是我的代码能力不支持,期待有大佬指出。

另外, 最重要的一点就是,这个简单的小爬虫,它不可以跳过验证码,所以。。。可能会漏下载几个,但问题不大。

恶意数据集

这个其实没啥说的,就是去https://virusshare.com/下载。你点那个about,就能看到怎么得到注册码啥了的,但是!你得看仔细!人家让你发邮件的时候标题写什么,你按照格式发过去,就立马能收到注册码。他那是自动回复的

猜你喜欢

转载自blog.csdn.net/qq_45378281/article/details/127295163