驅動開發中使用安全字符串函數
摘要: 大量的系統安全問題是由于薄弱的緩沖處理以及由此產生的緩沖區溢出造成的,而薄弱的緩沖區處理常常與字符串操作相關。c/c++語言運行庫提供的標準字符串操作函數(strcpy, strcat, sprintf等)不能阻止在超出字符串尾端的寫入。
基于Windows XP SP1以及隨后的操作系統的Windows DDK版本提供了安全字符串函數(safe string functions)。這類函數被設計的目的是用來取代相同功能的c/c++標準函數和其它微軟提供的庫函數。這類函數具有以下特征:
每個函數以目標緩沖區所占的字節大小作為其一個輸入參數,因此可以保證在寫入時不會超出緩沖區末端。
每個函數的輸出字符串均以NULL結尾(null-terminate),即使該函數可能會對正確的結果進行截斷。
所有函數均有返回值,類型為NTSTATUS,只有返回STATUS_SUCCESS時,操作結果才正確。
每個函數均有兩種類型的版本,按字節或者按字符數。例如,RtlStringCbCatW和RtlStringCchCatW。
閱讀全文
posted @
2009-09-27 14:50 水 閱讀(6374) |
評論 (0) 編輯
詳解IRP之數據傳輸的機制
摘要: Windows 操作系統家族支持三種數據傳輸機制
閱讀全文
posted @
2009-09-27 13:50 水 閱讀(1561) |
評論 (0) 編輯
【轉】Windows下刪除.svn文件夾的最簡易方法
摘要: Windows下刪除.svn文件夾的最簡易方法
閱讀全文
posted @
2009-09-01 21:04 水 閱讀(1105) |
評論 (1) 編輯