摘要: 大量的系統(tǒng)安全問題是由于薄弱的緩沖處理以及由此產(chǎn)生的緩沖區(qū)溢出造成的,而薄弱的緩沖區(qū)處理常常與字符串操作相關(guān)。c/c++語言運行庫提供的標準字符串操作函數(shù)(strcpy, strcat, sprintf等)不能阻止在超出字符串尾端的寫入。
基于Windows XP SP1以及隨后的操作系統(tǒng)的Windows DDK版本提供了安全字符串函數(shù)(safe string functions)。這類函數(shù)被設(shè)計的目的是用來取代相同功能的c/c++標準函數(shù)和其它微軟提供的庫函數(shù)。這類函數(shù)具有以下特征:
每個函數(shù)以目標緩沖區(qū)所占的字節(jié)大小作為其一個輸入?yún)?shù),因此可以保證在寫入時不會超出緩沖區(qū)末端。
每個函數(shù)的輸出字符串均以NULL結(jié)尾(null-terminate),即使該函數(shù)可能會對正確的結(jié)果進行截斷。
所有函數(shù)均有返回值,類型為NTSTATUS,只有返回STATUS_SUCCESS時,操作結(jié)果才正確。
每個函數(shù)均有兩種類型的版本,按字節(jié)或者按字符數(shù)。例如,RtlStringCbCatW和RtlStringCchCatW。
閱讀全文
posted @
2009-09-27 14:50 水 閱讀(6393) |
評論 (0) |
編輯 收藏
摘要: Windows 操作系統(tǒng)家族支持三種數(shù)據(jù)傳輸機制 閱讀全文
posted @
2009-09-27 13:50 水 閱讀(1598) |
評論 (0) |
編輯 收藏