资源简介
文件监控
代码片段和文件信息
# -*- coding: utf-8 -*-
#use: python file_check.py ./
import os
import hashlib
import shutil
import ntpath
import time
CWD = os.getcwd()
FILE_MD5_DICT = {} # 文件MD5字典
ORIGIN_FILE_LIST = []
# 特殊文件路径字符串
Special_path_str = ‘drops_JWI96TY7ZKNMQPDRUOSG0FLH41A3C5EXVB82‘
bakstring = ‘bak_EAR1IBM0JT9HZ75WU4Y3Q8KLPCX26NDFOGVS‘
logstring = ‘log_WMY4RVTLAJFB28960SC3KZX7EUP1IHOQN5GD‘
webshellstring = ‘webshell_WMY4RVTLAJFB28960SC3KZX7EUP1IHOQN5GD‘
difffile = ‘diff_UMTGPJO17F82K35Z0LEDA6QB9WH4IYRXVSCN‘
Special_string = ‘drops_log‘ # 免死金牌
UNICODE_ENCODING = “utf-8“
INVALID_UNICODE_CHAR_FORMAT = r“\?%02x“
# 文件路径字典
spec_base_path = os.path.realpath(os.path.join(CWD Special_path_str))
Special_path = {
‘bak‘ : os.path.realpath(os.path.join(spec_base_path bakstring))
‘log‘ : os.path.realpath(os.path.join(spec_base_path logstring))
‘webshell‘ : os.path.realpath(os.path.join(spec_base_path webshellstring))
‘difffile‘ : os.path.realpath(os.path.join(spec_base_path difffile))
}
def isListLike(value):
return isinstance(value (list tuple set))
# 获取Unicode编码
def getUnicode(value encoding=None noneToNull=False):
if noneToNull and value is None:
return NULL
if isListLike(value):
value = list(getUnicode(_ encoding noneToNull) for _ in value)
return value
if isinstance(value unicode):
return value
elif isinstance(value basestring):
while True:
try:
return unicode(value encoding or UNICODE_ENCODING)
except UnicodeDecodeError ex:
try:
return unicode(value UNICODE_ENCODING)
except:
value = value[:ex.start] + ““.join(INVALID_UNICODE_CHAR_FORMAT % ord(_) for _ in value[ex.start:ex.end]) + value[ex.end:]
else:
try:
return unicode(value)
except UnicodeDecodeError:
return unicode(str(value) errors=“ignore“)
# 目录创建
def mkdir_p(path):
import errno
try:
os.makedirs(path)
except OSError as exc:
if exc.errno == errno.EEXIST and os.path.isdir(path):
pass
else: raise
# 获取当前所有文件路径
def getfilelist(cwd):
filelist = []
for rootsubdirs files in os.walk(cwd):
for filepath in files:
originalfile = os.path.join(root filepath)
if Special_path_str not in originalfile:
filelist.append(originalfile)
return filelist
# 计算机文件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 e:
print u‘[!] getmd5_error : ‘ + getUnicode(filepath)
print getUnicode(e)
try:
ORIGIN_FILE_LIST.remove(filepath)
FILE_MD5_DICT.pop(filepath None)
except KeyError e:
pass
# 获取所有文件MD5
def getfilemd5dict(filelist =
- 上一篇:python爬虫爬取微博热搜
- 下一篇:a*算法的python版
相关资源
- windows鼠标自动点击py脚本
- UHD+GNURadio安装工具 Python脚本以及安装
- IronPython In Action
- 拆解atlas资源脚本
- 用Python 编写的一个Monkey脚本
- 面向Arcgis的python脚本编程_数据
- 《面向arcgis的python脚本编程》练习数
- 《面向arcgis的python脚本编程》练习数
- 《面向arcgis的python脚本编程》练习数
- 面向Arcgis的python脚本编程_ 李明巨编著
- python脚本运行环境.zip
- 面向ArcGIS的Python脚本编程.pdf
- 面向ArcGIS的Python脚本编程美国Paul A.
- 机房批量修改ip脚本
- 模拟示波器 py脚本
- python脚本上网登陆
- arp欺骗python脚本
- AWD比赛后门通用脚本
- 基于python的sql注入脚本
- python 接口自动化测试脚本demo
- Python-洛谷冬日绘板脚本
- Python-这是一个DSStore文件泄漏利用脚本
- HAP-NodeJS虚拟设备配置及python脚本
- 批量打通SSH脚本
- 绘制yolov3 P-R曲线的脚本draw_pr_py3.py
- selenium+python 自动化测试 ---登陆界面测
- maya物体批量重命名py脚本
- ip.py 自动检索出可用代理ip port的p
- 携程机票python爬取脚本最终优化版本
- 携程机票python爬取脚本
评论
共有 条评论