일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Overwatch League SaberMetrics
- #MINT64 #Sqix
- Sqix
- C++11
- vi
- #Best of the Best #OS #MINT64 #Sqix
- 인터럽트
- vim
- 오버워치
- Network
- ftz
- #IntelManual #segment Descriptor #세그먼트 디스크립터 #MINT64 #Sqix
- KASAN
- FTZ 레벨2
- libtins
- >
- libpcap
- vi 외부 명령어
- command
- linux
- Find
- BEST of the BEST
- #Qt Creator
- 오버워치 세이버메트릭스
- #
- #IntelManual
- Today
- Total
목록분류 전체보기 (76)
Sqix
libtins는 PDU Class, Sender, Sniffer 클래스, 주소를 나타내는 클래스 및 개발을 보다 쉽게 해 주는 helper function들을 준수하여 제작된 라이브러리입니다. 우선, PDU에 대해서 살펴보도록 하겠습니다. 1. PDU PDU란, Protocol Data Unit의 약자로 OSI 모델에서의 정보처리 단위이자 특정 계층의 프로토콜 안에서 지정되는 데이터 단위를 의미합니다. TCP, UDP와 같은 Transport Layer에서는 Segment라고 하고, Network Layer에서는 Packet이라고 불리웁니다. C++에도 PDU Class가 존..
안녕하세요. 이번에 프로젝트에서 libtins를 활용하여 개발을 하게 되었고, 공부 겸 메뉴얼 제공? 을 위해서 libtins의 tutorial 부분을 번역 및 내용 추가 설명을 하여 포스팅하려고 합니다. 원본 주소는 libtins.github.io/tutorial/ 입니다. libtins 라이브러리는 Matis Fontanini가 개발한 C++ 기반 네트워크 패킷 스니핑 및 프로토콜 개발 라이브러리입니다. libtins를 이용하면 매우 편리하게 네트워크 패킷을 전송 / 수신 / 조작하는 도구를 만들 수 있고, 플랫폼에 독립적이며 Endian을 헷갈리지 않게 개발할 수 있습니다. 또한, x86, x86/64, ARM, MIPS 아키텍쳐를 지원하기 때문에 범용성이 넓고 이식성이 뛰어나다고 할 수 있습니다...
이번에는 pwnable.kr - flag 문제를 풀어보는 시간을 갖겠습니다. 처음 문제를 켜면 http://pwnable.kr/bin/flag를 다운로드 받으라고 합니다. 마찬가지로 wget을 통해서 다운로드 받고, gdb를 이용할 수 있도록 chmod 775를 하여 권한을 올려 주도록 하겠습니다. 리버싱 문제이기 때문에, 문자열이 어떤 것이 있는지를 확인해 보고자 strings flag 명령어를 이용하여 문자열을 추출해 보았습니다. strings flag > flag_str.txt와 같은 식으로 파일로 문자열 추출 결과를 넘겨받으면 편리합니다. 그런데, 뒤져 보니 저렇게 upx로 패킹되어있음이 나옵니다. 만약 upx가 없으시다면 apt-get install upx 명령어를 통해 다운로드 받으시면 됩니다..
이번에는 Pwnable.kr의 bof 문제를 풀어보도록 하겠습니다. http://pwnable.kr/bin/bof , http://pwnable.kr/bin/bof.c 를 다운로드 받아서 문제 풀이에 이용할 수 있도록 해 주었습니다. 저는 wget으로 다운로드를 받아서 문제를 풀어보도록 하겠습니다. ex.py는 문제 풀이를 위한 exploit 코드를 파이썬으로 작성한 것인데, 굳이 ex를 짤 필요는 없기 때문에 이번 풀이 과정에서는 생략하도록 하겠습니다. 먼저 코드를 보도록 하겠습니다. main에서는 0xdeadbeef 라는 인자를 func에 넣어 주고, func에서는 해당 값을 인자로 받아와 key로 사용을 합니다. gets 함수는 32바이트의 버퍼인 overflowme 배열에 유저 입력을 받을 수 있..
ssh col@pwnable.kr -p2222 / guest 를 입력하여 문제 서버에 접속한다. 이번 Hash Collision 문제풀이를 시작해 보겠습니다. 문제를 간단하게 요약하면, col.c에 있는 hashcode를 이용해서 알맞은 passcode를 찾아내는 것입니다. 먼저 hashcode가 적혀있는 소스코드를 보도록 하겠습니다. arvg1에 passcode를 가져오고, 이를 check_password 함수의 인자로 넣어서 hashcode와 비교한 후, 만약 그 값이 같다면 flag에 있는 flag를 가져오도록 syscall을 합니다. 틀리다면 wrong password라고 출력을 합니다. password를 보면, 우리가 입력한 문자열을 int * 타입으로 캐스팅하여 5개의 배열인 것 처럼 만들어 ..
문제의 안내에 따라서 터미널에 "ssh fd@pwnable.kr -p2222" 를 터미널에 입력하여 접속을 한다. 이번 문제는 Pwnable.kr의 가장 첫 번째 문제로, Linux의 File I/O에 대해서 알고 있는가? 에 대한 문제입니다. 사실 문제의 풀이는 매우 간단합니다. 하지만, 공부해야 할 주제를 던져주었다는 점에서 나쁘지 않은 문제라고 할 수 있습니다. 그렇다면, 공부해야 할 것은 어떠한 것일까요? 바로 Linux의 File Descriptor(fd)입니다. File Descriptor는 시스템으로부터 할당받은 파일을 대표하는 정수 값을 말합니다. 또한, 프로세스에서 열린 파일의 목록을 관리하는 Table의 Index이기도 합니다. 리눅스의 모든 객체는 파일로 관리되고 있습니다. 심지어는 ..