watchdog oncreated class HandlerFile System Event Handler def

  • Slides: 24
Download presentation

watchdog • on_created : 파일 생성시 class Handler(File. System. Event. Handler): def on_created(self, event):

watchdog • on_created : 파일 생성시 class Handler(File. System. Event. Handler): def on_created(self, event): print (f'event type : {event_type}n' f'event src_path : {event. src_path}') if event. is_directory: print ("디렉토리 생성") • event 속성 • 1. event_type • 2. src_path • 3. is_directory

watchdog • on_deleted : 파일 삭제시 def on_deleted(self, event): print ("삭제 이벤트 발생") •

watchdog • on_deleted : 파일 삭제시 def on_deleted(self, event): print ("삭제 이벤트 발생") • on_modified : 수정 발생시 • 디렉토리 생성후 target_directory

from pyftpdlib. authorizers import Dummy. Authorizer from pyftpdlib. handlers import FTPHandler from pyftpdlib. servers

from pyftpdlib. authorizers import Dummy. Authorizer from pyftpdlib. handlers import FTPHandler from pyftpdlib. servers import FTPServer import os # ========================= authorizer = Dummy. Authorizer() # 객체 생성 authorizer. add_user("user", "12345", ". ", perm='elradfmw. MT') authorizer. add_anonymous(os. getcwd()) handler = FTPHandler handler. authorizer = authorizer server = FTPServer(("127. 0. 0. 1", 22), handler) server. serve_forever()

 • ftp 서버 접근 from ftplib import FTP ftp = FTP() # ftp.

• ftp 서버 접근 from ftplib import FTP ftp = FTP() # ftp. set_debuglevel(2) ftp. connect('172. 16. 102. 202', 22) s = ftp. login("test", "1234") ftp 서버 ip ftp 서버 port

 • 디렉토리 이동 print ("디렉토리 이동") ftp. cwd("/a") ============== drwxrwxrwx 1 owner group

• 디렉토리 이동 print ("디렉토리 이동") ftp. cwd("/a") ============== drwxrwxrwx 1 owner group -rw-rw-rw 1 owner group 디렉토리 이동 -rw-rw-rw 1 owner group 0 0 Oct Oct 18 18 05: 34 05: 33 a test 01. txt test 02. txt test 03. txt 0 Oct 18 05: 33 atest 01. txt 0 Oct 18 05: 33 atest 02. txt 0 Oct 18 05: 33 atest 03. txt

 • 파일 삭제 # 파일 삭제 ftp. delete('atest 02. txt') • 서버에서 파일

• 파일 삭제 # 파일 삭제 ftp. delete('atest 02. txt') • 서버에서 파일 가져오기 # 파일 가져오기 ftp. retrbinary('RETR atest 03. txt', open('atest 03. txt', 'wb'). write) ftp. quit()

 • 서버에 파일 보내기 ftp. storbinary('STOR stu. txt', open('stu. txt', 'rb')) ftp. quit()

• 서버에 파일 보내기 ftp. storbinary('STOR stu. txt', open('stu. txt', 'rb')) ftp. quit()

 • cuckoo • 참고 url : "https: //cuckoo. sh/docs/usage/api. html#tasks-create-file" Resouce Description POST

• cuckoo • 참고 url : "https: //cuckoo. sh/docs/usage/api. html#tasks-create-file" Resouce Description POST /tasks/create/file 분석 /tasks/list 내부 Cuckoo 데이터베이스에 저장된 타스크의 목록을 표시합니다. 선택적으로 리턴 할 항목의 한계를 지정할 수 있습니다.

 • /tasks/create/file import requests REST_URL = "http: //192. 168. 1. 6: 8090/tasks/create/file" SAMPLE_FILE

• /tasks/create/file import requests REST_URL = "http: //192. 168. 1. 6: 8090/tasks/create/file" SAMPLE_FILE = "C: \Users\sleep\Desktop\dir_test\chromedriver. exe" with open(SAMPLE_FILE, "rb") as sample: files = {"file": ("chromedriver. exe", sample)} r = requests. post(REST_URL, files=files) task_id = r. json()['task_id'] print (task_id)

 • /tasks/list : 전체 데이터 # ============== import requests import pprint as ppr

• /tasks/list : 전체 데이터 # ============== import requests import pprint as ppr # ============== target_url = "http: //192. 168. 1. 6: 8090/tasks/list" result = requests. get(target_url) pprint (result. json()) • /tasks/list/x : x번 데이터 target_url = "http: //192. 168. 1. 6: 8090/tasks/list/3" result = requests. get(target_url) pprint (result. json())

 • /tasks/list clock : 시작 시간 completed_on : 완료된 시간

• /tasks/list clock : 시작 시간 completed_on : 완료된 시간

 • /tasks/view/x Number import requests import pprint as ppr #============= target_url = "http:

• /tasks/view/x Number import requests import pprint as ppr #============= target_url = "http: //192. 168. 1. 6: 8090/tasks/view/1" u = requests. get(target_url) pprint (u. json())

 • /tasks/reschedule/x import requests import pprint Number target_url = "http: //192. 168. 1.

• /tasks/reschedule/x import requests import pprint Number target_url = "http: //192. 168. 1. 6: 8090/tasks/reschedule/2" u = requests. get(target_url) pprint(u. json()) {'status': 'OK', 'task_id': 15}

# ============ import requests as req import pprint # ============ target. URL = "http:

# ============ import requests as req import pprint # ============ target. URL = "http: //192. 168. 1. 6: 8090/tasks/report/7" result = req. get(target. URL) pprint (result. json())

import requests import pprint as ppr #============= target_url = "http: //192. 168. 1. 6:

import requests import pprint as ppr #============= target_url = "http: //192. 168. 1. 6: 8090/files/view/id/2" u = requests. get(target_url) pprint (u. json())

from sandboxapi import cuckoo import sys sandbox = cuckoo. Cuckoo. API("http: //192. 168. 1.

from sandboxapi import cuckoo import sys sandbox = cuckoo. Cuckoo. API("http: //192. 168. 1. 6: 8090/") # verify connectivity if not sandbox. is_available(): print ("sandbox is down, exiting") sys. exit(1) else: print ("server alive")