본문 바로가기

socket

주식 정보 데이터베이스(db) 구축하기 by using python | storing stock data into database(DB) by using python 몇 년 전부터 db에 저장된 데이터를 이용해서 종목 발굴 알고리즘을 돌려놓고 있으며, 이를 이용해 특이점이 발견된 종목은 바로바로 문자 or email 등을 통해서 알려주고 관련 데이터를 저장하게 하는 시스템을 구축해 놓은 상황이다. 관련해서 문의 글이나 메일 혹은 문자를 통해 방법을 문의하는 글이 있어 개략적이나마 기본 개념을 작성해 두려고 한다. 우선 파이썬을 이용해서 주식 데이터를 데이터베이스(db)에 저장하는 작업을 하려고 한다. 이를 위해 기본 개념 몇몇을 알고 있어야 하지만, 관심이 있으신 분들은 관련 정보를 공부해 보시길 바란다. 가장 먼저 파이썬이라는 프로그램의 기본 개념을 익혀야 할 것이다. 그런 다음 관련 모듈을 설치, 기본 문법등을 차근차근 학습하면 될 것이다. 아래 코드는 완전한 코.. 더보기
남의 컴퓨터를 내 마음대로 다룬다? - Python Reverse Shell_003 - Sending Commands to the Client (파이썬 리버스 쉘 - 클라이언트에게 명령어 보내기) 지난 시간까지는 통신을 하기 위한 소켓 생성, 소켓 바인딩, 소켓 수용하는 것 까지 간략히 만들어 보았습니다. 이번 시간에는 멀리 있는 클라이언트 컴퓨터에게 어떤 명령을 전달할지에 관한 부분을 다루어 보도록 하겠습니다. 우선 명령어를 보내기 위한 함수를 정의하겠습니다.▼명령어를 일회성으로 보내고 말 것이 아니기에 특정 조건이 들어오기 전까지는 계속 사용하게 할 반복문을 사용하였습니다.▼내가(서버) 내릴 명령어를 입력받을 input() 을 넣고 이 값을 cmd(Command)라는 변수에 저장을 하게 하겠습니다.▼만약에, 이 cmd 값이 'quit' 라는 입력이 들어오면 상기의 모든 과정을 종료시키게 하려고 합니다. ▼if 조건인 cmd == 'quit' 가 만족되면 conn 인 커넥션도 종료하고, 소켓인 .. 더보기
남의 컴퓨터를 내 마음대로 다룬다? - Python Reverse Shell_002 - Binding the Socket and Listening for Connections (파이썬 리버스 쉘 - 소켓 묶기, 연결 대기) 앞 시간에는 멀리 떨어져 있는 다른 컴퓨터와 데이터를 주고 받는 통신을 하기 위해 소켓을 만들어 주었습니다. 이번에는 그렇게 만든 소켓의 데이터를 바인딩(묶어주기)하고 바인딩된 데이터를 가지고 상대 컴퓨터와 접속하게 하고, 그 접속을 서버(내 컴퓨터)에서 받아들이게 하는 과정까지 다루어 보도록 하겠습니다. Socket Binding(소켓 바인딩)통신을 하기 위해서는 통신 기기간(여기서는 컴퓨터) 데이터가 어디에서 오고 어디로 가는지를 알아야 합니다. 이럴 때 사용하는 개념이 아이피(host)주소와 포트(port) 입니다. 그리고 이러한 host와 port를 바인드(묶어주기) 해주어야 어떤 데이터가 오가는지 쉽게 파악할 수 있습니다. 이는 송수신 데이터는 국제 규약인 프로토콜(Protocol)을 따라야 하.. 더보기
남의 컴퓨터를 내 마음대로 다룬다? - Python Reverse Shell_001 - Creating a Socket (파이썬 리버스 쉘 - 소켓 만들기) 안녕하세요. 이번에는 새로운 PYTHON SERIES 를 올려볼까 합니다. REVERSE SHELL 이라고 합니다. 처음 들어보는 분들도 계시겠지만, 개략적인 내용은 대부분 알고 있는 친숙한 개념입니다. 우선 아래 그림을 먼저 살펴볼까요? ▼ 왼쪽 그림에서 A -> C 로 접속을 하려고 하는데 중간에 방화벽(Firewall)이 존재할 경우가 있습니다. 이는 사용자들이 특정 웹서버나 사이트에 접속하는데 어려움을 겪게 하는 요인이 되기도 합니다. 물론 보안상 혹은 다른 여타의 이유로 방화벽을 설정하기도 하지만, 기업체에서 단순히 접속을 막아두는 경우도 있습니다. 이럴 경우 VPN(Virtual Private Network: 가상 사설망)을 이용해서 우회하기도 하지만 이 역시 한계가 있습니다. 이럴때 사용하는.. 더보기