반응형

전체 글 368

64bit 환경에서 32bit로 컴파일하기

기본적으로는 64bit 환경에서는 관련 패키지가 없기 때문에 32bit 파일로 컴파일할 수는 없다. 그렇다는 것은 관련 패키지만 설치한다면 64bit 운영체제에서도 32bit 실행파일로 컴파일할 수 있다는 것이다. 관련 패키지는 다음과 같이 설치할 수 있다. sudo apt-get install gcc-multilib 패키지가 정상적으로 설치되었다면, gcc의 옵션을 통해 원하는 bit 체제의 실행파일로 컴파일이 가능하다. 64bit 실행파일로 컴파일하기gcc -o test test.c -m64 32bit 실행파일로 컴파일하기gcc -o test test.c -m32 참고 : http://kaspyx.tistory.com/78

[c++] 컴파일하기

노트북에 이상이 생겨(?) 비주얼 스튜디오가 돌아가지 않아서, 가상머신으로 사용하던 리눅스로 컴파일을 해서 사용한 적이 있었다:| 물론 지금은 포맷을 해버렸지만, 비주얼 스튜디오를 깔기 귀찮아서 리눅스로 컴파일해서 사용하고 있다. c++과 c가 컴파일하는게 달라서 글을 써본다. c의 경우는 gcc -o test test.c 꼴이다. c++의 경우에는 g++ -o test test.cpp //혹은 gcc -o test test.cpp -lstdc++ 이다. g++이 설치가 되어있지 않은 경우라면 sudo apt-get install g++ 명령어로 설치해주도록 하자. 끝!

Programming$ 2017.11.03

[c++] find 함수

find 함수에 대하여 포스팅을 하려 한다. 먼저 find 함수가 어떤 일을 할 수 있는지 알아보겠다. find 함수가 하는 일은 단순하다. 어떤 문자열에서 특정 문자(열)을 찾아 그 위치를 반환하는 녀석이다. 첫 번째 사용 예로 string str = "아무 문자열";str.find("원하는 문자 혹은 문자열"); 처럼 사용할 수 있다. 예시를 만들어 사용해보겠다. 위와 같이 코드를 한 번 짜보았다. 자 컴파일을 시킨 뒤 파일을 실행을 시켜보니,첫 번째로는 'g' 가 문자열에서 위치하고 있는 곳을 0부터 센 결과인 6이,두 번째로는 문자열에 위치하고 있는 'cdef' 의 시작 인덱스 값 2가 출력됨을 볼 수 있다. 두 번째 사용 예로는 string str = "아무 문자열";str.find("원하는 문..

Programming$ 2017.11.03

[Plaid CTF 2015] ebp (feat. double staged format string attack)

Plaid CTF 2015 EBP (pwnable 160) 문제이다. 문제를 살펴보면, buf에 1024 입력을 받는다. 그 후 echo()가 수행되는데, echo()를 보면 echo()는 make_response()와 puts()로 이루어진 걸 알 수 있다. 궁금하니 이번에는 make_response()를 봐보자. make_response()는 snprintf()를 수행함을 알 수 있다.취약점들이 보인다. 일단, snprintf()와 puts()가 포맷스트링 버그가 일어날 수 있는 형태인데, 처음 사용되는 snprintf()에서 buf 에 형식문자들이 존재하여 포맷스트링 버그가 발생하면 그 결과 값이 response에 저장되므로 response 에는 형식문자가 들어갈 수 없다. 따라서 이 문제는 snp..

Write-up 2017.11.01

pcapfix 사용하기

깨진 pcap 파일이나 pcapng 파일을 복구해주는 툴이 있다고 해서 찾아보게 되었다. pcapfix 라는 프로그램인데, 윈도우 버전에서는 오류가 좀 있다고 하기는 하지만, 알아두면 언젠가 유용하게 사용할 수 있을 것 같다. pcapfix 의 사이트에서 툴을 다운로드 받을 수 있다. 윈도우, 리눅스, 맥 버전이 모두 있다. 사이트 링크 https://f00l.de/pcapfix/ 툴이 portable 형태여서 참 좋은 것 같다. 사용법은 굉장히 간단하다. 압축을 푼 후, 폴더 속에 있는 pcapfix.exe를 사용하면 된다. test.pcapng 파일을 하나 만들어 사용해보았다. 윈도우 :"pcapfix 설치 경로"\pcapfix.exe [복구할 파일] 꼴로 사용하면 된다. 파일이 멀쩡할 경우 위와 같..

Tools Repository 2017.11.01

WireShark editcap 사용하기

WireShark에 있는 도구인 editcap을 사용하는 법을 익혀보려 한다. editcap에는 다음과 같이 꽤 많은 기능이 있다. 위와 같이 많은 기능들이 있는데, 일단 파일의 포맷을 pcapng -> pcap 으로 변환시키는 법과 패킷 캡처 파일을 특정 단위로 쪼개는 법을 포스팅하려 한다. 먼저, pcapng 파일을 pcap 파일로 변환시키는 옵션이다.사용법은 간단하다. F 옵션을 사용하면 되는데, 다음과 같다. 윈도우 :~\"WireShark 설치 폴더"\editcap.exe -F [변환시키고 싶은 포맷 형태] [~.pcapng] [~.pcap] 리눅스 :editcap -F [변환시키고 싶은 포맷 형태] [~.pcapng] [~.pcap] 두 번째는 패킷의 용량이 너무 커서 분석하기가 힘들 때 사용..

Tools Repository 2017.11.01

[hackerschool ftz] level11 writeup (format string attack)

간단히 format string attack 에 대한 기억도 되살릴겸 FTZ 문제를 풀어봤다. 포맷스트링 버그로 풀 수 있는 문제가 level11밖에 생각이 안나서 11로 진행하도록 하겠다. 문제는 다음과 같다. strcpy는 널문자를 만나기전까지 모두 카피하므로 버퍼오버플로우가 일어날 수 있지만, 포맷스트링 공격에 대한 공부를 진행하므로 printf에서 보이는 포맷스트링 버그에 대한 취약점으로 익스플로잇을 진행하도록 하겠다. (포맷스트링 공격에 대한 설명은 생략하겠다. 아니 어쩌면 문제를 풀며 진행할 수도) 먼저 내가 입력한 인자 값이 stack 상에서 어디쯤 위치하는지 보도록 하겠다. 어셈블리 코드를 보고 알 수도 있겠지만, 그냥 직접 값을 넣어보며 거리를 계산하도록 하겠다. 현재 AAAA를 입력했고..

Write-up 2017.10.30

hackschool ftz 서버 구축하기

http://noplanlife.com/?p=606 참고. 간단히 설명하자면, hackerschool red hat 기반으로 된 해커스쿨 가상머신 파일들을 받은 후, 가상머신으로 열어준다. 아이디는 root, 패스워드는 hackerschool로 접속한다. ifconfig 로 가상머신 파일의 로컬 주소를 확인해 준 다음, xshell이나 putty 같은 원격접속 프로그램으로 [ssh "로컬주소"] 이런 식으로 접속하면 끝!

PCAPNG 파일

Pcapng 파일이란? pcapng( PCAP Next Generation ) 파일 형식은 기존의 pcap을 발전시킨 파일 형식이다. 기존 pcap과 비교하여 패킷 캡처를 한 인터페이스 정보, 주석, 이름 확인 정보 등 더 많은 메타데이터가 추가되었다. 파일의 시그니처도 기존 pcap과 다르다. 기존의 pcap 파일의 시그니처가 D4 C3 B2 A1 이라면, pcapng 파일의 시그니처는 0A 0D 0D 0A 이다. Pcapng 파일 -> Pcap 파일로 변환 기존의 pcap 파일과 조금 달라진 만큼, pcapng 파일을 분석하지 못하는 도구들이 가끔 있다. 그럴 경우에는 pcapng 파일을 pcap 파일로 변환을 해 주어야 하는데, 내가 자주 사용하는 방법은 두 가지 정도 있다. 편하게 pcapng 파..

반응형