[- Disclaimer -]
아래 내용은 정보보안 공부 목적으로 작성된 것이나, 이를 토대로 허가되지 않은 대상에 실습을 진행할 경우 해킹 시도로 간주하여 법적 처벌을 받을 수 있음을 알려 드립니다.
strlen()
✦ <string.h>
✦ 문자 수 반환
✦ Parameter에 전달되는 Argument
✧ 문자열 주소
✦ Return 값
✧ 성공 시 문자 수 반환 // 공백 포함, NULL String 제외
✧ 실패 시 0 반환
✦ BOF 취약 함수
✧ 문자열 길이 미검증
→ 할당된 공간을 넘어서도 문자열 길이를 검증하지 않아 계속 비교가 가능하며 이 경우 Error가 날 수도 안 날 수도 있음
char *strlen(const char *str);
Plain Text
복사
strlen() 기능 구현 - Ex)
#include <stdio.h>
size_t self_strlen(const char *str);
int main(void) {
char buf[10] = "hello";
size_t len = 0;
len = self_strlen(buf);
printf("len: %u", len);
return 0;
}
size_t self_strlen(const char *str) {
size_t len = 0;
int i;
for(i = 0; str[i] != NULL, i++;)
++len;
return len;
}
Plain Text
복사
hi hello world
--------------------------------
Process exited after 0.1889 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
Plain Text
복사



