본문 바로가기

Programming15

코틀린 시작해보기 코틀린을 배워봅시다! jdk install jdk는 설치되어 있는 것으로 가정하겠습니다. IntelliJ IDEA install 아래의 사이트에 접속합니다. https://www.jetbrains.com/ko-kr/idea/download/ 다운로드 IntelliJ IDEA: JetBrains가 만든 전문 개발자용 Java IDE 최신 버전 다운로드: IntelliJ IDEA (Windows, macOS, Linux) www.jetbrains.com Community 버전을 클릭하여 설치파일을 다운로드 받습니다. 설치파일을 실행시켜 기본 설정대로 next를 클릭해줍니다. 설치가 다 되었으면 IntelliJ IDEA Community Edition을 실행시켜 새 프로젝트를 생성합니다. Kotlin을 선택합.. 2020. 4. 1.
ARP Send 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105#include #include #include #include #include #include #include #include #include #include u_char my_mac[6] = {};u_char my_ip[4] = {};u_char target_mac[6] = {0x00, 0x0c, 0x29, 0x8d, 0x3b, 0x9a.. 2020. 3. 5.
Dictionary Attack - SHA-512는 $6을 포함하여 11자리를 사용자가 입력한 패스워드와 해쉬화한다. 123456789101112131415161718192021222324252627282930313233343536373839404142import sysimport osimport crypt account={} def arg_check(argv): if (len(argv)) != 2 : print('Usage : crack [Dictionary_file]') sys.exit(1) if os.path.isfile(argv[1]) != 1 : print('No such Dictionary_file') sys.exit(1) def main(): with open('/etc/shadow', 'r') as s_f : while .. 2020. 3. 4.
ARP를 이용한 host scan 123456789101112131415161718192021222324252627282930313233343536373839404142from scapy.all import *import threadingimport os host_list = {}num = 0threadLock = threading.Lock()threads = [] def printHosts(host_list): print('-------------------------- HOST LIST --------------------------') print('NUM IP MAC') print('---------------------------------------------------------------') for num in host_li.. 2020. 2. 24.
ARP Spoofing 12345678910111213141516171819202122232425262728293031323334353637383940from scapy.all import *import threadingimport os host_list = {}num = 0threadLock = threading.Lock()threads = [] def printHosts(host_list): print('-------------------------- HOST LIST --------------------------') print('NUM IP MAC') print('---------------------------------------------------------------') for num in host_list: .. 2020. 2. 24.
pcap 1. #apt-get install libpcap-dev로 pcap라이브러리 설치 2. pro파일에 LIBS += -lpcap추가 3. #include 추가 Example 112345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091/* tcp 80 패킷만 출력 */#include #include #include /* in_addr 구조체 */#include #include #include int cnt=0; void printMac(u_int8_t eth_.. 2020. 2. 24.
cookie를 이용한 로그인 http://itlearner.tistory.com/293 와 http://itlearner.tistory.com/352 에서 포스팅했듯이 쿠키로도 로그인이 가능합니다. 아래는 쿠키정보를 빼내는 코드(화이트 해커를 위한 암호와 해킹 서적 참고)입니다.이를 이용하면 세션 탈취가 가능합니다. 참고로 이러한 쿠키값 도용은 희생자가 로그인하고 있을 동안만 가능합니다. 123456789101112131415161718from scapy.all import *import re def cookieSniffer(packet): tcp = packet.getlayer('TCP') cookie = re.search(r'Cookie: (.+)\\r\\n', str(tcp.payload)) if cookie: print(co.. 2018. 7. 18.
살아있는 호스트 IP 스캔하기 같은 네트워크 대역에 살아있는 호스트의 IP를 스캔하는 소스를 작성해 보려고 한다. 찾아보니 방법은 아래와 같이 나왔다.1. ping을 이용하는 방법(ICMP Echo Reply를 보내오는 호스트가 살아있는 것으로 판별)2. 특정 포트로 메시지를 보내는 방법(Port Unreachable를 보내오는 호스트가 살아있는 것으로 판별) 이중에서 나는 ping을 이용하는 방법을 선택했다.ping을 이용하는 방법에도 찾아보니 여러가지가 있었다.1. pyping 모듈의 ping을 이용2. os모듈의 system을 이용3. ICMP Echo Request 패킷을 직접 만들기나는 이중에서 ICMP Echo Request 패킷을 직접 만들어 보기로 결정했다. 일단 참고하기 위해서 wireshark로 ping패킷을 잡아봤.. 2018. 2. 13.
Password crack crypt함수crypt함수는 패스워드와 솔트 값을 받아 해시값을 생성하는 함수이다.char *crypt(const char *key, const char *salt); 생성된 해시 값의 앞 두자리가 솔트 값이다. 사용하려면 아래와 같이 crypt.h헤더파일을 추가해줘야 한다. #include 컴파일시 아래와 같이 -lcrypt옵션을 추가해야 한다. gcc -o [실행 파일명] [c 파일명] -lcrypt 솔트 값패스워드가 같으면 해시를 적용한 결과도 같기 때문에 해결책으로 솔트 값을 넣어 다른 값이 나오도록 한다.즉, 해쉬와 암호화에 사용되는 첨가문이다. [1]-> 인자로 패스워드와 솔트 값을 주었을 때 해시값을 생성하여 출력12345678#include #include int main(int argc,.. 2018. 1. 13.
c 라이브러리 함수 표 https://www.ibm.com/support/knowledgecenter/ko/ssw_ibm_i_73/rtref/stalib.htm 2017. 12. 11.
scanf - visual studio 2015에서scanf를 쓰면 에러남 (C4996)-> 버퍼 오버플로우 공격을 방지하기 위해서 scanf_s를 권장하기 때문 - 해결책-> scanf_s를 사용하거나-> #pragma warning(disable:4996) 를 코드 상단에 추가 2017. 3. 21.
1의 보수와 2의 보수 음수 표현 방법- 부호절대값, 1의보수, 2의보수 - 컴퓨터는 덧셈만 할 수 있게 설계되어져 있음 그렇다면 뺄셈은? 2의 보수를 이용함 부호절대값: 8비트 이진수에서 가장 왼쪽에 있는 비트를 부호비트 0이면 양수, 1이면 음수 ex) 00000011(2) -> 3(10) 10000011(2) -> -3(10) (한 비트를 부호비트로 사용하기 때문에 8비트로 나타낼 수 있는 수가 상대적으로 적음) 표현 범위 : - (2^n - 1) ~ 2^n - 1 n의 보수: n이 되기 위해 보충해줘야 하는 수ex) 30의 100의 보수는 70 1의보수 (11111111 - 해당 수): 이진수의 각 자리 수가 1이 되기 위해 보충해줘야 하는 수 ex) 0 1 0 1 0 1 0 1 의 1의 보수는 1 0 1 0 1 0 1.. 2017. 1. 20.
gets #define _CRT_SECURE_NO_WARNINGS 상단에 추가 또는 gets_s사용 2016. 12. 27.
getch, getche * getch와 getche-> 비표준 입출력 함수 (시스템마다 함수 지원여부가 다름)-> 입출력버퍼를 거치지 않음-> 헤더파일에 선언되어있음 * int getch(void)-> 키보드로부터 1문자를 읽어옴 * int getche(void)-> 키보드로부터 1문자를 읽어와서 바로 echo해줌 => 위의 두 함수는 Visual studio 2015에서 사용하면 컴파일 에러(C4996)가 발생 #define _CRT_NONSTDC_NO_WARNINGS 위에 추가해주면 컴파일 에러가 발생하지 않음 (putch함수도 마찬가지) 2016. 12. 27.
2진수 8진수 16진수 10진수 변환 2진수(binary)- 0~1을 나타낼 수 있음- 가장 큰 수 1의 값은 : 1- 따라서 2진수는 1개의 비트만 있으면 모두 표현 가능 8진수(octal)- 0~7을 나타낼 수 있음- 가장 큰 수 7의 이진수 값은 : 111- 따라서 8진수는 3개의 비트만 있으면 모두 표현 가능 10진수(decimal)- 우리가 실생활에서 쓰는 수 16진수(hexadecimal)- 0~15를 나타낼 수 있음- 가장 큰 수 15의 이진수 값은 : 1111- 따라서 16진수는 4개의 비트만 있으면 모두 표현 가능 10진수 2진수 8진수 16진수 0 0000 0 0 1 0001 1 1 2 0010 2 2 3 0011 3 3 4 0100 4 4 5 0101 5 5 6 0110 6 6 7 0111 7 7 8 1000 10 8 9.. 2016. 12. 26.