언어/python
python + watchdog
파아랑새
2017. 12. 28. 17:52
# ---------------------------------------------------------------------------
# -*- coding: utf-8 -*-
# 작성자 : 김준현
# 작성일 : 2017_12_28
# 버전 : ver 0.1
# ---------------------------------------------------------------------------
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import re # 문자열 파싱할때 사용
import file_hash_ret
import VT_1
import os
# ---------------------------------------------------------------------------
class MyHandler(FileSystemEventHandler):
# parants : FileSystemEvnetHandler
def on_any_event(self, event): # 어떠한 이벤트라도 발생 된다면
f = re.compile('[.]+')
print("Create !!!" + event.src_path)
s = f.search(event.src_path)
tailv = event.src_path[s.span()[1]:]
if '.' in event.src_path[s.span()[1]:]:
t_split_list = event.src_path[s.span()[1]:].split('.')
tailv = t_split_list[len(t_split_list) - 1]
if tailv == "exe":
print("VirusTotal return")
h = file_hash_ret.file_hash_md5(event.src_path.encode('utf-8')) # argument로 절대 경로 삽입
print("hash => {}".format(h))
VT_1.VT_API_RET_MD5(h)
else:
print("pass")
def main():
try:
os.mkdir("C:\\Users\\sleep\\Desktop\\test_dir", mode=0o777) # 디렉토리 생성
except:
print("파일이 이미 있습니다.")
event_handler = MyHandler() # 객체 생성
observer = Observer() # 객체 생성
observer.schedule(event_handler, path='C:\\Users\\sleep\\Desktop\\test_dir', recursive=False)
observer.start()
try:
while True: # 무한루프
time.sleep(1)
except KeyboardInterrupt: # 키보드 버튼에 의해서 프로그램은 종료
print("Observer.stop !!!")
observer.stop()
observer.join()
if __name__ == "__main__":
main()