◆ 무한한 가능성/& Visual C/C++
Safe String Reference
치로로
2009. 6. 23. 18:15
C/C++ 문자열 관련 함수는 buffer overflow 취약점을 가지고 있다.
이에 MS에서 Safe String Reference를 제공한다.
프로젝트를 진행중에
_vsnwprintf 함수의 buffer overflow문제가 발생하기도 했다.
다음은 C/C++문자열을 Safe String Reference로 변경의 호환이다.
-------------------------------------------------------------------------
1. StringCchCat()
strcat, wcscat, lstrcat, StrCatBuff, _tcscat, _ftcscat
2. StringCchCatN()
strncat, StrNCat
3. StringCchCopy()
strcpy, wcscpy, lstrcpy, _tcscpy, _ftcscpy
4. StringCchCopyN()
strncpy
5. StringCchPrintf()
sprintf, swprintf, wsprintf, wnsprintf,
_stprintf, _snprintf, _snwprintf, _sntprintf
6. StringCchVPrintf()
vsprintf, vswprintf, wvsprintf, wvnsprintf,
_vstprintf, _vsnprintf, _vsnwprintf, _vsntprintf
7. StringCchLength()
strlen
-------------------------------------------------------------------------
위의 1. StirngCchCat() ~ 7. StinrgCchLength() 에서...
경우에 따라서 말이다....
문자열이...
'ANSI'일 경우에 끝에 A 붙이고
'WORD'일 경우에 끝에 W를 붙여야 한다.