python 自动下载文件_利用Python进行SEPM virus definition自动下载:(一)环境准备及页面分析...

1、背景说明:

专线环境中有一套“Symantec Enpoint Protection Manager”(简称SEPM)软件,由于不能访问因特网,所以杀毒软件定义包文件等,需要每日手动下载后,拷贝到SEPM所在的服务器上。

借助于Python写一个程序,每天定时的去下载这些定义包,等到上班后直接进行拷贝。

2、 环境准备:

本程序需要借助于Python程序和一些软件包。

2.1 Python软件及IDE安装

Python及IDE的安装网上有很多,可以自行搜索,

2.2 Python库安装:

本程序需要另外安装以下两个库:

名称

PyPI链接

说明

requests

URL访问,文件下载

tqdm

模拟下载进度条显示

安装过程:

①、查看已安装 Package:

# pip list

910489a4f21485db2f3a09f0df845a0f.png

②、安装 Package:

# pip install PackageName

85d1220beac17abee753e8a66d266c8a.png

2.3 IDE环境配置

Pycharm设置

打开PyCharm的环境设置(Configure>Settings),然后选择“Project Interpreter”,再右侧的“Project Interpreter”中选择我们的Python环境,如果你只有一个默认环境,这个直接设置即可。

d67efc044ec2f2f0f73fadb990b4078c.png

选择了环境后,下方会加载出,此环境中已经安装的软件包

b40feaa05b4cd354fe3efe67258770f1.png

Visual Studio Code设置

需要先新建一个工作空间,然后通过快捷键“Ctrl + Shift + P”打开“命令选项板”,在其中输入“python:select interpreter”,然后启动“Python:选择解释器”,在已识别到的环境中,选择我们需要的环境即可。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

设置好解释器后,会在工作区目录下生成一个settings.json文件,里面保存着Python环境相关信息。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

新建一个Python文件,命名为“SEPDefineDown.py”,在右面的编辑区就可以编辑代码了。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

3 编程前的网页分析

Symantec被博通收购过后,网页显示的布局没有多大的变化。

定义包的下载链接为:

3.1 页面显示布局分析

我们以SEPM14的页面为例进行分析,以获取Windows 64-Bit平台的定义包信息。

首先,页面布局为:

f474fed16634c05fb27e2d8e95731e24.png

根据需求,找出我们需要的内容为:

我们需要获取到SEPM14定义包有关的信息,包括:文件名称、文件下载URL、文件的大小、文件的MD5值。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

3.2 借助开发者工具分析

我们在网页中右击,点击“查看页面源代码”:

网页的源代码内容很少,没有我们需要的信息。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

打开浏览器的开发者模式(F12),然后按“F5”进行页面内容的刷新,。

依次通过“网络>XHR”监测页面的XHR请求。这里发现页面加载了4个JSON文件,其中第四个JSON文件中包含我们需要的文件URL等信息。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

3.3 JSON文件分析

我们需要的内容在第四个JSON文件中,但是第四个JSON文件的URL中包含“updateddate”参数。

“locale”字段位于第二个JSON文件中,但是这个不是变化的,所以我们可以不用管。

“vanityurl”字段位于第三个JSON文件中,但是这个不是变化的,我们也可以不管。为了程序的健壮性,编程的时候,可以把这两个参数的值也用程序处理JSON内容获取

我们对其他三个JSON文件的URL及文件的内容进行分析,可以发现“JSON文件URL4”中的“updateddate”字段内容位于“JSON文件3”的内容中,“JSON文件URL3”中的“lastpubdate”字段内容位于“JSON文件1”的内容中。

我们对第1、3、4个JSON的文件内容先进行分析。

第1个JSON文件包含“lastpubdate”内容,结构如下:

{

"content_id":"12345678910",

"content_type":"Page",

"lastpubdate":"2020-04-28-11:15:29",

"lastnavdate":"2020-04-28-06:10:51"

}

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

第3个JSON文件的结构:

{

……,

"updateddate":"2020-04-28-10:22:44",

……

}

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

第4个JSON文件的结构:

{

"groups":

{

"packages":

{……}

……

{

"id":"jdb_core3sds_package",

……

"file":

{"name":"jdb/core3sds/vd593617core3sds.jdb",

"_url_":"https://definitions.symantec.com/defs/jdb/core3sds/vd593617core3sds.jdb",

"ftp_url_":"http://definitions.symantec.com/defs/jdb/core3sds/vd593617core3sds.jdb",

"created_date":"4/28/2020",

"release_date":"4/28/2020",

"size":"54.21 MB",

"md5":"6654672CC5BAC2AD0ED9E383FFFC0F81",

"md5_url_":"security-response/glossary",

"md5_all_url":"https://www.broadcom.com/avcenter/download/md5-hash.txt"

}

}

}

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

后面可以通过编程对JSON文件进行处理(Python有个内置的JSON文件处理库),得到我们需要的URL等信息,之后再进行下载等操作。

利用Python进行SEPM virus definition自动下载:(二)代码实现

https://blog.51cto.com/3chou/2491348

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值