일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- appres
- 앱스토어
- otpkey
- SwiftUI
- git
- MYSQL
- css
- Nodejs
- MFA
- 2FA
- 앱리소스
- 애플
- 앨범북
- MSYS2
- openssl
- albumbook
- Android
- apple
- Xcode
- SSL
- SWIFT
- kmip
- OTP
- fido
- OSX
- 안드로이드
- FIDO2
- SSH
- WebAuthn
- 인증
- Today
- Total
목록분류 전체보기 (790)
인디노트
#include #include #include #include #include #include #include #include #include #define ETH_HDRLEN 14 int main() { int sockfd = 0, ret = 0; char buffer[ETH_FRAME_LEN] = {0}; struct ethhdr *eth = NULL; struct sockaddr_in dest = {0}; // create raw socket sockfd = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); if (sockfd == -1) { perror("socket"); exit(EXIT_FAILURE); } // set destination address m..
#include #include #include #include #include #include void process_packet(unsigned char *buffer, int size); int main() { int sock_raw; int tcp_count = 0; struct sockaddr_in source, dest; unsigned char *buffer = (unsigned char*)malloc(65536); sock_raw = socket(AF_INET, SOCK_RAW, IPPROTO_TCP); if (sock_raw < 0) { printf("Error creating socket. Exiting...\n"); return 1; } while (1) { struct sockadd..
#include #include #include #include #include #include #include #include #include #include #include #include #define TIME_LOOP_WAIT 200000 // 200ms #define COUNT_CHECK_LOOP 5 #define SIZE_ICMP_PACKET 64 using namespace std; struct ICMP_PACKET { struct icmphdr hdr; char msg[SIZE_ICMP_PACKET - sizeof(struct icmphdr)]; } typedef ICMP_PACKET_t; /* functions */ unsigned short checksum(void* _data, int..
#include #include #include #include #include #include #include #define SERVER_IP "127.0.0.1" // 서버 IP 주소 #define SERVER_PORT 12345 // 서버 포트 번호 #define BUF_SIZE 1024 // 버퍼 크기 int main(int argc, char *argv[]) { int sock; struct sockaddr_in serv_addr; char buffer[BUF_SIZE]; int len, msglen; // 소켓 생성 sock = socket(AF_INET, SOCK_STREAM, 0); if (sock == -1) { perror("socket"); exit(1); } // 서버 주소 설정 m..
#include #include #include #include #include #include #include #define SERVER_IP "127.0.0.1" // 서버 IP 주소 #define SERVER_PORT 12345 // 서버 포트 번호 #define BUF_SIZE 1024 // 버퍼 크기 int main(int argc, char *argv[]) { int sock; struct sockaddr_in serv_addr; char buffer[BUF_SIZE]; int len, msglen; // 소켓 생성 sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock == -1) { perror("socket"); exit(1); } // 서버 주소 설정 me..
Linux에서는 ioctl() 함수를 사용하여 네트워크 인터페이스의 정보를 가져올 수 있습니다. 이를 활용하여 자신의 Ethernet 카드의 MAC 주소를 가져올 수 있습니다. #include #include #include #include #include #include #include int main() { int sockfd = socket(AF_INET, SOCK_DGRAM, 0); if (sockfd < 0) { perror("Failed to create socket"); return 1; } // 인터페이스 이름 설정 char ifname[] = "eth0"; // 인터페이스 정보 구조체 생성 struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); strncpy..
C 코드로 Ethernet을 통해 전송한 데이터를 수신할 때, 일반적으로 Ethernet 프레임의 헤더를 확인하여 데이터의 출처를 확인할 수 있습니다. Ethernet 프레임의 헤더는 전송된 데이터에 대한 중요한 정보를 포함하고 있으며, 이 중 하나는 MAC 주소입니다. MAC 주소는 Ethernet 카드에 할당된 고유한 식별자이며, 데이터를 보내는 컴퓨터의 MAC 주소와 수신하는 컴퓨터의 MAC 주소를 Ethernet 프레임의 헤더에서 확인할 수 있습니다. 따라서, 수신된 데이터의 Ethernet 프레임 헤더에서 출발지 MAC 주소와 목적지 MAC 주소를 비교하여, 데이터가 내가 보낸 것인지 여부를 확인할 수 있습니다. 다음은 C 코드에서 이를 구현하는 예시입니다. #include #include #i..
TCP 헤더 struct tcphdr { unsigned short int source; // 출발지 포트 번호 unsigned short int dest; // 목적지 포트 번호 unsigned int seq; // 전송 시퀀스 번호 unsigned int ack_seq; // 수신 시퀀스 번호 unsigned short int doff; // 데이터 오프셋 unsigned short int window; // 윈도우 크기 unsigned short int check; // 체크섬 unsigned short int urg_ptr; // 긴급 포인터 }; UDP 헤더 struct udphdr { unsigned short int source; // 출발지 포트 번호 unsigned short int de..
우분투 Minimal 버전을 설치후 여차여차 해서 IP 도 설정하고 eth 도 설정했다. dhch 를 static 으로 바꾸고 nameserver 도 설정했다. 하지만 google.co.kr 도메인을 찾아보자. 안된다. 못찾는다. 이 명령으로 확인해 보자. cat /etc/resolv.conf 뭐 대충 다음과 같이 나온다. nameserver 127.0.0.53 options edns0 search localdomain /etc/resolv.conf 는 재부팅하면 새로 만들어지기 때문에 수정해도 안된다. 하지만. 이것저것 설치를 하려면 도메인이 필요하기 때문에 우선 응급처방으로 이 내용 (nameserver) 에 다음을 추가하거나 바꾼다. nameserver 8.8.8.8 이렇게 수정하고 ping goo..
우선 가상 머신을 실행한다. 로그인 하는데 까지... 뭐 로그인 해도 된다. Install VMWare Tools 메뉴를 이용한다. 뭐라뭐라... 창이뜨면... 이것은 이미 CD-ROM 이 다른것으로 Lock 되어 있으니 (VMWare 에 우분투 설치 ISO 파일이 있으니...) 그것을 어떻게 할 것인지 묻는 것이다. 그냥...알았어 진행해 (Install 같은 버튼) 하면... 지가 알아서 기존 ISO 해제하고 linux.iso 파일로 다시 마운트 한다. 이렇게 하고 root 로그인 한다. 이제... mkdir /mnt/cdrom 으로 해서 폴더하나 생성 mount /dev/cdrom /mnt/cdrom 하면 /mnt/cdrom 에 파일들이 있을 것이다. cd /tmp 하여 임시 폴더로 가서 tar x..