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

aurain
技術(shù)文摘
posts - 137,  comments - 268,  trackbacks - 0

一、前言

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

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

  • 每個(gè)函數(shù)以目標(biāo)緩沖區(qū)所占的字節(jié)大小作為其一個(gè)輸入?yún)?shù),因此可以保證在寫入時(shí)不會(huì)超出緩沖區(qū)末端。
  • 每個(gè)函數(shù)的輸出字符串均以NULL結(jié)尾(null-terminate),即使該函數(shù)可能會(huì)對(duì)正確的結(jié)果進(jìn)行截?cái)唷?span lang=EN-US>
  • 所有函數(shù)均有返回值,類型為NTSTATUS,只有返回STATUS_SUCCESS時(shí),操作結(jié)果才正確。
  • 每個(gè)函數(shù)均有兩種類型的版本,按字節(jié)或者按字符數(shù)。例如,RtlStringCbCatWRtlStringCchCatW
  • 每個(gè)函數(shù)均有支持雙字節(jié)的unicode字符(以W作為后綴)和單字節(jié)的ANSI字符(以A作為后綴)的版本。例如:RtlStringCbCatWRtlStringCbCatA
  • 大部分函數(shù)有提供擴(kuò)展版本的函數(shù)(以Ex作為后綴),例如,RtlStringCbCatWRtlStringCbCatExW

二、如何在內(nèi)核驅(qū)動(dòng)代碼中引入安全字符串函數(shù)

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

l        以內(nèi)聯(lián)的方式引入,包含在ntstrsafe.h

l        在鏈接時(shí)以庫的方式引入

其中,如果代碼需要在系統(tǒng)為Windows XP及以后版本運(yùn)行時(shí),可以使用內(nèi)聯(lián)的方式;如果代碼需要運(yùn)行在早于Windows XP時(shí),則必須使用鏈接庫的方式。

以內(nèi)聯(lián)方式引入

只需包含頭文件即可

#include <ntstrsafe.h>

以鏈接庫的方式

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

#define NTSTRSAFE_LIB

#include <ntstrsafe.h>

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

在默認(rèn)情況下,當(dāng)引入了安全字符串函數(shù)后,那些被取代的c/c++運(yùn)行庫函數(shù)將變得無效,編譯是會(huì)報(bào)錯(cuò),提示需要使用安全字符串函數(shù)。

    如果還希望繼續(xù)使用c/c++運(yùn)行庫函數(shù),即在使用安全字符串函數(shù)的時(shí)候,c/c++運(yùn)行庫函數(shù)還可以繼續(xù)使用,則需要在包含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.

字符串最長(zhǎng)長(zhǎng)度為STRSAFE_MAX_CCH,該宏在ntstrsafe.h中定義。另外,如果一個(gè)字符串需要被轉(zhuǎn)換成UNICODE_STRING結(jié)構(gòu),則該字符串長(zhǎng)度不能超過65535.

三、內(nèi)核模式安全字符串函數(shù)概述

    下表概述了可以在內(nèi)核驅(qū)動(dòng)中使用的安全字符串函數(shù),并指明了它們用來何種類型的c/c++運(yùn)行庫函數(shù)。

說明:

函數(shù)名含有Cb的是以字節(jié)數(shù)為單位,含有Cch的是以字符數(shù)為單位。

函數(shù)名

作用

取代

RtlStringCbCat
RtlStringCbCatEx
RtlStringCchCat
RtlStringCchCatEx

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

strcat
wcscat

RtlStringCbCatN
RtlStringCbCatNEx
RtlStringCchCatN
RtlStringCchCatNEx

將源字符串指定數(shù)目的字符連接到目的字符串的末尾

strncat
wcsncat

RtlStringCbCopy
RtlStringCbCopyEx
RtlStringCchCopy
RtlStringCchCopyEx

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

strcpy
wcscpy

RtlStringCbCopyN
RtlStringCbCopyNEx
RtlStringCchCopyN
RtlStringCchCopyNEx

將源字符串指定數(shù)目的字符拷貝到目的字符串

strncpy
wcsncpy

RtlStringCbLength
RtlStringCchLength

確定字符串的長(zhǎng)度

strlen
wcslen

RtlStringCbPrintf
RtlStringCbPrintfEx
RtlStringCchPrintf
RtlStringCchPrintfEx

格式化輸出

sprintf
swprintf
_snprintf
_snwprintf

RtlStringCbVPrintf
RtlStringCbVPrintfEx
RtlStringCchVPrintf
RtlStringCchVPrintfEx

可變格式化輸出

vsprintf
vswprintf
_vsnprintf
_vsnwprintf

各個(gè)函數(shù)的作用可以通過它所取代的c/c++函數(shù)可以大概看出,具體用法請(qǐng)查閱DDK幫助文檔。

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

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理



<2014年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用鏈接

留言簿(17)

隨筆分類(138)

隨筆檔案(137)

網(wǎng)絡(luò)開發(fā)

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 502446
  • 排名 - 37

最新隨筆

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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一区二区三区红粉影视| 欧美午夜大胆人体| 亚洲福利视频在线| 亚洲美女少妇无套啪啪呻吟| 欧美片网站免费| 亚洲视频免费看| 久久综合国产精品台湾中文娱乐网| 91久久国产综合久久91精品网站| 欧美www视频| 亚洲一二三级电影| 久久字幕精品一区| 亚洲免费观看高清完整版在线观看熊| 欧美日韩综合视频| 久久精品国产成人| 亚洲精品一区二区三区在线观看| 欧美一区二区三区免费在线看| 尤物精品在线| 欧美日韩三级一区二区| 欧美一区二区三区视频| 欧美成人综合在线| 性欧美videos另类喷潮| 亚洲国产另类精品专区| 国产精品美女久久久久av超清| 久久久精品午夜少妇| 日韩午夜中文字幕| 久久综合狠狠综合久久激情| 一区二区免费在线观看| 国产一区二区精品久久99| 欧美激情第4页| 久久国产精品毛片| 中文国产一区| 欧美www视频| 久久激五月天综合精品| a91a精品视频在线观看| 国内精品美女av在线播放| 欧美日韩综合在线| 老司机精品导航| 新67194成人永久网站| 亚洲日本无吗高清不卡| 男女激情久久| 久久九九久久九九| 亚洲中无吗在线| 一本色道**综合亚洲精品蜜桃冫| 在线观看成人av| 国产欧美婷婷中文| 欧美色欧美亚洲另类二区| 免费观看日韩| 久久久久久婷| 久久精品二区| 欧美诱惑福利视频| 一区二区三区视频观看| 亚洲精品在线视频| 亚洲第一精品夜夜躁人人爽| 老鸭窝毛片一区二区三区| 欧美一区二区大片| 香蕉成人伊视频在线观看| 中文亚洲免费| 中文在线不卡| 亚洲一级电影| 这里只有精品丝袜| 一本色道久久加勒比精品| 亚洲精品乱码久久久久久| 亚洲国产精品视频一区| 在线播放豆国产99亚洲| 国内成人在线| 狠狠做深爱婷婷久久综合一区 | 亚洲女与黑人做爰| 亚洲视频精品| 亚洲综合好骚| 欧美在线亚洲在线| 久久久精品五月天| 久久美女艺术照精彩视频福利播放| 欧美中文字幕在线视频| 久久国产主播精品| 久久青青草综合| 蜜桃av噜噜一区| 欧美人在线视频| 欧美视频一区二区在线观看| 欧美亚洲第一页| 国产毛片久久| 精品999在线观看| 亚洲国产高清aⅴ视频| 亚洲精品国产精品久久清纯直播 | 最新高清无码专区| 亚洲精品资源美女情侣酒店| 99视频热这里只有精品免费| 亚洲视频一区二区在线观看| 亚洲亚洲精品三区日韩精品在线视频 | 欧美日韩视频在线观看一区二区三区 | 亚洲高清在线观看| 亚洲精品欧洲精品| 亚洲女爱视频在线| 欧美一区二区视频97| 久久久精彩视频| 欧美激情亚洲激情| 99视频精品免费观看| 亚洲欧美日韩国产一区| 久久免费午夜影院| 欧美日韩亚洲精品内裤| 国产精品夜夜夜| 激情综合色综合久久综合| 亚洲精品一区二区三区樱花| 国产精品99久久久久久www| 性欧美大战久久久久久久久| 久久免费视频这里只有精品| 亚洲国产午夜| 亚洲欧美日韩精品久久久久| 蜜臀a∨国产成人精品 | 国产伦精品一区二区三区| 在线观看视频日韩| 亚洲调教视频在线观看| 久久久久免费观看| 亚洲毛片播放| 久久国产精品高清| 欧美日韩一区在线观看视频| 伊伊综合在线| 亚洲欧美日韩在线播放| 欧美成熟视频| 性久久久久久久久| 欧美日韩国产三区| 激情久久综艺| 亚洲欧美日韩天堂一区二区| 欧美成人黄色小视频| 亚洲香蕉成视频在线观看| 牛牛影视久久网| 国内精品视频一区| 亚洲欧美日韩国产成人精品影院| 你懂的国产精品| 欧美一级午夜免费电影| 欧美日韩国产不卡在线看| 一区二区三区在线高清| 午夜一区不卡| 亚洲精品视频在线播放| 久久美女艺术照精彩视频福利播放| 欧美无乱码久久久免费午夜一区 | 亚洲精品中文字幕女同| 久久亚洲一区二区| 亚洲午夜精品| 欧美日韩一区自拍| 亚洲精品一级| 欧美国产日韩一区二区| 欧美中在线观看| 国产欧美精品一区aⅴ影院| 亚洲视屏一区| 亚洲精品久久久久久久久久久| 久久男女视频| 激情六月婷婷久久| 久久青草久久| 欧美在线亚洲一区| 国产亚洲综合性久久久影院| 午夜在线视频观看日韩17c| 亚洲欧洲在线免费| 欧美风情在线观看| 亚洲精品欧美精品| 亚洲国产高清高潮精品美女| 久久综合网hezyo| 亚洲国产精品久久人人爱蜜臀 | 国产精品久久久99| 亚洲一级在线观看| 日韩亚洲在线| 欧美系列精品| 亚洲欧美日韩在线播放| 亚洲影院免费| 国产美女精品一区二区三区| 久久激情综合网| 欧美伊人久久| 亚洲第一黄色网| 欧美激情一区二区三区不卡| 免费观看成人| 一区二区免费看| 正在播放欧美视频| 国产精品一区免费视频| 久久精品欧美日韩精品| 久久久久久久一区| 亚洲精选91| 一本色道久久综合| 国产日产欧产精品推荐色| 久久综合电影| 欧美高清视频www夜色资源网| 亚洲美女av黄| 一区二区不卡在线视频 午夜欧美不卡'| 国产精品hd| 久久久99精品免费观看不卡| 久久久久成人精品免费播放动漫| 亚洲国产欧美日韩另类综合| 亚洲精品日韩一| 国产精品亚洲一区| 暖暖成人免费视频| 欧美三级电影大全| 久久久一本精品99久久精品66| 久久一区二区三区国产精品| 9色精品在线| 欧美一区国产一区| 亚洲欧洲一级| 亚洲欧美成aⅴ人在线观看| 加勒比av一区二区| 亚洲美女av在线播放| 国产一区二区在线观看免费| 亚洲国产欧美国产综合一区| 国产精品亚发布|