Python实例分享:快速查找出被挂马的文件


Posted in Python onJune 08, 2014

思路

需要实现准备一份未受感染的源代码和一份可能受感染的源代码,然后运行以下脚本,就能找出到底哪些文件被挂马了。

其中,主要是根据比对2份文件的md5值来过滤可能被挂马的文件(确切的说应该是被修改过的文件)

Python脚本

__author__ = 'Flying'
#coding:utf-8
#Date:2014.6.5
#检测修改过的文件
import os,sys,hashlib,datetime
global_DirOld = ""
global_DirNew = ""
global_FilesList = []
#输入要比对的文件路径
def InputDirPath():
    global global_DirOld,global_DirNew
    global_DirOld = unicode(raw_input("请输入备份文件所在目录:"),"utf-8")
    while not os.path.exists(global_DirOld):
        print  u"指定的路径不存在,请重新输入"
        global_DirOld = unicode(raw_input("请输入备份文件所在目录:"),"utf-8")
    global_DirNew = unicode(raw_input("请输入要检测文件的目录:"),"utf-8")
    while not os.path.exists(global_DirNew):
        print  u"指定的路径不存在,请重新输入"
        global_DirNew = unicode(raw_input("请输入要检测文件的目录:"),"utf-8")
#将数据保存到文件中
def SaveToFile(filePath,content):
    try:
        f = open(filePath,"a+")
        f.write(content.encode("utf-8") + "\n")
        f.close()
    except Exception,ex:
        print "Error:" + str(ex)
#计算文件的MD5值
def CalcMD5(filepath):
    try:
        #以二进制的形式打开
        with open(filepath,'rb') as f:
            md5obj = hashlib.md5()
            md5obj.update(f.read())
            hash = md5obj.hexdigest()
            return hash
    except Exception,ex:
        print "Error:" + str(ex)
        return None
#遍历目录下的所有文件
def GetAllSubFiles():
    global global_FilesList
    for dir in os.walk(global_DirNew):
        for file in dir[2]:
            filePath = dir[0] + os.sep + file
            global_FilesList.append(filePath[len(global_DirNew)+1:])
#列出新增文件和变动的文件
def ListChangedFiles():
    global global_DirOld,global_DirNew,global_FilesList
    print u"变动或新增的文件:"
    for file in global_FilesList:
        filePathOld = global_DirOld + os.sep + file
        filePathNew = global_DirNew + os.sep + file
        if not os.path.exists(filePathOld) or CalcMD5(filePathOld)!=CalcMD5(filePathNew):
            content = "[" + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')+ "]" + filePathNew
            print content
            SaveToFile("ChangedFiles.txt",content)
if __name__=="__main__":
    InputDirPath()
    GetAllSubFiles()
    ListChangedFiles()

脚本执行结果

Python实例分享:快速查找出被挂马的文件
 

Python 相关文章推荐
python中的多重继承实例讲解
Sep 28 Python
python使用wxPython打开并播放wav文件的方法
Apr 24 Python
Python使用os模块和fileinput模块来操作文件目录
Jan 19 Python
分享一下如何编写高效且优雅的 Python 代码
Sep 07 Python
通过python+selenium3实现浏览器刷简书文章阅读量
Dec 26 Python
基于python 二维数组及画图的实例详解
Apr 03 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
Feb 11 Python
Python按钮的响应事件详解
Mar 04 Python
详解Python基础random模块随机数的生成
Mar 23 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
Feb 25 Python
Python celery原理及运行流程解析
Jun 13 Python
Python 实现进度条的六种方式
Jan 06 Python
python小技巧之批量抓取美女图片
Jun 06 #Python
Python学习笔记(二)基础语法
Jun 06 #Python
pycharm 使用心得(九)解决No Python interpreter selected的问题
Jun 06 #Python
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 #Python
pycharm 使用心得(七)一些实用功能介绍
Jun 06 #Python
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 #Python
pycharm 使用心得(五)断点调试
Jun 06 #Python
You might like
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
Laravel5框架添加自定义辅助函数的方法
2018/08/01 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
javaScript+turn.js实现图书翻页效果实例代码
2017/02/16 Javascript
js a标签点击事件
2017/03/30 Javascript
JavaScript方法_动力节点Java学院整理
2017/06/28 Javascript
vue template中slot-scope/scope的使用方法
2018/09/06 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
python格式化输出保留2位小数的实现方法
2019/07/02 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
带你认识HTML5中的WebSocket
2015/05/22 HTML / CSS
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
上海某公司.net方向笔试题
2014/09/14 面试题
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
艺术应用与设计个人的自我评价
2013/11/23 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
个人委托书格式
2014/04/04 职场文书
房产委托公证书
2014/04/08 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL