일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안티디버깅
- 써니나타스
- ZIP
- 모바일프로그래밍
- shadow
- K-sheild Jr
- crack
- Mobile
- John the ripper
- K-shield Jr 10기
- tar
- upx
- 파일해시생성
- Android
- Autoware
- CodeEngn
- 디스크
- 침해사고대응
- ctf-d
- Multimedia
- 케쉴주
- swing
- Frida
- SW에듀서포터즈
- Reversing
- 포렌식
- Interceptor
- disk
- 리버싱핵심원리
- Today
- Total
목록분류 전체보기 (275)
물먹는산세베리아
문제: 49.247.132.71 1234 칼리에서 문제에 접속해 보았다. nc 명령어를 사용하여 문제에 접근하였고, 그 결과 위와 같이 더하기 문제에 대해 20번 답을 하라는 문제임을 알 수 있었다. 일일이 입력해서 20번을 채워도 되지만 시간상 무리이기 때문에 파이썬으로 코드를 작성하였다. 주어진 주소로 연결을 하고 questions라는 단어까지 문자를 받는다. 20번 반복이므로 위와 같이 for문을 돌렸고, 두번째 줄부터 바로 문제가 나오므로 한줄을 받아 t에 대입하였다. t는 eval 함수를 통해 답을 도출하며 anw 변수에 들어가고, = 문자까지 닿게 되면 아까 받은 답을 보낸다. 그 후 쉘의 마지막에 p.interactive()를 써 주었다. 그 결과, 연결이 되긴 하지만 문법상의 문제 때문에 ..
1. html 열기 이전과 달리 네이버 홈페이지에서 실시간 검색어가 ajax 통신으로 가져오는 방식으로 바뀌면서 키워드로 크롤링을 사용하는 방식이 어려워졌다. 따라서 대안으로 네이버 DataLab에 들어가 크롤링을 시도했다. 2. 모듈 http 요청을 위한 requests를 import 하였고, bs4 중에서도 파이썬 웹 크롤러 라이브러리 중 하나인 BeautifulSoup을 사용한다. 3. 코드 접속이 차단되었을 때 사용하는 방법으로 User-Agent를 지정해 주었다. 서버에서 봇으로 인지하기 때문에 차단한 경우인데, 이럴 때는 사람이라고 알려주면된다. 그래서 headers 정보에 User-Agent를 넣어주었고, http://www.useragentstring.com/ 여기서 유저 정보를 얻을 수 ..
* 감을 잡기 어려워서 오픈소스를 활용하여 구성과 역할 중심으로 작성하였고, 파일 위치 등 부분 수정하였다. 1. send.py 1)모듈 소켓 프로그래밍을 이용하기 위해 소켓 서버를 import 하였다. 그리고 os.path 모듈에서 exists만 가져왔다. 입력 받은 경로의 존재여부는 구분할 때 쓰인다. 2) 파일 전송 같은 컴퓨터에서 실행하기로 하였다. 위 코드의 클래스는 서버에 대한 요청을 하는 핸들러 클래스이다. 서버에 접속할 때마다 한번씩 인스턴스화 되는데, 클라이언트와의 통신을 구현하려면 위처럼 핸들 방식을 재정의 해야 한다. data_transferred는 0으로 초기화 했다가 파일을 받아오면 해당 파일의 바이트 값을 가져와 더하여 파일의 크기값으로 재정의 된다. 그 다음에는 연결된 IP 주..
1. tkinter 가장 많이 사용되는 GUI 모듈 중 하나인 tkinter을 사용하였다. 먼저, tkinter 모듈을 포함시켰고, 그 안에 있는 Tk 클래스의 객체를 생성하여 하나의 윈도우가 생성되도록 하였다. 윈도우의 이름은 '계산기'라고 정했다. 2. click 함수 (버튼을 눌렀을 때 결과 나타내기) 가장 중심이 되는 건 eval(entr.get())이다. entry에서 가져온 문자열 내용대로 계산되는 부분이다. 따라서 사칙연산은 이 식만 있어도 쉽게 결과값이 나온다. key 값으로 '='을 입력 받으면 이때까지 받은 숫자와 연산자들도 계산하여 result에 넣어준다. 그리고 기존에 출력된 값을들 지운뒤 그 위에 result 값을 문자열로 바꾸어 새로 출력시킨다. =를 누르기 전 숫자와 연산자들은..
1. server.py 1) 모듈 import - 소켓 생성 - 스레드 생성/ form threading impot* ->threading.Thread() 대신 Thread() 사용 가능 - sleep() 함수 사용 2) 소켓 송수신 서로 주고 받는 대화를 하기 위해서 계속 입력받을수 있도록, 계속 전달 받을 수 있도록 while문으로 반복문을 작성하였다. 일단 메세지를 주고 받기 위해 인자를 sock으로 받아왔다. 위 코드에서 sock.send()는 보내는 메소드, sock.recv()는 받는 메소드이다. 메세지를 보낼 때 입력한 문자열은 encode()을 사용하여 byte로 변환하는데, 파이썬의 문자열은 객체이기 때문에 바로 전달될 수 없다. 따라서 인코딩을 해주어야 한다. 상대방의 메세지를 받을 때..
짝수일 경우 별찍기 프로그램이 출력되고 홀수일 경우 구구단이 출력되는 파일을 생성하였다. 먼저, num에 숫자를 받는다. 홀수, 짝수를 구분하기 위해 num을 2로 나누어 choice라는 변수에 0(짝수) 1(홀수)을 넣어준다. choice가 0일 경우 별찍기 프로그램을 출력한다. num번 반큼 반복되는 동안 빈칸은 num-1개에서 하나씩 줄어들고 별은 1개부터 시작해서 2개씩 더 늘어난다. * do -done은 한쌍이다. 줄바꿈할 때는 echo를 넣어준다. * case문을 썼으므로 실행문 끝에 ;;를 붙여주어야 한다. * case문을 닫을 때는 esac를 써준다. choice가 일 경우 구구단 프로그램을 출력한다. num단을 출력한다. 연산에서는 쌍괄호를 써야 한다. (()) while 문을 이용해 구..
- select 자체가 반복문이다. - 곱하기는 * 대신 \*을 쓴다. - 계속 반복해서 출력해주어야 하는 "Enter Number:"은 PS3로 받아준다. - list에 4가지 연산과 종료하는 Exit 총 5가지를 list에 저장한다. - case 문을 써서 order에 저장되는 숫자에 따라 두가지 숫자를 받고 연산을 한다. - 1,2,3,4 를 제외한 숫자를 입력할 경우 break로 인해 반복문을 종료하게 만들었다. - REPLY=NULL은 반복하기 위해 써 주었다. 1번 선택) 2번 선택) 3번 선택) 곱셈 연산에 \*를 이용했더니 위와 같은 오류가 났다. 그래서 \* 대신 "*"를 넣었다. 원하는 대로 잘 출력되었다. 4번 선택) * 몫이 출력된다. 5번 선택) 6나 7을 입력해도 종료된다.
1. case 문 - score을 2로 선언해 주었고 따라서 B가 출력되었다. - 0 or 1 (0|1)일 경우 A 출력, 2일 경우 B 출력, 3일 경우 C를 출력하고 - 그 이외(*)에는 out of range를 출력하도록 하였다. - case문은 case로 시작하고 esac로 끝내야 한다. - 조건문에서는 )를 사용한다. - 실행문 끝에는 ;;를 붙인다. 실습) 사용자에게 숫자를 입력 받고 그 숫자가 3, 6 9 중 하나일 때 Hello+숫자를 출력하는 스크립트이다. 그 외에는 Bye를 출력한다. 실행결과에서 input number에 3을 넣었을 때는 Hello 3을 출력하고 조건 이외의 숫자인 2를 넣었을 때는 2를 출력하는 것을 볼 수 있다. * 입력과 출력을 한줄에 -> -p 사용 2. for..
1) who are you? 라고 물었을 때 read를 이용하여 user 변수에 값을 입력받는다. (-p 출력값과 입력값이 한 줄에 있을 때) 2) 만약 user에 입력 받은 값이 apple이 아니라면 "Permission denied"를 출력한다. 3) 그렇지 않을 경우 즉, 입력 받은 값이 apple이라면 현재 디렉토리의 정보를 출력한다. (ls -l) 4) 그 후 컴파일 할 파일을 변수 file에 입력받는다. 5) gcc를 사용해 file에 입력 받은 파일을 컴파일한다. 6) 컴파일하여 생성된 실행파일인 a.out 파일의 이름을 현재 날짜로 바꾼다. (date +%Y%m%d사용) 7) 그 후 "Success to compile"이라는 문구를 출력하고 fi를 적어 if문을 끝낸다. 먼저 saaign1..
먼저, vi 편집기를 사용하여 assign0.sh 파일을 만듦과 동시에 편집하였다. 1) 홈 디렉토리로 이동한다. 2) 첫번째 매개변수를 디렉토리명으로 홈 디렉토리에 생성한다. 3) 첫번째 매개변수로 만든 디렉토리로 이동한다. 4) 그 디렉토리에 두번째 매개변수, 세번째 매개변수, 네번째 매개변수를 이름으로 한 파일을 만든다. 5) ls -l 명령어를 이용하여 생성되었는지 확인 한 후 6) read 명령어를 이용하여 delfile 변수에 값을 입력 받는다. (-p는 delete file을 출력함과 동시에 delfile에 값을 입력 받기 위해서 사용하였다.) 7) rm 명령어를 사용하여 delfile에 입력받은 값을 이름으로 갖는 파일을 삭제하였다. (-r 옵션은 하위 경로 및 파일들을 지울 때 사용한다...