PyCharm에서 Pyinstaller를 편하게 연결해서 사용하고 싶은데... 어떻게 하면 될까? File 메뉴에서 setting에 들어간 다음, Tools에서 External tools를 Click! "+"를 누르면 아래와 같은 화면이 나오는데 Name, Description, Program, Arguments, Working directory를 아래와 같이 입력한 다음 "OK"를 클릭한다. Arguments와 Working directory에서 "$"로 묶여있는 부분은 PyCharm에서 정의한 macro이다. "Insert Macro..." 버튼을 눌러서 추가하거나 직접 입력해줘도 된다. Arguments에서 "--onefile"은 말그대로 단 하나의 exe 파일로 만들어주는 옵션이다. "--wind..
Python 3.7을 사용하는데 pip로 scapy를 install하고 import하니까 error가 났다. > pip install scapy 이렇게 설치하게 되면 현시점에서 가장 최신버전으로 설치가 된다. 내가 설치한 현시점 최신버전은 2.4.2였다. 근데 googling해보니 이 scapy 2.4.2이 python 3.7과 안맞는 부분이 있나보다. import하면 error를 띄우는데 아래와 같이 uninstall하고 2.4.0 버전으로 다시 설치하니 import할때의 error가 없어졌다. 기능상 문제도 없는 것 같다. uninstall을 꼭 해야 하는지는 잘 모르겠음.. > pip uninstall scapy > pip install scapy==2.4.0
.pcap 파일안에 UDP 패킷이 몇개 있는지 어떻게 알 수 있을까? 다음 예제 파일은 test.pcapng 파일을 읽어서 Ethernet/IP/ICMP/TCP/UDP packet이 각각 몇개씩 있는지 확인하고 출력해준다. 핵심인 haslayer() 함수는 각각의 패킷에 어떤 protocol layer가 있는지 확인해준다. Return은 boolean으로 True/False로 확인하면 된다. # Imports import scapy.all as sc pkts = sc.rdpcap('test.pcapng') print('Total packets :', len(pkts)) # init counts count_ether = 0 count_ip = 0 count_icmp = 0 count_tcp = 0 coun..
어떤 .pcap 파일안에 들어있는 전체 패킷 갯수는 어떻게 알아낼까? Python scapy를 이용해서 아래와 같이 단 몇줄로 쉽게 알아낼 수 있다. Python version은 3.7이고, IDE는 spyder3를 이용했다. # getTotalNumPackets.py import scapy.all as sc pkts = sc.rdpcap('test.pcapng') print('Total packets =', len(pkts)) 단 세줄로 구현할 수 있는데 첫번째로 scapy의 모든 class를 import하고 sc로 별칭을 정해준다. 그리고 두번째 줄에서 scapy의 rdpcap() 함수를 이용해서 test.pcapng를 parsing하여 모든 패킷들을 pkts에 넣어준다. 여기서 주의할 점은 test..