프로그래밍
-
ip_change 구현하면서 정리Network hacking training/Knowledge 2018. 10. 1. 14:14
목적 및 목표 : Destination IP를 변경 tcp_data_change와 동일하게 in-path의 netfilter를 이용할 것이기 때문에 iptables를 설정해준다. [iptables 설정] ⚡ root@ubuntu ~ iptables -A OUTPUT -j NFQUEUE --queue-num 0 ⚡ root@ubuntu ~ iptables -A INPUT -j NFQUEUE --queue-num 0 ⚡ root@ubuntu ~ iptables -F // 이는 iptables에 등록한 규칙을 제거할 때 주는 명령이다. (따라서 위에 2개만 명령하자.) Ref : http://hackstoryadmin.tistory.com/132?category=281217 (참고) ch..
-
9012번 괄호 풀이Programming/[BAEKJOON] acmicpc 2018. 1. 20. 16:35
[문제] https://www.acmicpc.net/problem/9012 문제가 읽어보면 굉장히 간단합니다.[입력/출력] 처음 이 문제를 접했을때 간단하게 생각을 했습니다. '(' 가 입력될때 + 해주고 ')' 입력되면 - 해주면 마지막에 결국 '(' 개수와 ')' 개수가 동일한 결과만( ex) if(count == 0) ) YES를 출력하게 하면 되겠구나~ 그렇게 작성한 소스코드가 trouble에 있습니다.. http://hackstoryadmin.tistory.com/40?category=270793 여기 들어가보면 동일한 알고리즘으로 작성한 소스코드를 보실 수 있습니다.(삽질의 흔적) 하지만 한가지 생각을 못했던 것이 있습니다. 바로 이런 결과입니다. )( -> 즉 괄호가 닫히지 않아서 문제에서 ..
-
10828번 스택 풀이Programming/[BAEKJOON] acmicpc 2018. 1. 13. 18:18
[문제] https://www.acmicpc.net/problem/10828 [입력/출력] [ex] 시스템을 공부하면서 스택에 대한 공부를 했던 기억이있는데 직접 스택을 구현하면서 스택 구조에 대해 상기 시키는 기회가 되었습니다. strcmp함수를 적절히 사용하여 입력한 문자열에 따라 다르게 동작하도록 코딩하였습니다. [풀이] #include #include int main(){int input,i,j,count = 0;scanf("%d",&input);char opcode[input][5];int operand[input];for(i = 0; i < input; i++){scanf("%s",&opcode[i]);if(!strcmp(opcode[i],"push")) // 입력한 문자열이 push일때 op..
-
1100번 하얀 칸 풀이Programming/[BAEKJOON] acmicpc 2018. 1. 9. 13:25
[문제] URL : https://www.acmicpc.net/problem/1010 [입력/출력] 이렇게 8*8 총 64개 칸을 가진 체스판에서 말이 있다면 F 없다면 . 문자를 입력한다. 뭐.. 2진수라고 생각을 하면 될듯.... 그렇게 2진수로 생각을 해서 나타내보면 체스판은 이렇게 표현이 가능하다. 0) 0 1 0 1 0 1 0 11) 1 0 1 0 1 0 1 02) 0 1 0 1 0 1 0 13) 1 0 1 0 1 0 1 04) 0 1 0 1 0 1 0 15) 1 0 1 0 1 0 1 06) 0 1 0 1 0 1 0 17) 1 0 1 0 1 0 1 0 [풀이] #include int main(){char arr[8][8]; // 2차원 배열 선언 -> 8 * 8int count = 0,i,j; ..
-
1037번 약수 풀이Programming/[BAEKJOON] acmicpc 2018. 1. 2. 01:25
4시간 삽질을 해버렸네요... [문제] [풀이] #include int main(void){int input,i,j,temp;scanf("%d",&input);int arr[input];for(i = 0; i arr[j+1]){temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}printf("%d",arr[0] * arr[input-1]);return 0;} 허무하지만 예외처리 필요없고 정렬 잘해서 첫번째 값과 마지막 값 곱해주면 됩니다. ㅠㅋㅋㅋ 그리고 혹시 이 문제를 푸신 분..
-
1002번 터렛 풀이Programming/[BAEKJOON] acmicpc 2017. 12. 30. 18:11
이 문제를 풀기 위해 꼬박 하루가 걸렸네요. 풀이를 한 후 맞으면 성취감이 너무 크네욯ㅎㅎㅎ 문제는 이러합니다. 문제 풀이를 위해 r을 반지름으로 생각하시면 문제에 대한 이해는 가능합니다. 좌표를 그려보고 원의 접점을 확인해보고, 접점이 어떻게해야 나오는지(두 점 사이의 거리와 반지름의 관계)를 파악한다면 코딩은 쉽습니다. 바로 풀이한 소스를 공개합니다. [답안] #include #include int func(int x1, int y1, int r1, int x2, int y2, int r2);int main(void){int input;int i;int x1,y1,r1,x2,y2,r2;scanf("%d",&input);int result[input];for(i = 0; i < input; i++){s..
-
c언어를 배워야 하는 이유?tmp/doc 2017. 10. 15. 03:42
"해커가 되고 싶은데 왜 c언어를 배우라고 할까..." 라는 의문을 갖게 되었고 그에 대한 제 생각을 정리해 보게되었습니다. 많은 newbie분들에게 도움이 되었으면 좋겠습니다.(물론 저도 newbie #.#) 지극히 제 개인적인 생각이니 참고만 하시길 바랍니다. Q. 해킹을 하러왔는데 왜 c(프로그래밍 언어)를 배워야할까?A. c는 우리를 위한 언어라고 할 수 있다. 고급언어라고도 하죠! 즉, 사람이 이해하기 쉬운 언어로 컴퓨터를 조작할 수 있게 해준 언어입니다.또한 os(운영체제)의 주 언어가 c라고 합니다. 그 만큼 c 의 존재는 크다고 생각합니다.컴퓨터를 배우는 사람에게 필수적이라고 생각을하고, 선대 해커들의 인터뷰나, 해킹 공부에 대한 검색을 해보시면 알다시피 제일 먼저 c를 많이들 추천하죠ㅎ ..
-
Linux 01. what is socket?Programming/TCP , IP prog 2017. 10. 12. 21:04
소켓이란 ▶소켕의 의미에 대해 설명드리기에 앞서 네트워크 프로그래밍에서 우리가 살펴봐야할 부분은 물리적 연결이라기 보단 소프트웨어적인 연결을 생각해 보아야 합니다. 대부분의 컴퓨터는 이미 물리적으로 인터넷이라는 네트워크로 연결되어 있기 때문입니다. 네트워크 프로그래밍에서 소켓이 담당하는 역할 : 운영체제에서 제공하는 소프트웨어적인 장치. 소켓은 집에서 다들 이용하고 있을겁니다. 집에 돼지코가 없으신분들은 없겠죠?! 가정이나, 회사 등에서 전기를 사용하기 위해 소켓을 꽂습니다. 이와 같은 이유에서 네트워크 프로그래밍에서의 소켓의 의미가 생기게 되었습니다. 소켓프로그래밍은 어느정도의 형태가 존재합니다. 보통의 진행 순서입니다. socket() // socket 생성 ▼bind() // 생성한 socket 에..