青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

aurain
技術文摘
posts - 137,  comments - 268,  trackbacks - 0

一、前言

       大量的系統安全問題是由于薄弱的緩沖處理以及由此產生的緩沖區溢出造成的,而薄弱的緩沖區處理常常與字符串操作相關。c/c++語言運行庫提供的標準字符串操作函數(strcpy, strcat, sprintf等)不能阻止在超出字符串尾端的寫入。

       基于Windows XP SP1以及隨后的操作系統的Windows DDK版本提供了安全字符串函數(safe string functions)。這類函數被設計的目的是用來取代相同功能的c/c++標準函數和其它微軟提供的庫函數。這類函數具有以下特征:

  • 每個函數以目標緩沖區所占的字節大小作為其一個輸入參數,因此可以保證在寫入時不會超出緩沖區末端。
  • 每個函數的輸出字符串均以NULL結尾(null-terminate),即使該函數可能會對正確的結果進行截斷。
  • 所有函數均有返回值,類型為NTSTATUS,只有返回STATUS_SUCCESS時,操作結果才正確。
  • 每個函數均有兩種類型的版本,按字節或者按字符數。例如,RtlStringCbCatWRtlStringCchCatW
  • 每個函數均有支持雙字節的unicode字符(以W作為后綴)和單字節的ANSI字符(以A作為后綴)的版本。例如:RtlStringCbCatWRtlStringCbCatA
  • 大部分函數有提供擴展版本的函數(以Ex作為后綴),例如,RtlStringCbCatWRtlStringCbCatExW

二、如何在內核驅動代碼中引入安全字符串函數

    有兩種方式可以引入安全字符串函數:

l        以內聯的方式引入,包含在ntstrsafe.h

l        在鏈接時以庫的方式引入

其中,如果代碼需要在系統為Windows XP及以后版本運行時,可以使用內聯的方式;如果代碼需要運行在早于Windows XP時,則必須使用鏈接庫的方式。

以內聯方式引入

只需包含頭文件即可

#include <ntstrsafe.h>

以鏈接庫的方式

  1. 在包含頭文件之前先定義宏

#define NTSTRSAFE_LIB

#include <ntstrsafe.h>

  1. 在項目的sources文件中,添加一TARGETLIBS條目如下: $(DDK_LIB_PATH)\ntstrsafe.lib.

在默認情況下,當引入了安全字符串函數后,那些被取代的c/c++運行庫函數將變得無效,編譯是會報錯,提示需要使用安全字符串函數。

    如果還希望繼續使用c/c++運行庫函數,即在使用安全字符串函數的時候,c/c++運行庫函數還可以繼續使用,則需要在包含ntstrsafe.h之前先定義宏NTSTRSAFE_NO_DEPRECATE

#define NTSTRSAFE_NO_DEPRECATE

The maximum number of characters that any ANSI or Unicode string can contain is STRSAFE_MAX_CCH. This constant is defined in ntstrsafe.h.

字符串最長長度為STRSAFE_MAX_CCH,該宏在ntstrsafe.h中定義。另外,如果一個字符串需要被轉換成UNICODE_STRING結構,則該字符串長度不能超過65535.

三、內核模式安全字符串函數概述

    下表概述了可以在內核驅動中使用的安全字符串函數,并指明了它們用來何種類型的c/c++運行庫函數。

說明:

函數名含有Cb的是以字節數為單位,含有Cch的是以字符數為單位。

函數名

作用

取代

RtlStringCbCat
RtlStringCbCatEx
RtlStringCchCat
RtlStringCchCatEx

將源字符串連接到目的字符串的末尾

strcat
wcscat

RtlStringCbCatN
RtlStringCbCatNEx
RtlStringCchCatN
RtlStringCchCatNEx

將源字符串指定數目的字符連接到目的字符串的末尾

strncat
wcsncat

RtlStringCbCopy
RtlStringCbCopyEx
RtlStringCchCopy
RtlStringCchCopyEx

將源字符串拷貝到目的字符串

strcpy
wcscpy

RtlStringCbCopyN
RtlStringCbCopyNEx
RtlStringCchCopyN
RtlStringCchCopyNEx

將源字符串指定數目的字符拷貝到目的字符串

strncpy
wcsncpy

RtlStringCbLength
RtlStringCchLength

確定字符串的長度

strlen
wcslen

RtlStringCbPrintf
RtlStringCbPrintfEx
RtlStringCchPrintf
RtlStringCchPrintfEx

格式化輸出

sprintf
swprintf
_snprintf
_snwprintf

RtlStringCbVPrintf
RtlStringCbVPrintfEx
RtlStringCchVPrintf
RtlStringCchVPrintfEx

可變格式化輸出

vsprintf
vswprintf
_vsnprintf
_vsnwprintf

各個函數的作用可以通過它所取代的c/c++函數可以大概看出,具體用法請查閱DDK幫助文檔。

posted on 2009-09-27 14:50 閱讀(6399) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理



<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用鏈接

留言簿(17)

隨筆分類(138)

隨筆檔案(137)

網絡開發

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 502446
  • 排名 - 37

最新隨筆

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区二区三区四区五区黄| 欧美午夜性色大片在线观看| 夜夜嗨av一区二区三区四季av| 久久久夜精品| 一区二区三区免费看| 在线观看视频欧美| 国产精品欧美久久久久无广告| 欧美a级片一区| 久久狠狠亚洲综合| 亚洲专区免费| 9l视频自拍蝌蚪9l视频成人| 欧美激情按摩在线| 久久综合狠狠综合久久综青草| 香蕉久久国产| 亚洲一区在线免费| 99re国产精品| 亚洲精品亚洲人成人网| 在线电影欧美日韩一区二区私密| 国产精品青草综合久久久久99 | 国产欧美一区视频| 欧美日韩精品| 欧美精品黄色| 欧美激情视频一区二区三区免费| 久久久综合精品| 久久久国产精品一区二区三区| 亚洲综合精品四区| 亚洲尤物在线视频观看| 在线视频一区观看| 一区二区三区日韩在线观看| 99国产精品99久久久久久粉嫩| 亚洲激情欧美激情| 欧美高清在线精品一区| 久久综合久久久久88| 久久视频在线看| 每日更新成人在线视频| 久久天天躁狠狠躁夜夜av| 久久久精品日韩欧美| 久久亚洲精品伦理| 久久夜色精品亚洲噜噜国产mv| 久久精品夜色噜噜亚洲aⅴ| 久久国产主播| 老色鬼精品视频在线观看播放| 久久夜色精品国产噜噜av| 免费日韩成人| 亚洲国产视频一区二区| 91久久精品日日躁夜夜躁国产| 亚洲国产婷婷香蕉久久久久久99| 亚洲激情影视| 一区二区三区福利| 午夜国产一区| 久久伊伊香蕉| 欧美理论在线播放| 国产精品毛片a∨一区二区三区|国| 国产精品看片资源| 国内精品久久久| 亚洲精品久久久一区二区三区| 亚洲美洲欧洲综合国产一区| 亚洲一区二区在线| 久久久999国产| 欧美激情bt| 在线视频欧美精品| 欧美资源在线| 欧美精品一区二区高清在线观看| 欧美调教vk| 精品成人一区二区三区| 日韩一二三在线视频播| 亚洲欧美在线另类| 免费视频一区| 一区二区欧美国产| 久久九九久久九九| 欧美日韩精品在线视频| 国产婷婷一区二区| 亚洲日本中文字幕区| 亚洲欧美国产视频| 欧美不卡一卡二卡免费版| 日韩视频在线一区二区| 欧美伊人久久久久久午夜久久久久 | 黄色成人精品网站| 日韩小视频在线观看| 欧美有码在线观看视频| 亚洲国内精品| 欧美一级久久| 欧美另类一区| 狠狠色综合网| 亚洲欧美成人一区二区三区| 蜜桃精品久久久久久久免费影院| 99在线|亚洲一区二区| 久久精品国产99国产精品| 欧美视频一区二区三区| 在线精品视频免费观看| 亚洲欧美一级二级三级| 亚洲高清在线| 欧美自拍偷拍午夜视频| 欧美午夜宅男影院在线观看| 在线观看欧美亚洲| 欧美在线视频免费观看| 亚洲精品国产精品国产自| 久久久久九九视频| 国产裸体写真av一区二区| a4yy欧美一区二区三区| 狂野欧美激情性xxxx欧美| 亚洲自拍高清| 欧美女激情福利| 亚洲国产天堂网精品网站| 先锋资源久久| 一区二区三区精品在线| 欧美精品激情在线| 亚洲国产精品久久91精品| 久久久免费精品| 亚洲欧美激情一区| 国产精品v欧美精品v日韩精品| 亚洲精品一品区二品区三品区| 久久综合伊人| 久久九九有精品国产23| 国产日产亚洲精品系列| 亚洲欧美另类综合偷拍| 99精品福利视频| 欧美日韩免费一区二区三区| 亚洲精品视频一区| 欧美激情免费在线| 老司机aⅴ在线精品导航| 在线观看欧美日韩国产| 免费看亚洲片| 蜜桃av一区二区| 亚洲国产激情| 亚洲电影免费观看高清完整版在线 | 亚洲手机在线| 日韩写真视频在线观看| 欧美日韩mv| 一区二区三区四区五区视频 | 亚洲午夜电影| 一本一道久久综合狠狠老精东影业 | 欧美日韩精品一区二区三区| 99视频精品全部免费在线| 亚洲精品日本| 欧美日韩在线一区| 亚洲欧美日韩综合aⅴ视频| 亚洲一区二区三区四区五区黄| 国产精品一区免费视频| 久久精品成人| 久久久久欧美| 亚洲精品美女在线观看| 亚洲精品国产欧美| 国产精品高清网站| 久久gogo国模裸体人体| 久久精品主播| 亚洲精品久久7777| 99精品国产一区二区青青牛奶| 欧美视频一区二区三区四区| 午夜精品久久久| 欧美一区二区精品久久911| 伊人久久亚洲美女图片| 亚洲国产91| 国产精品福利在线观看| 欧美在线免费一级片| 久久精品视频99| 日韩视频在线一区| 亚洲亚洲精品三区日韩精品在线视频 | 久久久噜噜噜久久中文字免| 亚洲精品国产精品国自产观看| 日韩一区二区久久| 国产日韩欧美制服另类| 欧美国产专区| 国产精品不卡在线| 老牛影视一区二区三区| 欧美精品少妇一区二区三区| 亚洲欧美精品伊人久久| 久久精品国产亚洲a| 一本久久综合| 欧美一区二区国产| 99www免费人成精品| 亚洲欧美在线免费观看| 亚洲激情影院| 亚洲影院免费观看| 亚洲激情第一页| 亚洲欧美另类在线| 亚洲娇小video精品| 亚洲一区在线观看免费观看电影高清| 激情91久久| 中文亚洲免费| 亚洲国产国产亚洲一二三| 亚洲视频大全| 亚洲国产精品福利| 午夜精品亚洲一区二区三区嫩草| 亚洲日本欧美日韩高观看| 亚洲视频在线看| 亚洲精品视频一区| 欧美中文在线免费| 亚洲欧美日韩国产中文 | 亚洲欧美视频在线观看视频| 另类人畜视频在线| 久久精品国产欧美亚洲人人爽| 欧美日韩精选| 亚洲电影免费在线| 精品粉嫩aⅴ一区二区三区四区| 国产精品99久久久久久久女警| 亚洲人成人99网站| 久久影院亚洲| 久久影院亚洲| 国产亚洲精品7777|