본문 바로가기

Basic Theory/C/C++

지역변수(local variable) 지역변수는 선언된 지역(선언된 중괄호 안)을 벗어나 버리면 메모리 공간에서 소멸된다.여기서 중요한 사실은 자동으로 소멸이 된다는 것이다. 그래서 지역변수를 가리켜 '자동변수(automatic variable)'라고도 부른다. 이처럼 잠깐 사용하고 삭제되는 데이터이기 때문에 지역변수와 매개변수는 스택(stack)영역에 쌓이게 된다. cf. 지역변수는 대입 연산자를 통해서 초기화가 이뤄지지만, 매개변수는 함수호출시 전달되는 인자 값을 통해서 초기화가 이뤄진다. [출처] 도서 : 난 정말 C Programming을 공부한 적이 없다구요! (윤성우 지음) 더보기
Libc(C 표준 라이브러리) "libc"라는 용어는 보통 "표준 C 라이브러리"의 줄임말인데, 이는 모든 C 프로그램이 (그리고 때로는 다른 언어의 프로그램들까지) 쓸 수 있는 표준 함수들의 라이브러리이다. C 표준 라이브러리(C standard library)는 헤더 파일과 라이브러리 루틴이 모여 있는 것으로 C 프로그래밍 언어에서 입출력과 문자열 관리와 같은 일상적인 작업을 추가할 때 사용한다. 코볼, 포트란, PL/I와 같은 언어와 달리, C는 이러한 작업을 위해 키워드를 내장하고 있지 않으므로 거의 모든 C 프로그램들은 표준 라이브러리를 사용하여 기능을 구현한다. [출처]libc(7) by wariua위키백과 - C 표준 라이브러리 더보기
strncpy 함수 Buffer Over Flow(이하 BOF)를 막기위해서 쓰는 함수 中 strncpy 라는 함수가 있다. 하지만 strncpy 함수에서도 취약한 부분이 발생할 수 있다는것을 BOF 원정대 (golem -> darkknight) 문제를 풀면서 공부할 수 있었다. = strncpy 함수에 대한 설명 = #include // C++ 에서는 char * strncpy ( char * destination, const char * source, size_t num ); - 간략한 설명 -문자열에서 일부 문자들 만을 복사한다.source 에서 destination 으로 source 의 처음 num 개의 문자들 만을 복사(NULL 도 포함해서) 한다. num 보다 source 의 문자 수가 더 적다면은 모자란 부분은.. 더보기
Segmentation Fault란? Buffer Over Flow (이하 BOF)를 공부하면서 자주 Segmentation Fault 라는 문구를 확인할 수 있었다. 무언가 문제가 발생했기때문에 일종의 Error 메시지 라고 생각했었는데 기본기를 다져야 겠다고 느낀 이후로 Segmentation Fault에 대해 정확히 짚고 넘어가야겠다는 생각이 들었기 때문에 이번에 정리를 하려고 한다. 구글링을 한 결과 Wiki 에서 아래와 같은 내용을 확인 할 수 있었다. A segmentation fault (often shortened to segfault), bus error or access violation is generally an attempt to access memory that the CPU cannot physically addr.. 더보기